若某非线性规划的目标函数为自变量 x 的二次函数,约束条件又全是线性的,就称这种规划为二次规划。
min \frac{1}{2}x^THx+f^Tx\\
s.t.\quad Ax \leq b
[x,fval]=quadprog(H,f,A,b,Aeq,beq,LB,UB,X0)
minf(x)=2x_1^2-4x_1x_2+4x_2^2-6x_1-3x_2\\
s.t.\begin{cases}
x_1+x_2 \leq3\\
4x_1+x_2\leq 9\\
x_1,x_2\geq 0
\end{cases}
h = [4,-4;-4,8];
f = [-6;-3];
a = [1,1;4,1];
b = [3;9];
[x,fval] = quadprog(h,f,a,b,[],[],zeros(2,1));
disp(x)
disp(fval)
规划中的变量限制为整数时,称为整数规划。
[x,fval]=intlinpog(c,intcon,A,b,Aeq,beq,LB,UB)
minz=-3x_1-2x_2-x_3\\
s.t.\begin{cases}
x_3 \quad int\\
x_1,x_2 \geq 0\\
x_1+x_2+x_3 \leq 7\\
4x_1+2x_2+x_3 = 12
\end{cases}
clear
c = [-3;-2;-1];
intcon = 3;
A = [1 1 1];
b = 7;
Aeq = [4 2 1];
beq = 12;
[x,fval] = intlinprog(c,intcon,A,b,Aeq,beq,[0;0;0]);
disp(x)
disp(fval);
本文章使用limfx的vscode插件快速发布