如果我有这样的代码
funk=@(x) x2-4;
dfunk=@(x) 2*x;
xk=4;
for i = 1:5
xk+i= xk-funk(of what? xk or @(x) x2-4) / dfunk( same problem here);
end
我不知道我应该在括号中写什么它应该是Newton Raphson方法。 谢谢你的帮助
答案 0 :(得分:0)
你不应该在for循环中将i添加到你的xk中。作为Newton's Metod 生成一个收敛于funktion根的系列,+ i仅对系列的索引进行操作。
您的代码应如下所示。
funk = @(x) x^2-4;
dfunk = @(x) 2*x;
xk = 4;
for i=1:5
xk = xk - funk(xk)/dfunk(xk)
end
无论如何,我不建议使用像i = 1:5这样的固定条件,但是
TOL = 10e-4;
DIFF = 1; % something larger than TOL
funk = @(x) x^2-4;
dfunk = @(x) 2*x;
xk = 4;
while (DIFF > TOL)
aux = xk - funk(xk)/dfunk(xk);
DIFF = abs(xk-aux);
xk = aux;
end