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

ЛР1 / lab1_hord

.m
Скачиваний:
28
Добавлен:
14.12.2022
Размер:
1 Кб
Скачать
function [x_min, f_min] = lab1_hord(a, b, eps, f)
    a_start = a;
    b_start = b;
    syms x;
    f_diff = diff(f);    

    f_diff_a = double(subs(f_diff, x, a));
    f_diff_b = double(subs(f_diff, x, b));
    x_min = a - ( f_diff_a / (f_diff_a - f_diff_b) ) * (a-b);
    f_diff_xmin = double(subs(f_diff, x, x_min));
    counter = 3;

    while abs(f_diff_xmin) > eps
        if f_diff_xmin > 0
            b = x_min;
            f_diff_b = f_diff_xmin;
        else
            a = x_min;
            f_diff_a = f_diff_xmin;
        end
        
        x_min = a - ( f_diff_a / (f_diff_a - f_diff_b) ) * (a-b);
        f_diff_xmin = double(subs(f_diff, x, x_min));
        counter = counter + 1;
    end

    f_min = myfun(x_min);
    str=sprintf('Минимум функции на отрезке [%d; %d] - %3f, в точке %3f',a_start, b_start, f_min, x_min);
    disp(str);
    str = sprintf('Количество вычислений значения производной функции - %d %d', counter);
    disp(str);
    
end
Соседние файлы в папке ЛР1