Я написал следующий алгоритм для того, чтобы оценить функцию в MatLab с использованием метода Ньютона (положим г = -7 в моем решении):MatLab - метод алгоритм Ньютона
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
Алгоритм работы в том, что ему выполняется без ошибок, но числа продолжают уменьшаться на каждой итерации, хотя, согласно моему учебнику, выражение должно сходиться примерно до -14 для x. Мой алгоритм корректен для первых двух итераций, но затем он выходит за пределы -14 и, наконец, заканчивается на грубой -36.4 после завершения всех итераций.
Если кто-нибудь может мне помочь, почему алгоритм работает неправильно, я был бы очень признателен!
Awesome! Теперь это работает как шарм, и, конечно же, теперь я вижу, что ваш ответ заключается в том, как следует писать формулу :). Большое спасибо! – Kristian