已知目标函数和约束条件,怎么用matlab语言表示出来
1个回答
展开全部
线性规划
标准模型:
min z=f*X
AX<=b
s.t (方程组){ AeqX=beq
lb<=X<=ub
[X,fval]=linprog(f,A,b,Aeq,beq,lb,ub,X0,poti)
X0为初始点(可省略),poti为控制参数,用于控制精度,输出形式,算法选择,迭代次数等(可省略)。
例如:min z=-5x1-4x2-6x3
x1-x2+x3<=20
3x1+2x2+4x3<=42
s.t.{ 3x1+2x2<=30
xi>=0,i=1,2,3
f=[-5,-4,-6];
A=[1 -1 1;3,2 4;3 2 0];
b=[20;42;30];
lb=zeros(3,1);
[x,fval]=linprog(f,A,b,[],[],lb)得答案
大规模二次规划:
min z=1/2X'Hx+f*X
AX<=b
s.t.{AeqX<=beq
lb<=X<=ub
[X,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,X0,opti)
想求最大值加个负号就行。
另外也可把最值点求出来一个个试。
标准模型:
min z=f*X
AX<=b
s.t (方程组){ AeqX=beq
lb<=X<=ub
[X,fval]=linprog(f,A,b,Aeq,beq,lb,ub,X0,poti)
X0为初始点(可省略),poti为控制参数,用于控制精度,输出形式,算法选择,迭代次数等(可省略)。
例如:min z=-5x1-4x2-6x3
x1-x2+x3<=20
3x1+2x2+4x3<=42
s.t.{ 3x1+2x2<=30
xi>=0,i=1,2,3
f=[-5,-4,-6];
A=[1 -1 1;3,2 4;3 2 0];
b=[20;42;30];
lb=zeros(3,1);
[x,fval]=linprog(f,A,b,[],[],lb)得答案
大规模二次规划:
min z=1/2X'Hx+f*X
AX<=b
s.t.{AeqX<=beq
lb<=X<=ub
[X,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,X0,opti)
想求最大值加个负号就行。
另外也可把最值点求出来一个个试。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询