★★让我困惑的东东!关于迭代法?大虾救命啊!!!!
书上的一个例子: 2*x*x*x+0.5*x*x-x+0.093=0  求x的值?
变成 x=2*x*x*x+0.5*x*x+0.093
可以用迭代法来计算x的接近值
program diedai(output);
const eps=0.0000001;
var x0,x1:real;
begin
  x1:=0.09;
  repeat
    x0:=x1;
    x1:=2*x0*x0*x0+0.5*sqr(x0)+0.093;
  until abs(x1-x0)<eps;
  writeln('x=',x0);
end.我的问题是:
1、用x0:=x1;的方式是否真的能碰上真正的根,也就是真正的根有没有可能被跳过?
2、x1:=0.09; 为什么? x1赋什么初值都能得到根吗?
3、像是2*x-x=0这样的方程用迭代法能解吗?
4、是不是所有的方程都可以用迭代法求根?也就是迭代法有没有使用范围的限制?

解决方案 »

  1.   

    不一定能求到真正的根,很多时候是不适合这种方法的;
    上面的条件是在将来你的x1和x0差值在一定范围内的时候方程相等之后就成为根了;
    但是迭代方向是由方程决定的,有可能你的迭代方向是向两边无限震荡的,就的不到根了;简单的方法是先用高等数学方法对算式求导;有极限的可用迭代;没有极限的迭代不出来的
      

  2.   

    上面的两个方程都是可导的,有极限,可以求到根