由于明天我有一个考试我决定尝试实际实现Newton的方法来计算MatLab中函数的真正根源,然后我写下了一些代码并对其进行了测试。事实证明,如果我删除了公差检查,我的方法永远不会结束(我不明白为什么),而对于少量的迭代(我已经尝试了多达4次迭代),我的功能完成了它的工作。
代码:
function [ root ] = Newton( f_name, max_steps, initial_guess )
syms x;
Function = sym(f_name);
Derivative = (diff(Function));
previous_guess = initial_guess;
for i=1:max_steps
initial_guess = initial_guess - (subs(Function,x, initial_guess))/(subs(Derivative,x, initial_guess));
if abs(previous_guess - initial_guess) < eps
break;
end
previous_guess = initial_guess;
end
root = initial_guess;
请有人以正确的方式向我发言吗? 提前谢谢。