二次规划:
目标函数是决策变量的二次函数,约束条件是线性函数。
二次规划标准模型:
[minquad f=frac{1}{2}X^THX+C^TX
]
[s.t.egin{cases}
quad AXleq b\
Aeqcdot X=beq\
Lleq Xleq U\
end{cases}
]
quadprog 调用格式:
[x,favl]=quadprog(H,c,A,b,Aeq,beq,L,U,x0)
例:
[minquad f(x_1,x_2)=x_1^2-2x_1x_2+2x_2^2-4x_1-12x_2
]
[s.t.quadegin{cases}
x_1+x_2=2\
x_1-2x_2geq-2\
2x_1+x_2leq3\
x_1geq0\
x_2geq0
end{cases}
]
标准模型中:
[H=left[
egin{array}{c}
2&-2\
-2&4\
end{array}
ight]
quadquad c=[-4quad -12]
]
[A=left[egin{array}{c}
-1&2\
2&1\
end{array}
ight]
quad b=left[egin{array}{c}
2\
3\
end{array}
ight]
quad Aeq=[1quad 1]quad beq=2
]
Matlab 程序:
H=[2 -2; -2 4];
c=[-4 -12];
A=[-1 2;2 1];
b=[2 3]';
Aeq=[1 1];
beq=2;
L=[0 0];
U=[];
[x,favl]=quadprog(H,c,A,b,Aeq,beq,L,U)
计算结果:
x =
0.6667
1.3333
favl =
-16.4444
>>