您好,欢迎访问三七文档
数值分析实验报告(第二章)实验题目:分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程𝑓(𝑥)=(𝑥2+1)(𝑥−1)5=0的根𝑥=1,观察不同初始值下的收敛性,并给出结论。问题分析:题目有以下几点要求:1.不同的迭代法计算根,并比较收敛性。2.选定不同的初始值,比较收敛性。实验原理:各个迭代法简述二分法:取有根区间[𝑎,𝑏]的重点𝑥0,确定新的有根区间[𝑎1,𝑏1]的区间长度仅为[𝑎,𝑏]区间长度的一版。对压缩了的有根区间[𝑎1,𝑏1]重复以上过程,又得到新的有根区间[𝑎2,𝑏2],其区间长度为[𝑎1,𝑏1]的一半,如此反复,……,可得一系列有根区间,区间收敛到一个点即为根。牛顿迭代法:不动点迭代法的一种特例,具有局部二次收敛的特性。迭代格式为𝑥𝑛+1=𝑥𝑛−𝑓(𝑥𝑛)𝑓′(𝑥𝑛),𝑛=0,1,2,…割线法:是牛顿法的改进,具有超线性收敛的特性,收敛阶为1.618.迭代格式为𝑥𝑛+1=𝑥𝑛−𝑓(𝑥𝑛)𝑓(𝑥𝑛)−𝑓(𝑥𝑛−1)(𝑥𝑛−𝑥𝑛−1),𝑛=1,2,…史蒂芬森迭代法:采用不动点迭代进行预估校正。至少是平方收敛的。迭代格式为𝑦𝑛=𝜑(𝑥𝑛)𝑧𝑛=𝜑(𝑦𝑛)𝑥𝑛+1=𝑥𝑛−(𝑦𝑛−𝑥𝑛)2𝑧𝑛−2𝑦𝑛+𝑥𝑛这里𝜑(𝑥)可采用牛顿迭代法的迭代函数。实验内容:1.写出该问题的𝑓(𝑥)函数代码如下:functionpy=f(x)symsk;y=(k^2+1)*(k-1)^5;yy=diff(y,k);py(1)=subs(y,k,x);py(2)=subs(yy,k,x);end2.分别写出各个迭代法的迭代函数代码如下:二分法:functiony=dichotomie(a,b,e)i=2;m(1)=a;whileabs(a-b)et=(a+b)/2;s1=f(a);s2=f(b);s3=f(t);ifs1(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;whileabs(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牛顿割线法:functiony=Secant(x1,x2,e)i=3;m(1)=x1,m(2)=x2;whileabs(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;whileabs(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.因为𝜑(𝑥)经常被使用,故可以写一个𝜑(𝑥)函数。代码如下:functiony=fai(x)s=f(x);y=x-s(1)/s(2);end4.可以绘制不同的图形来比较不同迭代法的收敛性和不同初值下的收敛性。代码如下:clearall;%相同初始值,不同迭代法下的收敛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))),title('二分法');subplot(2,2,2),plot((x2(4:x2(2)-1)-x2(1))./(x2(3:x2(2)-2)-x2(1))),title('牛顿迭代法');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))),title('史蒂芬森迭代法');%不同初始值,相同迭代法下的收敛性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不同迭代法下的得到的迭代值迭代值的情况如下:二分法牛顿迭代法牛顿割线法史蒂芬森迭代法00001.50000000000.20000000002.00000000001.35555555560.75000000000.37049180320.33333333330.98161652831.12500000000.50764420760.38071968010.99994600030.93750000000.61461894470.49828334190.99999999951.03125000000.69738690980.57049963330.98437500000.76155380910.63938062441.00781250000.81154111860.69427858790.99609375000.85067638570.74116926531.00195312500.88144821230.78027159970.99902343750.90572974000.8132927871当二分法的初始区间选为[0,3],误差限为1×10−10,牛顿迭代法初值选为0,01020304000.511.5二分法05010000.51牛顿迭代法05010015000.511.52牛顿割线法0246800.511.5史蒂芬森迭代法误差限为1×10−10,牛顿割线法初始点为{0,2},误差限为1×10−5,史蒂芬森迭代法初始点选为0,误差限为1×10−10,迭代情况如图所示。迭代次数分别为38次,100次,140次,9次。故而,史蒂芬森迭代法速度最快,效果最好。2.收敛情况图1.2不同迭代法下迭代值得收敛情况二分法收敛效果较差,牛顿迭代法和牛顿割线法相近,史蒂芬森迭代法收敛次数高于1,效果最好3.不同初值的收敛情况010203040-10-505x109二分法0501000.40.50.60.70.8牛顿迭代法010203040-2-101牛顿割线法12345-0.4-0.200.20.4史蒂芬森迭代法图1.3二分法,牛顿迭代法下不同初值的收敛情况图1.4牛顿割线法,史蒂芬森迭代法下不同初值的收敛情况010203040-4-3-2-1012二分法050100150-4-3-2-10123456牛顿迭代法020406080-8-6-4-202468牛顿割线法0246800.511.522.5史蒂芬森迭代法1.二分法的五个初始区间分别为[0,3],[−1,1],[−2,3],[0,4],[−4,4];2.牛顿迭代法的五个初始值分别为0,−2,−4,4,6;3.牛顿割线法的五个初始区间分别为[0,2],[−1,1],[−4,5],[0,7],[−8,2];4.史蒂芬森迭代法的五个初始值分别为0,−1,−4,4,6;由图可知,它们最终均达到收敛。收敛性分析及结论:1.二分法收敛较慢且不能求解崇根,但算法简单;此处牛顿法具有了平方收敛;从迭代次数上看,牛顿割线法较牛顿法的多,所以收敛性较差,是超线性收敛;史蒂芬森迭代法收敛效果最好。2.因为牛顿迭代法是局部的二次收敛,所以要注重初值的选取,本次实验中选择的初值均得到了收敛,效果比较好。牛顿割线法也应注意初值的选取。(第三章)实验题目:1.区间[−1,1]作等距划分:𝑥𝑘=−1+𝑘ℎ,ℎ=2𝑛,𝑘=0,1,…,𝑛以𝑥𝑘为结点对函数𝑓(𝑥)=15+𝑥2进行插值逼近。(1)分别取ℎ=1,5,10,20,25用牛顿插值对𝑓(𝑥)进行逼近,并在同一坐标系下做出函数的图形,进行比较。写出插值函数对𝑓(𝑥)的逼近程度与节点个数的关系,并分析原因;(2)试用三次样条插值对𝑓(𝑥)进行逼近,在同一坐标下画出图形,观察样条插值函数对𝑓(𝑥)的逼近程度与节点个数的关系;(3)整体插值有何局限性?如何避免?2.已知一组数据如下,求其拟合曲线.表2.1数据表𝑖012345678910𝑥𝑖23478101114161819𝑦𝑖106.42108.2109.5110109.93110.49110.59110.6110.76111111.2(1)求以上数据
本文标题:数值分析实验报告
链接地址:https://www.777doc.com/doc-6362292 .html