Matlab求解线性规划

matlab线性规划模型标准形式

(1)标准形式如下图所示。
 (2)若标准形式求解为最大值,需要转换为求解最小值。即Max=F(x) 转换为: Min=-F(x)。
   证明:设F(x)<=z。即Z为所求解。则-F(x)>=-z。使用Matlab求解Min=-F(x)解为-z,-z*(-1)即得到Max=F(x)的解z。
(3)矩阵情况介绍:
  c:单行矩阵,c(i)为表达式F(x)中x(i)的系数,不同系数间以“,”分隔。(有多少个x就要写多少个c,即若c(i)=0也要写,c(i)的数量表示了变量x的数量)。
  A:不等式约束中的系数矩阵。每一行表示一个不等式约束。即不同不等式约束的系数以“;”分隔,相同不等式的系数以“,”分隔。
  b:不等式约束中的结果矩阵。不同值之间使用“;”分隔。即不同不等式约束间用“;”分隔。每一行表示对应A中不等式的“结果”。
  Aeq和beq与A和b同理。
  LB与UB为单列矩阵,有多少个x就有多少行。如有3个x,则为(3,1)矩阵。
 (4)经验总结:
  【1】matlab函数参数列表仅表示参数的顺序,而不表示参数个数,或者说参数个数可随意。如图Linprog可以使用的传参列表有:(c,A,b),(c,A,b,Aeq,Beq),(c,A,b,Aeq,Beq,LB),(c,A,b,Aeq,Beq,LB,UB),(c,A,b,Aeq,Beq,LB,UB,X0)…
  【2】如若是求最大值,应该把原模型转换为求最小值,转换既可以改变模型改变C 也可以直接传入-C,但最后都要记得将结果乘以-1。如若A不等式为>=,则既可以改变为<=的情况 也可以直接传入-A,注意:当且仅当所有A都为>=时才可以传入-A,并且传入-b或者修改后的b。
  【3】如若F(x)中包含常数项 q1,q2,q3…,则等价于添加x ( p),x(p+1),x(p+2) 在F(x)中,并且x( p)对应q1、x(p+1)对应q2… 且在约束表达式中有x( p)=1、x(p+1)=1… 如下图所示。
  【4】返回值x表示最优解变量情况,fval表示所求最小值(如果是求最大值还需要转换即乘以-1)。一般x(i)<=q等条件应该使用约束表达式来定义,而不好使用上下界来定义。常用上下界是定义下界为零的矩阵。未精通尽量少使用UB,XO。x代表所有的自变量,如若题目中有其他变量如m,把m添加到x变量末尾变成x变量即可,本质都是变量没有区别。
Matlab求解线性规划_第1张图片Matlab求解线性规划_第2张图片

你可能感兴趣的:(学习-总结,matlab)