当前位置:首页 > 数值计算方法
然后建立f1021.m的文件,存放需要迭代的函数,源代码如下: function y = f1021(x) y=y=(x+1)^(1/3)
最后建立 prog1021.m文件 clc
clear all
fixpt('f1021',1.5,10^(-12),20) 在窗口运行prog1021即可 结果如下: ans =1.3247
2)斯蒂芬森法
建立steff.m的文件,命令窗口中输入:
>> s=steff('(x+1)^(1/3)',1.5,10^(-10),20)
k x y z
1 1.500000 1.357209 1.330861 2 1.324899 1.324752 1.324724 3 1.324718 1.324718 1.324718 4 1.324718 1.324718 1.324718
s = 1.324718
由上可得出:此构造函数用使用简单迭代法可以计算出其结果为:1.3247,斯蒂芬森只需要经过4次迭代就可以将函数不动点求出,其值为 1.324718
(2)f(x)?x?sin(x)
用matlab画出草图如下:
x=[-2:0.001:2];y=x-sin(x);z=x;plot(x,y);hold on;plot(x,z);grid on
建立steff.m的文件,命令窗口中输入:
>> s=steff('x-sin(x)',0.5,10^(-10),20) 结果为:
k x y z
1 0.500000 0.020574 0.000001 2 -0.000921 -0.000000 0.000000 s =0
(2)f(x)?sin(x)
使用matlab画出草图如图:
>> x=[-2:0.001:2];y=sin(x.^3);z=x;plot(x,y);hold on;plot(x,z);grid on
3
建立steff.m的文件,命令窗口中输入:
>> s=steff('sin(x^3)',0.5,10^(-10),20)
运行结果为:
k x y z
1 0.500000 0.124675 0.001938 2 -0.057702 -0.000192 -0.000000 3 0.000001 0.000000 0.000000 4 0.000000 0.000000 0.000000 s =0
从计算结果可以看出,不动点迭代法、Steffensen迭代法的结果几乎相近。Steffensen迭代法的收敛速度是最快的,最慢的是不动点迭代法。从整体上看,Steffensen迭代法的方法最快有比较精确,Steffensen迭代法相对其他方法是最好的方法。
3 若取得迭代公式不收敛导致计算结果出现很大的偏差。例如x-x-1?0,其迭代方程如果为x?x3-1不收敛,其算得的结果是发散的,它的值明显明显偏差很大,所以在选择方程式一定要选好恰当的。但是构造函数为x?3x?1两个方法都可以进行迭代,算出结果。然而斯蒂芬森的法都可以将结果算出,并且迭代的速度快。
共分享92篇相关文档