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

БДЗ3 / fastest_gradient

.m
Скачиваний:
0
Добавлен:
30.05.2025
Размер:
1.03 Кб
Скачать
clc,clear
syms a_s
%fun = x.^2 + x*y + 2*y.^2 - a*x - b*y + c;
%diff_x = 2*x + y - a;
%diff_y = x + 4*y - b;

a = 6.1;
b = 11.8;
c = 9.24;
e = 0.1;

x = 3;
y = 4;
%alpha = 1;

%fun_value = x.^2 + x*y + 2*y.^2 - a*x - b*y + c;

while true

grad_x = 2*x + y - a;
grad_y = x + 4*y - b;


if (abs(grad_x)<e && abs(grad_y)<e)
break
end


epsi = 0.001;
delta = 0.01;
alpha = 0;
x_min = 0;
fun_alpha = (x-a_s*grad_x).^2 + (x-a_s*grad_x)*(y-a_s*grad_y) + 2*(y-a_s*grad_y).^2 - a*(x-a_s*grad_x) - b*(y-a_s*grad_y) + c;
f_min = subs(fun_alpha,(x_min));

while abs(delta) > epsi

x_min = x_min+delta;
if f_min>subs(fun_alpha,(x_min))

alpha = x_min;
f_min = subs(fun_alpha,(x_min));


else
delta = -delta/4;
end
end

x = x - alpha*grad_x;
y = y - alpha*grad_y;

end

fun_value = x.^2 + x*y + 2*y.^2 - a*x - b*y + c
x
y



Соседние файлы в папке БДЗ3