《数值分析实验报告——非线性方程求根(共6页).doc》由会员分享,可在线阅读,更多相关《数值分析实验报告——非线性方程求根(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数值分析实验报告非线性方程求根二分法一、题目二、方法二分法三、程序1、Jiangerfen.M的程序functionc,yc=jiangerfen(f,a,b,tol1,tol2)if nargin4 tol1=1e-3;tol2=1e-3;end %nargin0,disp(a,b)不是有根区间);return,endmax=1+round(log(b -a)-log(tol2)/log(2);%round函数是将数据取整,使数据等于其最接近的整数。for k=1:max c=(a+b)/2; yc=feval(f,c);if(b-a)/2tol2)|(abs(yc
2、)tol1),break,endif yb*yc format compact fplot(x3-2*x-1,0,-1.5,2); jiangerfen(f,-1.5,-0.8);k = 8c = -0.9996yc = 3.9017e-004 jiangerfen(f,-0.8,-0.3);k = 8c = -0.6184yc = 2.7772e-004 jiangerfen(f,1.3,2);k = 10c = 1.6179yc = -9.5348e-004 jiangerfen(f,2,3);(a,b)不是有根区间方程f(x)=x3-2*x-1的所有根为-0.9996,-0.6184 ,
3、1.6179 。迭代次数分别为8,8,10。五、拓展由于二分法收敛太慢,可以先通过画图,取得一个包含根的小区间,再用二分法来求解,这样就能有效减少迭代次数。不动点迭代法一、题目二、方法不动点迭代法三、程序1、Jiangbudong.M的程序function p=jiangbudong(g,x0,tol,max)P(1)=x0;for k=1:max P(k+1)=feval(g,P(k); p=P(k+1); if abs(P(k+1)-P(k) format compact fplot(2*x2-sin(x)-1,0,0,1); jiangbudong(g,0.5,1e-4,50)P = C
4、olumns 1 through 9 0.5000 1.4794 0.6745 1.2042 0.8028 1.0708 0.8767 1.0087 0.9151 Columns 10 through 18 0.9794 0.9343 0.9655 0.9437 0.9588 0.9483 0.9556 0.9505 0.9541 Columns 19 through 27 0.9516 0.9533 0.9521 0.9530 0.9524 0.9528 0.9525 0.9527 0.9526 Column 28 0.9526ans = 26ans =0.9526方程2x2-sin(x)-
5、1=0在0,1的根为0.9526。取的初值是0.5。五、拓展在不动点迭代法中,迭代过程的收敛速度依赖于迭代函数g(x)的选取。若dg(x)不等于0,则该迭代过程只可能是线性收敛。如果改动迭代函数为g(x)=sqrt(sin(x)+1)/2),则输出结果为 jiangbudong(g,0.5,1e-4,50)P = Columns 1 through 6 0.5000 0.8601 0.9375 0.9503 0.9523 0.9526 Column 7 0.9526ans = 5ans = 0.9526迭代次数为5次,相比先前的26次,收敛速度加快了很多。因此,在选取迭代函数时,应该尽量让函数
6、收敛的阶更高一点。Newton迭代法一、题目二、方法Newton迭代法三、程序1、Jiangnewton.M的程序function p=jiangnewton(h,dh,x0,tol1,max)p0=x0;for k=1:max p=p0-feval(h,p0)/feval(dh,p0); if abs(p-p0) format compact fplot(x3-3*x+1,0,-4,4); jiangnewton(h,dh,-2.1,1e-5,100) -1.9083 -1.8800 -1.8794ans = 3ans = -1.8794 jiangnewton(h,dh,0.2,1e-5,
7、100) 0.3417 0.3473 0.3473ans = 3ans = 0.3473 jiangnewton(h,dh,1.1,1e-5,100) 2.6381 1.9979 1.6657 1.5484 1.5324 1.5321ans = 6ans =1.5321方程x3-3x+1=0的根为 -1.8794,0.3473 ,1.5321。迭代次数分别为3,3,6。五、拓展由于牛顿迭代法收敛性依赖初值的选取,倘若选取的初值偏离所求根较远或者选取不恰当,牛顿法可能发散,求不出根来。例如: jiangnewton(h,dh,-1,1e-5,100),则求不出根来。 jiangnewton(h,
8、dh,-0.7,1e-5,100) 1.1020 2.6071 1.9804 1.6580 1.5467 1.5323 1.5321ans = 7ans = 1.5321 jiangnewton(h,dh,-0.6,1e-5,100) 0.7458 0.1279 0.3375 0.3473 0.3473ans = 5ans = 0.3473 jiangnewton(h,dh,-1.1,1e-5,100) -5.8127 -4.0035 -2.8688 -2.2232 -1.9426 -1.8822 -1.8794ans = 7ans = -1.8794由上面可以看到,选取的初值相差很小,可是求出的根却不一样。专心-专注-专业