【发布时间】:2012-06-24 06:12:00
【问题描述】:
为了在 MatLab 中使用牛顿法(我们在我的解决方案中设置 r = -7)评估函数,我编写了以下算法:
function newton(r);
syms x;
y = exp(x) - 1.5 - atan(x);
yprime = diff(y,x);
f = matlabFunction(y);
fprime = matlabFunction(yprime);
x = r;
xvals = x
for i=1:8
u = x;
x = u - f(r)/fprime(r);
xvals = x
end
该算法的工作原理是它运行时没有任何错误,但数字在每次迭代中都在不断减少,尽管根据我的教科书,对于 x,表达式应该收敛到大约 -14。我的算法在前两次迭代中是正确的,但随后它超出了 -14 并最终在所有迭代完成后以粗略的 -36.4 结束。
如果有人可以就算法为什么不能正常工作给我一些帮助,我将不胜感激!
【问题讨论】:
标签: algorithm matlab newtons-method