线性规划:
\[\begin{align} &\min {\space} f^Tx \space ,\\ &s.t.\begin{cases} A \cdot x \leq b \\ A_{eq} \cdot x = b_{eq}\\ lb \leq x \leq ub \end{cases} \end{align} \]f=[13;9;10;11;12;8];
A=[0.4,1.1,1,0,0,0;0,0,0,0.5,1.2,1.3];
b=[800;900];
Aeq=[]; beq=[];
lb=[];ub=[];
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub);
非线性规划:
\[\begin{align} &Min {\space} F(x) \: ,\\ &s.t.\begin{cases} AX \leq b &\text{线性约束} \\ A_{eq} \cdot X = b_{eq} &\text{线性等式约束}\\ G(X) \leq 0 &\text{非线性约束}\\ C_{eq}(X)=0 &\text{非线性等式约束}\\ VLB \leq X \leq VUB &\text{变量上下限} \end{cases} \end{align} \]|*非线性函数*|
function [g,ceq] = ulinear(x)
g=[G1(X);G2(X);...]; //非线性约束组
ceq=[Ceq1(X);Ceq1(X);...]; //非线性等式约束组
end
|*主函数*|
function res=fun(x)
res=F(X);
end
|*主程序*|
x0=[-1;1]; //初值
A=[];b=[];
Aeq=[1 1];beq=[0];
vlb=[];vub=[]; //空格隔开
[x, fval]=fmincon('fun', x0, A, b, Aeq, beq, vlb, vub, 'ulinear');