1、xk1 少(x)。(3)、牛顿法若已知方程的一个近似根X。,则函数在点X。附近可用一阶泰勒多项式pl(x) f(X。)f,(X0)(X X。)来近似,因此方程f(x)。可近似表示为f(x。)fdXx x)。设f(x。)。,则x x0 (x。取X作为原方程新的近f (Xk)似根X1,然后将X1作为X0代入上式。迭代公式为:Xk 1 X0 f(Xk) O三、 实验设备:MATLAB 7.。软件四、结果预测(1) xii=0.09033 (2) x5=0.09052 (3) x2=0,09052 五、实验内容(1)、在区间0,1上用二分法求方程ex 10x 2。的近似根,要求误差不 超过 0.5 1
2、0 3。、取初值X0 0,用迭代公式Xk 1 X0 f(xk),求方程ex 10x 2 0的3近似根。要求误差不超过0.5 10 。(3)、取初值X0 0,用牛顿迭代法求方程ex 10x 2 0的近似根。要求误差不超过0.5 10 O六、实验步骤与实验程序(1)二分法第一步:在MATLAB 7.0软件,建立一个实现二分法的 MATLA的数文件 agui_bisect.m 如下:function x=agui_bisect(fname,a,b,e)%fname为函数名,a,b为区间端点,e为精度fa=feval(fname,a); % 把a端点代入函数,求fafb=feval(fname,b);
3、 % 把b端点代入函数,求fbif fa*fb0 error( 两端函数值为同号);end哪口果fa*fb0 ,则输出两端函数值为同号k=0x=(a+b)/2while(b-a)(2*e) % 循环条件的限制fx=feval(fname,x);% 把x代入代入函数,求fxif fa*fxfun=inline(exp(x)+10*x-2 x=agui_bisect(fun,0,1,0.5*10A-3)第三步:得到计算结果,且计算结果为kx0.5000000000000010.2500000000000020.125000000000000.062500000000004.0937*50.0781
4、25000000006.0859*7.0898*8.0917*9.0908*10.0903*11Command WindowInline function:0. 125COOOOOCOOOOfurJi) = exp x)+13*x-2 x=agLi_bi-sect (fun. D, l,0.5*13A-3)O.SOCCOOOMOCOCOC. 062500000CDOOO0. 093750OO0C0CO00. 07&125000000000, C91796875DODOO 0898*0.090332D3125G0C(2)迭代法在MATLA7.0软件,建立一个实现迭代法的MATLAB函数文件agu
5、i_main.m如下:function x=agui_main(fname,x0,e)%fname为函数名dfname的函数fname的导数,x0为迭代初值%e为精度,N为最大迭代次数(默认为100)N=100;x=x0; %把x0赋给x,再算x+2*e赋给x0x0=x+2*e;k=0;while abs(x0-x)e&kN %1环条件白控制:x0-x的绝对值大于某一精度,和迭代次数小于Nk=k+1 %显示迭代的第几次x0=x;x=(2-exp(x0)/10 % 迭代公式disp(x)% 显示 xif k=N warning。 已达到最大迭代次数end % 如果K=N则输出已达到最大迭代次数
6、x=agui_main(fun,0,1,0.5*10A-3)得出计算结果,且计算结果为0.100000000000000.08948290819244.0906*0.09051261667437以下是结果的屏幕截图Command AJindaur0. 08948290S19244f皿-Inline faction:funfej. = e即皿10 哪2 X二双uijnain(fumQ 口. 5*10-3)U.0906*0. lOQDOOOOQPQOOQQ.09051201667437k -aK 二(3)牛顿迭代法在 MATLAB 7.0软件,建立一个实现牛顿迭代法的MATLAB1数文件=agui
7、_newton.m 如下:function x=agui_newton(fname,dfname,x0,e)x=x0-feval(fname,x0)/feval(dfname,x0);% 牛顿迭代公式 dfun=inline(exp(x)+10 x=agui_newton(fun,dfun,0,0.5*10A-3)得出结果,且结果为.0909*0.09052510858339Command Winctow Window(1) xii=0.09033 (2) x5=0.09052八、实验分析与结论fun Cx) - ukp 以)十】。松一? dfun=inlxn.Erexp (耳)+ICT )d
8、fim - dfun(x) = esp 0 x=afui_Tievrt on (fun, d/un, 0, 0. 5*IO,YI0.03090509090909Z0.09052510658339 Q9Q52slM 8339(3) x2=0,09052由上面的对二分法、迭代法、牛顿法三种方法的三次实验结果,我们可以得出这样的结论:二分法要循环 k=11次,迭代法要迭代k=5次,牛顿法要迭代k=2次才能达到精度为0.5 10 3的要求,而且方程ex 10x 2 0的精确解经计算,为 0.0905250, 计算量从大到小依次是 :二分法 ,迭代法 ,牛顿法。由此可知,牛顿法和迭代法的精确度要优越于二
9、分法。而这三种方法中,牛顿法不仅计算量少,而且精确度高。从而可知牛顿迭代法收敛速度明显加快。可是迭代法是局部收敛的,其收敛性与初值 x0 有关。二分法收敛虽然是速度最慢,但也有自己的优势,可常用于求精度不高的近似根。迭代法是逐次逼近的方法 , 原理简单 , 但存在收敛性和收敛速度的问题。 对与不同的题目, 可以从三种方法的优缺点考虑用哪一种方法比较好。 fun=irLlin f exp (i)+10*x-2T)fun =Ini ine fun.ct ion;- sip (w)+l 0*x-2 dfim= inline(? ezpis+lO* 1 2 * *)dfun =Iril ine f unfit ion:dfun (x) = exp (耳)+1 QK=agni_nevrt onfundfvin., % CL 5* 1T - 3) k = 0909*k =D.09052510858J39七、实验结果
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1