Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙

2024-12-26 00:21:30
推荐回答(1个)
回答1:

首先你的代码run不了,大小写x需改正,diff没用的,修改如下

function newton(f,g,a)
for n=1:20
x=a;
fa=eval(f);
ga=eval(g);
a=a-fa/ga;
x=a;
format long
disp(x)%output 'approximate value of a'
end

其次算法没错,错的是你的初值,newton算法是需要很好初值的,不然会发散
所以你必须选一个离真解很近的值,例如1,0.7,我算了是对的