其他分享
首页 > 其他分享> > 线性规划与非线性规划

线性规划与非线性规划

作者:互联网

线性规划:

\[\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');

标签:Aeq,end,线性规划,text,非线性,leq,与非,eq
来源: https://www.cnblogs.com/Qing-Ying/p/14679486.html