我们知道,三次函数求根可以用不动点法
f = x^3 - m = 0解这个方程就可以得到m开立方根的值,我们使用不动点法
(a*x+b)/(c*x^2+d*x+e) = x
得到c*x^3 + d*x^2 + e*x = a*x + b
可见d=0,且x^3 = b/c = m, a=e
不妨令c=1,那么b=m, 令e=a=10
即有
f(x) = (10*x+m)/(x^2 + 10)
编程:
m = 3;
err = 1;
x0 = 0;
while (err>1e-6)
x1 = (10*x0+m)/(x0^2 + 10);
err = abs(x1-x0);
x0 = x1;
end
x1
结果:
x1 =
1.442249051463606
可见是有效的