利用Matlab解决规划问题
2020-03-05 19:40
537 查看
利用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
整数规划
非线性规划
二次规划
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 利用Matlab求解线性规划问题
- 利用MATLAB解决人工神经网络模拟预测问题研究
- 基于MATLAB利用模拟退火算法解决费马点问题
- 利用Matlab 解决二维矩阵问题
- matlab 规划问题 利用蒙…
- MatLab建模学习笔记10——利用罚函数求解非线性规划问题
- 利用粒子群算法求解非线性二层规划问题(matlab)
- MatLab建模学习笔记10——利用罚函数求解非线性规划问题
- Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法
- 20170728 JAVA利用循环和选择语句解决ATM问题
- Unity3D研究院之利用缓存池解决Instantiate慢的问题
- 解决Matlab 2012b中无法选择Visual Studio 2012作为编译器的问题
- Java利用栈解决符号匹配问题
- 第十周 项目3-利用二叉树遍历思想解决问题
- 利用maven工具解决jar包冲突问题或重复加载问题
- TTD工具-学习如何利用FitNesse解决开发质量方面的问题
- 第九周 项目3-利用二叉树遍历思想解决问题
- SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu
- 如何利用hibernate3解决数据库丢失更新问题?
- 利用Path环境变量解决oracle数据库和owb工具不兼容问题!