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

ЛР1 / lab1_loman

.m
Скачиваний:
15
Добавлен:
14.12.2022
Размер:
1.04 Кб
Скачать
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