★★让我困惑的东东!关于迭代法?大虾救命啊!!!!
书上的一个例子: 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、是不是所有的方程都可以用迭代法求根?也就是迭代法有没有使用范围的限制?
书上的一个例子: 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、是不是所有的方程都可以用迭代法求根?也就是迭代法有没有使用范围的限制?
上面的条件是在将来你的x1和x0差值在一定范围内的时候方程相等之后就成为根了;
但是迭代方向是由方程决定的,有可能你的迭代方向是向两边无限震荡的,就的不到根了;简单的方法是先用高等数学方法对算式求导;有极限的可用迭代;没有极限的迭代不出来的