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

ЛР1 / lab1_loman

.m
Скачиваний:
28
Добавлен:
14.12.2022
Размер:
1 Кб
Скачать
function [x_min, f_min] = lab1_loman(a, b, eps, L)
    x0 = 1/(2*L) * (myfun(a)-myfun(b)+L*(a+b));
    y0 = 1/2 * (myfun(a)+myfun(b)+L*(a-b));
    X = [[x0, y0];[1000,1000]];
    [tmp, ind] = min(X(:,2));
    X(2, :) = [];
    p_min = X(ind,2);
    x_min = X(ind,1);
    delta = 1/(2*L) * (myfun(x_min)-p_min);
    counter = 3;

    while 2*L*delta > eps
        x_left = x_min-delta;
        x_right = x_min+delta;
        
        p = 1/2*(myfun(x_min)+p_min);
        X = [X; [x_left, p]; [x_right, p]];
        X(ind, :) = [];
        [tmp, ind] = min(X(:,2));
        p_min = X(ind,2);
        x_min = X(ind,1);

        delta = 1/(2*L) * (myfun(x_min)-p_min);
        counter = counter+1;
    end
    
    x_min = x_min;
    f_min = myfun(x_min);
    str=sprintf('Минимум функции - %3f, в точке %3f',f_min, x_min);
    disp(str);
    str = sprintf('Количество вычислений значения производной функции - %d', counter);
    disp(str);

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