当前位置:文档之家› 数值分析实验报告记录

数值分析实验报告记录

数值分析实验报告记录————————————————————————————————作者:————————————————————————————————日期:数值分析实验报告(第二章)实验题目:分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程的根,观察不同初始值下的收敛性,并给出结论。

问题分析:题目有以下几点要求:1.不同的迭代法计算根,并比较收敛性。

2.选定不同的初始值,比较收敛性。

实验原理:各个迭代法简述二分法:取有根区间的重点,确定新的有根区间的区间长度仅为区间长度的一版。

对压缩了的有根区间重复以上过程,又得到新的有根区间,其区间长度为的一半,如此反复,……,可得一系列有根区间,区间收敛到一个点即为根。

牛顿迭代法:不动点迭代法的一种特例,具有局部二次收敛的特性。

迭代格式为割线法:是牛顿法的改进,具有超线性收敛的特性,收敛阶为1.618. 迭代格式为史蒂芬森迭代法:采用不动点迭代进行预估校正。

至少是平方收敛的。

迭代格式为这里可采用牛顿迭代法的迭代函数。

实验内容:1.写出该问题的函数代码如下:function py= f(x) syms k;y=(k^2+1)*(k-1)^5;yy=diff(y,k);py(1)=subs(y,k,x);py(2)=subs(yy,k,x); end2.分别写出各个迭代法的迭代函数代码如下:二分法:function y=dichotomie(a,b,e) i=2;m(1)=a;while abs(a-b)>et=(a+b)/2;s1=f(a);s2=f(b);s3=f(t);if s1(1)*s3(1)<=0b=t;elsea=t;endm(i)=t;i=i+1;endy=[t,i+1,m];end牛顿迭代法:functiony=NewtonIterative(x,e)i=2;en=2*e;m(1)=x;while abs(en)>=es=f(x);t=x-s(1)/s(2);en=t-x;x=t;m(i)=t;i=i+1;endy=[x,i+1,m];end牛顿割线法:function y=Secant(x1,x2,e) i=3;m(1)=x1,m(2)=x2;while abs(x2-x1)>=es1=f(x1);s2=f(x2);t=x2-(x2-x1)*s2(1)/(s2(1)-s1( 1));x1=x2;x2=t;m(i)=t;i=i+1;endy=[x2,i+1,m];end史蒂芬森迭代法:Functionp=StephensonIterative(x,e) i=2;m(2)=x;en=2*e;while abs(en)>=ey=fai(x); z=fai(y);t=x-(y-x)^2/(z-2*y+x); en=t-x;x=t;m(i)=t;i=i+1;endp=[x,i+1,m];end3.因为经常被使用,故可以写一个函数。

代码如下:function y=fai(x)s=f(x);y=x-s(1)/s(2);end4.可以绘制不同的图形来比较不同迭代法的收敛性和不同初值下的收敛性。

