Задание : Исходя из изложенного алгоритма метода Ньютона, определите m-функцию нахождения корней уравнения
Дали в практической работе вот такой алгоритм, но он не работает не понимаю в чем проблема
function [Root, k] = newton(f, eps, a, b)
% Проверка наличия корня на интервале [a,b]
if sign(f(a)) == sign(f(b))
disp('f(a) и f(b) одного знака!');
return;
end
% Инициализация символической переменной
syms x;
% Используем численное приближение для производных
d_f = diff(f(x)); % Первая производная
d2_f = diff(f(x),2); % Вторая производная
% Выбор точки начального приближения x_0
if sign(f(a)) == sign(d2_f(a))
x_0 = a;
else
x_0 = b;
end
k = 0; % Инициализация счетчика итераций
% Уточнение корня
x_k = x_0 - f(x_0) / d_f(x_0); % Первоначальное приближение
while abs(x_k - x_0) > eps
x_0 = x_k; % Обновляем x_0
x_k = x_0 - f(x_0) / d_f(x_0); % Вычисление k-го корня приближения
k = k + 1; % Увеличиваем счетчик итераций
end
Root = double(x_k); % Преобразуем в число
End
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |