线性规划有关函数介绍

在MATLAB优化工具箱中,可用linprog函数求解线性规划问题。linprog函数的语法格式为:

x = linprog (f, A, b):求解问题 min f'*x,约束条件为A*x <= b。

x = linprog (f, A, b, Aeq, beq):求解上面的问题,但增加等式约束,即Aeq*x = beq。若没有不等式约束,则令A=[ ],b=[ ]。

x = linprog (f, A, b, Aeq, beq, lb, ub):定义设计变量x的下界lb和上界ub,使得x始终在该范围内。若没有等式约束,则令Aeq=[ ],beq=[ ]。

x = linprog (f, A, b, Aeq, beq, lb, ub, options):用options指定的优化参数进行最小化。

[x, fval] = linprog (...):返回解x处的目标函数值fval。

[x, fval, exitflag, output] = linprog (...):返回exitflag值,描述函数计算的退出条件,返回包含优化信息的输出参数output。

[x,fval, exitflag, output, lambda] = linprog (...):将解x处的Lagrange乘子返回到lambda参数中。

在上述语法格式中,lambda参数为解x处包含Lagrange乘子的结构。它有以下一些字段:

Lower:下界lb。

Upper:上界ub。

Ineqlin:线性不等式。

Eqlin:线性等式。

exitflag参数表示算法终止的原因,下面列出不同值对应的退出原因:

1:函数在解x处收敛。

0:迭代次数超过options.MaxIter。

-2:没有找到可行点。

-3:问题无界。

-4:执行算法时遇到NaN。

-5:原问题和对偶问题都不可行。

-7:搜索方向太小,不能继续前进。