用matlab如何编写牛顿迭代法问题,谢谢

X^3-X-1=0在闭区间【1,2】内的近似根 要求精度达到10^(-5)
2024-12-16 14:58:14
推荐回答(3个)
回答1:

function [ A ] = cal( a,b,v )%a,b表示区间,v是精度
i=1;
x = (a+b)/2;
A=[i x];
t = x-(x^3-x-1)/(3*x^2-1);%迭代函数
while(abs(t-x)>v)
i=i+1;
x = t;
A = [A;i x];
t = x-(x^3-x-1)/(3*x^2-1);%迭代函数
end
A = [A;i+1 t];
end
运行结果:
>> format long;
>> cal(1,2,0.00001)

ans =

1.000000000000000 1.500000000000000
2.000000000000000 1.347826086956522
3.000000000000000 1.325200398950907
4.000000000000000 1.324718173999054
5.000000000000000 1.324717957244790

回答2:

看一本书叫数值计算, x=x^3-1或者 x=sqrt3(x+1) 不停的迭代即可 其中一个应该满足迭代的收敛原则,具体的收敛条件请看书。

回答3:

见参考资料