Дисциплина:
Раздел:
Выполнил:

Вариационное исчисление

Квадратичное программирование

студент

www.domath.ru

>    #Optimization-пакет решения различных задач оптимизации
#plots-пакет графики

>    restart;
with(Optimization):
with(plots):

>    #Зададим квадратичную целевую функцию от двух неизвестных

>    obj:=4*x^2-y+x+5;

>    #Ниже зададим условия, накладываемые на целевую функцию, есть ограничения по поиску решения

>    cons:=[x+y-7*x>=-11,11/2*x+y<=0,x>=-4];

obj := 4*x^2-y+x+5

cons := [-11 <= -6*x+y, 11/2*x+y <= 0, -4 <= x]

>    #Ниже представлена команда, которая возвращает оптимальное решение

>    sys:=QPSolve(4*x^2-y+x+5,{x+y-7*x>=-11,11/2*x+y<=0,x>=-10});

>    #Генерирование контура целевой функции, число контуров = 30

>    p1:=contourplot(obj,x=-4..4,y=-10..10,contours=30):

#Здесь график условий-ограничений. Здесь желтым показана общая область условий-ограничений   
p2:=inequal(cons,x=-4..4,y=-10..10,
optionsexcluded=(colour=white),
optionsfeasible=(colour=yellow)
):
#оптимальная точка. цвет-зелёный
p3:=pointplot({[-0.8125,4.486]},symbolsize=13,colour=red):
display(p1,p2,p3);

sys := [2.3593750000000, [x = -.812500000000000999, y = 4.46875000000001244]]

[Maple Plot]

sys := [2.3593750000000, [x = -.812500000000000999, y = 4.46875000000001244]]

>    sys[2];

[x = -.812500000000000999, y = 4.46875000000001244]