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

2.5.2 加权迭代法的MATLAB程序

2.5.2      加权迭代法的MATLAB程序

加权迭代法的MATLAB主程序

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

function [k,xk,yk]=jasudd (x0,tol,L,ddmax)

x1(1)=x0;

for i=1: ddmax

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

x1(i+1)= x(i+1)+L*( x(i+1)- x1(i))/(1-L);

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

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

    i=i+1;xk=x1(i);yk=fun(x1(i));[(i-1) xk yk]

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

        k=i-1;  xk=x1(i);

        return;

end

end

if i>ddmax

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

    k=i-1; xk=x1(i); [(i-1) xk yk];

    return;

end

P=[(i-1),xk,yk]';

 

例2.5.1  求2e在0.85附近的一个近似根,要求精度.

解  在MATLAB工作窗口输入程序

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

运行后输出结果

[k,xk,yk] =

   1.00000000000000   0.85260370028041   0.85260703830561

   2.00000000000000   0.85260549975491   0.85260550406236

   3.00000000000000   0.85260550207699   0.85260550208255

k =3; xk =0.852606; yk = 0.852606.

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