MATLAB之线性规划

五迷三道 提交于 2020-01-19 16:27:29

线性规划:

在这里插入图片描述
c和x为n维列向量,A、Aeq为适当维数的矩阵,b(资源向量)、Beq为适当维数的列向量。

主要函数:

(1) linprog(c,A,b,Aeq,Beq)
它的返回值是向量 x的值。参数为空时,用【】表示

(2)[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub,X0)
fval 返回目标函数的值
lb和 ub 分别是变量 x的下界和上界,
x0是x的初始值。

(3)zeros(m,n)
生成m x n零矩阵

注意事项:

(1)若目标函数为max,最后取相反数来获得极大化的目标函数值。
(2)限制条件为<=
(3)变量x的个数为zeros函数的第一参量
(4)若为多个变量x1……xn,做変量変换(2分之绝对值加减原变量)构造价值列向量c=[c,c]’。('的意思是共轭转置,如果用;的话,不能解决复数的转置)。
(5)若为多个变量x1……xn,做変量変换(2分之绝对值加减原变量),构造变换后的新的系数矩阵
(6)若为多个变量x1……xn,做変量変换(2分之绝对值加减原变量),最后变换为原问题的解。
例如,x=y(1:4)-y(5:end)

例如:

在这里插入图片描述
MATLAB代码如下:
c=[2;3;1];
a=[1,4,2;3,2,0];
b=[8;6];
[x,y]=linprog(c,-a,-b,[ ],[ ],zeros(3,1))

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!