文档介绍:第六章线性经济模型简介
§ 用MATLAB求解线性规划
模型
求解线性规划问题
线性规划问题的求解方法包括表上作业法、图解法、单纯形法、矩阵法等.
但在决策变量个数较多,求解过程都比较复杂时,用MATLAB软件求解线性规划问题则比较简单.
MATLAB求解线性规划问题的命令
⑴X=linprog(f,A,b)
求解LP问题
命令格式
命令函数 linprog()
⑵[X,fval]=linprog(f,A,b,Aeq,Beq,LB,UB)
求解LP问题
⑶[X,fval,exitflag,output,lambda]=linprog(f,A,b,
Aeq,Beq,LB,UB,X0,options).
其功能是求解有初始值X0和用options指定优化参数进行优化的LP问题.
函数说明(1)
f
A
X
b
线性规划的不等式约束条件
Aeq
Beq
线性规划的等式约束条件
目标函数取得极值的决策变量组成的列向量
矩阵
向量
矩阵
向量
目标函数的系数组成的向量
LB
X0
Options
fval
UB
变量的上界约束
变量的初始值
变量的下界约束
控制规划过程的参数系列
优化结束后得到的目标函数值
[X,fval,exitflag,output,lambda]
=linprog(f,A,b,Aeq,Beq,LB,UB,X0,options)
目标函数取得极值的决策变量组成的列向量
优化结束后得到的目标函数值
目标函数的系数组成的向量
线性规划的不等式约束条件
矩阵
向量
控制规划过程的参数系列
变量的初始值
变量的下界约束
变量的上界约束
线性规划的等式约束条件
矩阵
向量
(2)运用linprog()命令时,系统默认为它的各种linprog(f,A,b, Aeq, Beq,LB,UB,X0,options)都存在,且按固定顺序排列。本例中,在存在约束LB的情况下,它后面的参数没给出,可以不声明,但是LB前面的参数即使没给出(例如等式约束条件)也要用空矩阵“[ ]”的方式给出声明,不能省略。
函数说明
(3)返回值exitflag有3种情况:
exitflag= -1 表示优化结果不收敛。
exitflag=1 表示优化过程中变量收敛于解X。
exitflag=0 表示优化结果已经超过函数的估计值
或者已声明的最大叠代次数;
(4)返回值output有3个分量,iterations表示优化过程的叠代次数,cgiterations表示PCG叠代次数,algorithm表示优化采用的运算规则。
函数说明
(5)返回值lambda有4个分量,ineqlin是线性不等式约束条件, eqlin是线性等式约束条件,upper是变量的上界约束条件, lower是变量的下界约会条件。它们的返回值分别表示相应的约束条件在优化过程中是否有效,本例中可以看到,三个不等式约束中的后两个是有效的。
(6)线性规划问题没有可行解时,系统提示
Warning: The constraints are overly stringent;there is no feasible solution.
如果优化成功,系统将会提示:
Optimization terminated essfully
函数说明