您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 初值的选取对迭代法的影响实验报告
安徽工业大学数理科学与工程学院数值计算实习姓名:陶仕杰学号:129084121班级:数121班指导老师:谭高山初值的选取对迭代法的影响实验目的:通过具体的数值实验,体会选取不同的初值对同一迭代法的影响。实验内容:用牛顿迭代法求方程013xx在x=1.5附近的根。实验要求:(1)对牛顿迭代公式:131231kkkkkxxxxx,编写程序进行实验,分别取00x,5.10x迭代10次,观察比较其计算值,并分析原因。(2)用MATLAB内部函数solve直接求出方程的所有根,并与(1)的结果进行比较。试验过程:①首先保存牛顿切线法的MATLAB程序为M文件,命名为newtonqx.m.function[k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxmax)x(1)=x0;fori=1:gxmaxx(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps);piancha=abs(x(i+1)-x(i));xdpiancha=piancha/(abs(x(i+1))+eps);i=i+1;xk=x(i);yk=fnq(x(i));[(i-1)xkykpianchaxdpiancha]if(abs(yk)ftol)&((pianchatol)|(xdpianchatol))k=i-1;xk=x(i);[(i-1)xkykpianchaxdpiancha]return;endendifigxmaxdisp('请注意:迭代次数超过给定的最大值gxmax。')k=i-1;xk=x(i);[(i-1)xkykpianchaxdpiancha]return;end[(i-1),xk,yk,piancha,xdpiancha]';②建立名为fnq.m的M文件functiony=fnq(x)y=x^3-x-1;③建立名为dfnq.m的M文件functiony=dfnq(x)y=3*x^2-1;a.当初始值取00x时,迭代次数为10,要求精度为310,在MATLAB工作窗口输入程序为[k,xk,yk,piancha,xdpiancha]=newtonqx(0,1e-3,1e-3,10)运行后输出结果如表1-1表1-1kkxky1kkxx1/kkkxxx1.0000-1.0000-1.00001.00001.00002.0000-0.5000-0.62500.50001.00003.0000-3.0000-25.00002.50000.83334.0000-2.0385-7.43200.96150.47175.0000-1.3903-2.29700.64820.46626.0000-0.9116-0.84600.47870.52517.0000-0.3450-0.69600.56661.64218.0000-1.4278-2.48271.08270.75839.0000-0.9424-0.89460.48530.515010.0000-0.4049-0.66150.53751.3272由以上可知初始值取00x时,迭代次数为10时,迭代次数超过给定的最大值gxmax。根的近似值xk=-0.4049,函数值yk=-0.6615,偏差piancha=0.5375和相对偏差xdpiancha=1.3272。b.当初始值01.5x,迭代次数为10,要求精度为310,在MATLAB工作窗口输入程序为[k,xk,yk,piancha,xdpiancha]=newtonqx(1.5,1e-3,1e-3,10)运行后输出结果如表1-1表1-2kkxky1kkxx1/kkkxxx1.00001.34780.10070.15220.11292.00001.32520.00210.02260.01713.00001.32470.00000.00050.0004由以上可知初始值取01.5x时,迭代次数为10时,迭代次数k=3。根的近似值xk=1.3247,函数值yk=9.2438e-007,偏差piancha=4.8222e-004和相对偏差xdpiancha=3.6402e-004。c.用solve函数直接计算方程013xx的所有根,在MATLAB工作窗口输入程序solve('x^3-x-1');roots([1-1-1])运行后输出结果为ans=-0.61801.6180实验结果分析:比较初始值分别为0x=0和1.5的两组结果,在0x=0处迭代10次,迭代次数超过给定的最大值gxmax,得到根的近似值xk=-0.4049,函数值yk=-0.6615。在0=1.5x处迭代3次就得到根的近似值,根的近似值xk=1.3247,函数值yk=9.2438e-007。由此可见牛顿迭代法在初始值接近于近似根处的迭代速度要比远离近似根初始值的迭代速度快很多,而且近似值和函数近似值要精确很多,所以在进行牛顿迭代法进行根的近似求解时,初始值的选择非常重要。用MATLAB内部函数solve直接求出方程的所有根,得到ans=-0.6180和1.6180,与(1)的结果进行比较时可以发现其两个根分别和初始值和近似根差别很大时和接近近似根的两个值相差不大。虽然用MATLAB内部函数solve直接求出方程的根的方法比较快,但是其计算结果和用迭代法求方程的根的方法相比存在一定的误差,即没有迭代法求解方程时精确值高。
本文标题:初值的选取对迭代法的影响实验报告
链接地址:https://www.777doc.com/doc-2607650 .html