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

ЛР1 / lab1_markwardt

.m
Скачиваний:
26
Добавлен:
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