【正确答案】取初始值x0=10,牛顿法的MATLAB程序如下:
function x=Newt_n(f_name,x0)
x0=10;
x=x0;xb=x-999;
n=0;del_x=0.01;
while abs(x-xb)>0.00001
n=n+1;xb=x;
if n>300,break;end
y=feval('f_name',x);
y_driv=(feval('f_name',x+del_x)-y)/del_x;
x=xb-y/y_driv:
{print{('n=/%3.0f,x=/%12.5e,y=/%12.5e,'n,x,y)
{print{('yd=/%12.5e\n',y_driv)
end
{print{('\n Final answer=/%12.6 e\n',x);
其中调用的函数f_name(x)定义如下:
function y=f_name(x)
y=x^3-155;
初始值取x0=10,经过5次迭代可得精确解.5次迭代所得数据如下:
n x
0 10
1 7.183334
2 5.790176
3 5.401203
4 5.371847
5 5.371686
【答案解析】