首页 > 编程语言 > 详细

数模常用算法系列-----线性规划

时间:2019-09-09 00:37:28      阅读:98      评论:0      收藏:0      [点我收藏+]

线性规划的 Matlab 标准形式

线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性 规划的标准形式为
\[ minC^TX \ x \ Ax <= b\ Aeqx=beq\ lb<=x<=ub\\]
其中 cxn 维列向量, AAeq 为适当维数的矩阵,bbeq 为适当维数的列向量。 例如线性规划
\[ maxC^Tx \quad s.t. \quad Ax>=b \的Matlab标准型为\min-C^Tx \quad s.t. \ -Ax <= -b \]

基本函数形式为 linprog(c,A,b),它的返回值是向量 x 的值。还有其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如:

[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值,LB 和 UB 分别是变量 X的下界和上界,x0是x的初始值,OPTIONS 是控制参数。

例题:
\[ max\quad z = 2x_1+3x_2-5x_3 \x_1+x_2+x_3=7\2x_1-5x_2+x_3>=10\x1+3x_2+x_3<=12\x1,x2,x3>=0 \]
解:

    c=[2;3;-5];
    a=[-2,5,-1;1,3,1];b=[-10;12];
    aeq=[1,1,1];
    beq=7;
    x=linprog(-c,a,b,aeq,beq,zeros(3,1))
    value = c'*x;

第一个数模相关算法,每天更新一个,(? ?_?)?!!!

数模常用算法系列-----线性规划

原文:https://www.cnblogs.com/backkom-buaa/p/11489230.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!