代码如下:clear all;%相同初始值,不同迭代法下的收敛x1=dichotomie(0,3,1e-10);x2=NewtonIterative(0,1e-10);x3=Secant(0,2, 1e-10);x4=StephensonIterative(0,1e-10);[x1(2),x2(2),x3(2),x4(2)]figure,subplot(2,2,1),plot(x1(3:x1(2))),title('二分法');subplot(2,2,2),plot(x2(3:x2(2))),title('牛顿迭代法');subplot(2,2,3),plot(x3(3:x3(2))),title('牛顿割线法');subplot(2,2,4),plot(x4(3:x4(2))),title('史蒂芬森迭代法');figure,subplot(2,2,1),plot((x1(4:x1(2)-1)-x1(1))./(x1(3:x1(2)-2)-x1(1))),tit le('二分法');subplot(2,2,2),plot((x2(4:x2(2)-1)-x2(1))./(x2(3:x2(2)-2)-x2(1))),tit le('牛顿迭代法');subplot(2,2,3),plot((x3(4:x3(2)-1)-x3(1))./(x3(3:x3(2)-2)-x3(1))),title('牛顿割线法');subplot(2,2,4),plot((x4(4:x4(2)-1)-x4(1))./(x4(3:x4(2)-2)-x4(1))),tit le('史蒂芬森迭代法');%不同初始值,相同迭代法下的收敛性x5=dichotomie(-1,1,1e-10);x6=dichotomie(-2,3,1e-10);x7=dichotomie(0,4,1e-10);x8=dichotomie(-4,4,1e-10);x9=NewtonIterative(-2,1e-10);x10=NewtonIterative(-4,1e-10);x11=NewtonIterative(4,1e-10);x12=NewtonIterative(6,1e-10);figure,subplot(1,2,1),plot(1:x1(2)-2,x1(3:x1(2)),1:x5(2)-2,x5(3:x5(2)),1:x6(2)-2,x6(3:x6(2) ),1:x7(2)-2,x7(3:x7(2)),1:x8(2)-2,x8(3:x8(2))),title('二分法');subplot(1,2,2),plot(1:x2(2)-2,x2(3:x2(2)),1:x9(2)-2,x9(3:x9(2)),1:x10(2)-2,x10(3:x10 (2)),1:x11(2)-2,x11(3:x11(2)),1:x12(2)-2,x12(3:x12(2))),title('牛顿迭代法');x13=Secant(-1,1, 1e-10);x14=Secant(-4,5, 1e-10);x15=Secant(0,7, 1e-10);x16=Secant(-8,2, 1e-10);x17=StephensonIterative(-1,1e-10);x18=StephensonIterative(-4,1e-10);x19=StephensonIterative(4,1e-10);x20=StephensonIterative(6,1e-10);figure,subplot(1,2,1),plot(1:x3(2)-2,x3(3:x3(2)),1:x13(2)-2,x13(3:x13(2)),1:x14(2)-2,x14(3: x14(2)),1:x15(2)-2,x15(3:x15(2)),1:x16(2)-2,x16(3:x16(2))),title('牛顿割线法');subplot(1,2,2),plot(1:x4(2)-2,x4(3:x4(2)),1:x17(2)-2,x17(3:x17(2)),1:x18(2)-2,x18(3: x18(2)),1:x19(2)-2,x19(3:x19(2)),1:x20(2)-2,x20(3:x20(2))),title('史蒂芬森迭代法');实验结果:1. 各个迭代值分布图 1.1 不同迭代法下的得到的迭代值迭代值的情况如下:二分法 牛顿迭代法牛顿割线法史蒂芬森迭代法0 0 0 0 1.5000000000 0.2000000000 2.0000000000 1.3555555556 0.7500000000 0.3704918032 0.3333333333 0.9816165283 1.1250000000 0.5076442076 0.3807196801 0.9999460003 0.9375000000 0.6146189447 0.4982833419 0.99999999951.0312500000 0.6973869098 0.5704996333 0.9843750000 0.7615538091 0.6393806244 1.0078125000 0.8115411186 0.6942785879 0.9960937500 0.8506763857 0.7411692653 1.0019531250 0.8814482123 0.7802715997 0.99902343750.90572974000.8132927871当二分法的初始区间选为 ,误差限为 ,牛顿迭代法初值选为 ,0102030400.511.5二分法0501000.51牛顿迭代法5010015000.511.52牛顿割线法024680.511.5史蒂芬森迭代法误差限为 ,牛顿割线法初始点为 ,误差限为 ,史蒂芬森迭代法初始点选为 ,误差限为 ,迭代情况如图所示。

迭代次数分别为38次,100次,140次,9次。

故而,史蒂芬森迭代法速度最快,效果最好。

2. 收敛情况图 1.2 不同迭代法下迭代值得收敛情况二分法收敛效果较差,牛顿迭代法和牛顿割线法相近,史蒂芬森迭代法收敛次数高于1,效果最好 3. 不同初值的收敛情况10203040-10-505x 109二分法501000.40.50.60.70.8牛顿迭代法10203040-2-11牛顿割线法12345-0.4-0.20.20.4史蒂芬森迭代法图 1.3 二分法,牛顿迭代法下不同初值的收敛情况图 1.4 牛顿割线法,史蒂芬森迭代法下不同初值的收敛情况10203040-4-3-2-112二分法50100150-4-3-2-10123456牛顿迭代法020406080-8-6-4-202468牛顿割线法0246800.511.522.5史蒂芬森迭代法1.二分法的五个初始区间分别为;2.牛顿迭代法的五个初始值分别为;3.牛顿割线法的五个初始区间分别为;4.史蒂芬森迭代法的五个初始值分别为;由图可知,它们最终均达到收敛。

收敛性分析及结论:1.二分法收敛较慢且不能求解崇根,但算法简单;此处牛顿法具有了平方收敛;从迭代次数上看,牛顿割线法较牛顿法的多,所以收敛性较差,是超线性收敛;史蒂芬森迭代法收敛效果最好。

相关主题