要点:
首先对于任何方程 :f(x)=0 ,可以转换成 f(x)+x-x => f(x)+x=x;
取g(x)=f(x)+x; 那么 新方程g(x)=x 的解即是 f(x)=0的解,即g(x)-x=0 成立时有 f(x)+x-x=0
现在研究g(x)=x 的解,该方程的解对应 函数 y=g(x) 与 函数y=x的交点(x1,y1)的x坐标即x1.
函数y=x 是对称直线,上面的的任意点(xa,ya)有xa=ya.
picard 方法的具体过程是,选任意x=x0(当然实际上是有条件的,见教程例9), 计算x1=g(x0),x2=g(x1)....xn=g(x_n-1)
当xn稳定在某一值附近时,则xn是方程的解(当然数列x0,x1,x2....xn也可能是发散的,即无法取得解,参考例9的说明)
解方程一般过程,如果可能先画出方程对应的函数,找出过零点(根)然后采用近似根按newton法或picard法进行迭代
matlab代码
clc clear syms x; format long %g=@(x)(log(x)*1000); g=@(x)(log(x)-x/1000+x); x=430; for i=1:1:20 %迭代步数 x=g(x); end x