好文档 - 专业文书写作范文服务资料分享网站

实验四 各类方程的求解(matlab实验报告)

天下 分享 时间: 加入收藏 我要投稿 点赞

实验四 各类方程的求解

姓名: 学号: 10000 实验日期:2013.4.17 实验目的:掌握求解各类方程的MATLAB命令 实验项目:(1)非线性方程求根;非线性方程求极值; (2)数值积分; (3)常微分方程求解。 实验背景:客观世界中众多现象可以划归为各类方程,特别是微分方程的求解问题;因而如何利用MATLAB求解各类方程的根、极值以及解是一类重要的课题。 实验具体过程: 1、题目: (方程求根) (i)求方程xln(x2?1?x)?x2?1?0.5x?0的正根; (ii)Newton迭代法是一种速度很快的迭代方法,但是它需要预先求得导函数,若用差商代替导数,可得下列弦截法 xk?xk?1xk?1?xk?f(xk)。 f(xk)?f(xk?1)这一迭代法需要两个初值x0,x1,编写一个通用的弦截法计算机程序并用以解(i)。 解题思路:(i) 由于该方程是非线性、非多项式的方程,因而求解只能利用fzero或者fsolve命令; (ii) 和Newton迭代法不同,弦截法涉及两次递归,求解过程应避免出现|f(xk)?f(xk?1)|很小的情形。 对实验题目的解答: (i)>> fun=inline('x.*log(sqrt(x.^2-1)+x)-sqrt(x.^2-1)-0.5*x'); >> fplot(fun,[1,10]) 1614121086420-212345678910 由此,可以看到零点大约在x=1附近。下面使用fsolve命令进行计算精确的零点位置。 >> [x,f,h]=fsolve(fun,1) Optimizer appears to be converging to a point which is not a root. Norm of relative change in X is less than max(options.TolX^2,eps) but sum-of-squares of function values is greater than or equal to sqrt(options.TolFun) Try again with a new starting guess. x = 0.7500 - 0.0000i f = -0.3750 - 0.1194i h = -2 >> [x,f,h]=fsolve(fun,1.2) Optimization terminated: first-order optimality is less than options.TolFun. x = 2.1155 f = 1.0709e-006 h = 1 (ii)%弦截法tps.m function y=tps(fun,x0,x1) e=1e-6; if abs(x1-x0)<2*e, x1=x0+2*e;end y=x1; while abs(x1-x0)>e y=x1-(x1-x0)/(feval(fun,x1)-feval(fun,x0))*feval(fun,x1); x0=x1; x1=y; end >> tps(fun,1.1,1.2) ans = 2.1155 改进或思考: 由(i)的运算结果可以看到,对于非线性问题,初始迭代点的选取非常重要。一旦初始迭代数据过于远离精确值,将导致错误结果。 2、题目:(函数的的极值问题) 考虑函数f(x,y)?y3/9?3x2y?9x2?y2?xy?9 (i)作出f(x,y)在?2?x?1,?7?y?1的图,观察极值点的位置; (ii)用MATLAB函数fminsearch求极值点和极值。 对实验题目的解答: (i) >> clear; >> xa=-2:0.1:1;ya=-7:0.1:1; >> [x,y]=meshgrid(xa,ya); >> z=y.^3/9+3*x.^2.*y+9*x.^2+y.^2+x.*y+9; >> mesh(x,y,z) 6040200-20500-5-10-2-11 从图形,我们可以大致估计函数有三个极大值,分别对应(-2,15),(0,22),(5,40),三个极小值,分别对应(-6,-20),(2,5),(-7,0)。 (ii) 下面利用fminsearch确定函数极值得精确位置。 极大值: >> fun='x(2)^3/9+3*x(1)^2*x(2)+9*x(1)^2+x(2)^2+x(1)*x(2)+9'; >> [X1,Y1]=fminsearch(['-',fun],[-2 15]); [X2,Y2]=fminsearch(['-',fun],[0 22]); [X3,Y3]=fminsearch(['-',fun],[5 40]); Exiting: Maximum number of function evaluations has been exceeded - increase MaxFunEvals option. Current function value: -130445905685433800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000 Exiting: Maximum number of function evaluations has been exceeded - increase MaxFunEvals option. Current function value: -1267583789692283300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000 Exiting: Maximum number of function evaluations has been exceeded - increase MaxFunEvals option. Current function value: -3096693623978009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000 >> [X1,-Y1],[X2,-Y2],[X3,-Y3] ans = 1.0e+134 * 0.0000 0.0000 1.3045 ans = 1.0e+135 * -0.0000 0.0000 1.2676 ans = 1.0e+135 * -0.0000 0.0000 3.0967 极小值: >>[X1,Z1]=fminsearch(fun,[-6-20]); [X2,Z2]=fminsearch(fun,[2 5]); [X3,Z3]=fminsearch(fun,[-7 0]); Exiting: Maximum number of function evaluations has been exceeded - increase MaxFunEvals option. Current function value: -1032540430221527300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000 >> [X1,Z1],[X2,Z2],[X3,Z3] ans = 1.0e+135 * -0.0000 -0.0000 -1.0325

实验四 各类方程的求解(matlab实验报告)

实验四各类方程的求解姓名:学号:10000实验日期:2013.4.17实验目的:掌握求解各类方程的MATLAB命令实验项目:(1)非线性方程求根;非线性方程求极值;(2)数值积分;(3)常微分方程求解。实验背景:客观世界中众多现象可以划归为各类方程,特别是微分方程的求解问题;因而如何利用
推荐度:
点击下载文档文档为doc格式
2jhc218rk08az813iutk
领取福利

微信扫码领取福利

微信扫码分享