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

ЛР2 / lab2_pokoordinat_spusk

.m
Скачиваний:
14
Добавлен:
14.12.2022
Размер:
1.11 Кб
Скачать
function [x_min, y_min, value_counter, iter_counter] = lab2_pokoordinat_spusk(y, x_start, eps)

value_counter = 0;
iter_counter = 0;
j = 1;
e = eye(2);
x = x_start;
x_old = x;

while(1)
iter_counter = iter_counter +1;

f = @(a)y(x + a*e(j, :));
tmp = lab1_porazryad(f, 0, 10^(-8));
value_counter = value_counter + tmp(2);
x = x + tmp(1)*e(j, :);

if (j < 2)
j = j+1;
else
j = 1;
if(abs(y(x_old) - y(x)) < eps)
x_min = x;
y_min = y(x_min);
break;
else
x = x + tmp(1)*e(j, :);
value_counter = value_counter + 1;
x_old = x;
end
end
end

str = sprintf('Минимум функции %3f, в точке x1 = %3f, x2 = %3f',y_min, x_min(1), x_min(2));
disp(str);
str = sprintf('Количество вычислений - %d. Количество итераций метода - %d', value_counter, iter_counter);
disp(str);
Соседние файлы в папке ЛР2