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

БДЗ3 / fastest_gradient

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