线性规划与非线性规划
线性规划:
\[\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');
喵~

浙公网安备 33010602011771号