matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

2.5.4 艾特肯(Aitken)加速方法的MATLAB程序

2.5.4  艾特肯(Aitken)加速方法的MATLAB程序

艾特肯(Aitken)加速方法的MATLAB主程序

现提供名为Aitken.m的M文件如下:

function [k,xk,yk,p]= Aitken (x0,tol, ddmax)

x(1)=x0;

for i=1: ddmax

   x1(i+1)=fun(x(i)); x2(i+1)=fun(x1(i+1));

    x(i+1)=x2(i+1)-(x2(i+1)-x1(i+1))^2/(x2(i+1)-2*x1(i+1)+ x(i));

   piancha=abs(x(i+1)-x(i));

xdpiancha= piancha/( abs(x(i+1))+eps);

   i=i+1; xk=x(i);yk=fun(x(i));

       if (piancha<tol)|(xdpiancha<tol)

         k=i-1;  xk=x(i); yk=fun(x(i));

 m=[0,1:i-1]; p=[m',x1',x2',x'];

           return;

end

end

if i>ddmax

    disp('迭代次数超过给定的最大值ddmax')

    k=i-1;  xk=x(i); yk=fun(x(i));

 m=[0,1:i-1]; p=[m',x1',x2',x'];

    return;

end

m=[0,1:i-1]; p=[m',x1',x2',x'];

 

例2.5.3  用艾特肯加速方法求2e在0.85附近的一个近似根,要求精度.

解  在MATLAB工作窗口输入程序

>> [k,xk,yk,p]= Aitken(0.85,1e-6, 100)

运行后输出结果

k=3,xk=0.85260550201343,yk=0.85260550201373

p =               0                   0                   0   0.85000000000000

 1.00000000000000   0.85482986389745   0.85071110652484   0.85260683568607

 2.00000000000000   0.85260436491811   0.85260647150826   0.85260550201407

 3.00000000000000   0.85260550201343   0.85260550201398   0.85260550201373


欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3020504.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1