利用Matlab解决规划问题

线性规划

应用单纯形法求解

将线性规划问题的一般形式转化为标准形式:
1.若为maxf(x),则化为-maxf(x)
2.将不等式约束化为等式约束:
(1)若gi(X)<=bi,转为gi(X)+xk=bi
(2)若gi(X)>=bi,转为gi(X)-xk=bi
3.将任意变量转为非负变量(即xi>=0)
4.将负的限定系数转为正值(Ax=b,若b为负值,则等式两边均乘以-1)
e.g.
minf(x)=-4x1-x2
s.t.
-x1+2x2<=4
2x1+3x2<=12
x1-x2<=3
x1,x2>=0
解:
用M函数形式求解

	A=[-1,2,1,0,0;2,3,0,1,0;1,-1,0,0,1]
	c=[-4,-1,0,0,0]
	b=[4,12,0]
	[x,mf]=SimpleMthd0(A,c,b,[3 4 5])

运行结果如下;
x= 4.2000 1.2000
mf=-18.0000

利用优化工具linprog

Matlab的优化工具箱里有现成函数linprog
minf(x)
s.t.(不等式约束)Ax<=b
(等式约束)Aeqx=beq
lb<=x<=ub
基本格式

[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)

e.g.
minf(x)=-2x1-x2+3x3-5x4
s.t.
x1+2x2+4x3-x4<=6
2x1+3x2-x3+x4<=12
x1+x3+x4<=4
x1,x2,x3,x4>=0
解:

f=[-2 -1,3,-5]
A=[1 2 4 -1;2 3 -1 1;1 0 1 1]
b=[[6 12 4]
lb=[0 0 0 0]
[x,fval]=linprog(f,A,b,[],[],lb)

输出结果如下:
x=
0.0000
2.6667
0.0000
4.0000
fval=-22.6667

整数规划

非线性规划

二次规划

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值