您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 不动点迭代法非线性方程求解
不动点迭代法非线性方程求解求方程f(x)=0的根,可以先把方程组改写成如下形式:x=f(x)+x于是得到不动点迭代法的一种迭代公式:Xn=f(Xn-1)+Xn-1此种不动点迭代法很可能不收敛,因为它的本质是求函数y=f(x)+x与直线y=x的交点,而他们不一定存在交点。即使收敛,其速度也十分慢,因此有了艾肯特加速迭代与斯蒂芬森加速迭代。在MATLAB中编程时显得不动点迭代法的函数为:StablePoint。功能:用不动点迭代法求函数的一个零点。调用格式:[root,n]=StablePoint(f,xo,eps)。其中,f为函数名:x0为初始迭代向量:eps为根的精度:root为求出的函数零点:n为迭代步数。不动点迭代法的MATLAB程序代码如下:Function[root,n]=StablePoint(f,x0,eps)%用不动点迭代法求函数的一个零点%初始迭代向量:x0%根的精度:eps%求出的函数零点:root%迭代步数:nIf(nargin==2)eps=1.0e-4;endtol=1;root=x0;n=o;while(toleps)r1=root;n=n+1;root=subs(sym(f),findsym(sym(f)),r1)+r1;tol=abs(root-r1);end例7-6不动点迭代法求解非线性方程应用时实例。采用不动点迭代法求方程的一个根021xx。解:在MATLAB窗口命令中输入:[r,n]=StablePoint(‘1/sqrt(x)+x-2’,0.5)R=0.3820从计算结果中可以看出,经过四步碟算得出方程的一个根021xx为x=0.3820
本文标题:不动点迭代法非线性方程求解
链接地址:https://www.777doc.com/doc-2785281 .html