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

2.4.2迭代法的MATLAB程序1

 2.4.2   迭代法的MATLAB程序1

迭代法的MATLAB主程序1

function [k,piancha,xdpiancha,xk]=diedai1(x0,k)

% 输入的量--x0是初始值,k是迭代次数

x(1)=x0;

for i=1:k

   x(i+1)=fun1(x(i));%程序中调用的fun1.m为函数y=φ(x)

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

    i=i+1;xk=x(i);[(i-1) piancha xdpiancha xk]

end

if (piancha >1)&(xdpiancha>0.5)&(k>3)

    disp('请用户注意:此迭代序列发散,请重新输入新的迭代公式')

    return;

 end

   if (piancha < 0.001)&(xdpiancha< 0.0000005)&(k>3)

    disp('祝贺您!此迭代序列收敛,且收敛速度较快')

    return;

 end

p=[(i-1) piancha xdpiancha xk]';

 

例2.4.1  求方程的一个正根.

解  在MATLAB工作窗口输入程序

>> [k,piancha,xdpiancha,xk]= diedai1(2,5)

运行后输出用迭代公式的结果

[k,piancha,xdpiancha,xk]=

1.00000000000000  1.00000000000000   0.33333333333333   3.00000000000000

2.00000000000000  2.50000000000000   5.00000000000000   0.50000000000000

3.00000000000000  4.37500000000000   0.89743589743590   4.87500000000000

4.00000000000000 11.75781250000000   1.70828603859251  -6.88281250000000

5.00000000000000 11.80374145507813   0.63167031671297 -18.68655395507813

请用户注意:此迭代序列发散,请重新输入新的迭代公式

k=5,piancha = 11.80374145507813,xdpiancha = 0.63167031671297,

xk = -18.68655395507813

由以上运行后输出的迭代序列与根=2.316 624 790 355 40相差越来越大,即迭代序列发散,此迭代法就失败.这时偏差piancha逐渐增大且偏差的相对误差xdpiancha的值大于0.5.

用迭代公式运行后输出的结果

[k,piancha,xdpiancha,xk]=

1.00000000000000  0.50000000000000  0.20000000000000  2.50000000000000

2.00000000000000  0.27777777777778  0.12500000000000  2.22222222222222

3.00000000000000  0.14619883040936  0.06172839506173  2.36842105263158

4.00000000000000  0.07926442612555  0.03462603878116  2.28915662650602

5.00000000000000  0.04230404765128  0.01814486863115  2.33146067415730

k =5,piancha =0.04230404765128,xdpiancha = 0.01814486863115,

xk = 2.33146067415730

可见,偏差piancha和偏差的相对误差xdpiancha的值逐渐变小,且第5次的迭代值xk =2.331 460 674 157 30与根=2.316 624 790 355 40接近,则迭代序列收敛,但收敛速度较慢,此迭代法较为成功.

用迭代公式运行后输出的结果

[k,piancha,xdpiancha,xk]=

 1.00000000000000   0.33333333333333   0.14285714285714   2.33333333333333

   2.00000000000000   0.01666666666667   0.00719424460432   2.31666666666667

   3.00000000000000   0.00004187604690   0.00001807631822   2.31662479061977

   4.00000000000000   0.00000000026437   0.00000000011412   2.31662479035540

   5.00000000000000                  0                  0   2.31662479035540

祝贺您!此迭代序列收敛,且收敛速度较快

k = 5; piancha = 0; xdpiancha = 0; y = 2.31662479035540.

可见,偏差piancha和偏差的相对误差xdpiancha的值越来越小,且第5次的迭代值xk=2.316 624 790 355 40与根=2.316 624 790 355 40相差无几,则迭代序列收敛,且收敛速度很快,此迭代法成功.

 

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