matlab函数收敛问题

img


想请教一下这几问怎么写,大概只知道个思路,自己写还是挺困难的

我们知道,三次函数求根可以用不动点法

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

可见是有效的