Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР1 / lab1_markwardt

.m
Скачиваний:
14
Добавлен:
14.12.2022
Размер:
706 б
Скачать
function [x_min, f_min] = lab1_markwardt(eps, f, x_start, mu)
syms x;
f_diff1 = diff(f);
f_diff2 = diff(f_diff1);
f_diff_x = double(subs(f_diff1, x, x_start));

while abs(f_diff_x) > eps
x_start = x_start - (double(subs(f_diff1, x, x_start)) / (double(subs(f_diff2, x, x_start)) + mu));
f_diff_x_old = f_diff_x;
f_diff_x = double(subs(f_diff1, x, x_start));
if f_diff_x < f_diff_x_old
mu = mu * 0.5;
else
mu = 2*mu;
end
end

x_min = x_start;
f_min = subs(f, x, x_min);
str=sprintf('Минимум функции - %3f, в точке %3f',f_min, x_min);
disp(str);

end
Соседние файлы в папке ЛР1