线性规划问题的matlab求解

注意:这里介绍的求解方式在使用上还是比较复杂,一般在科研中并不直接使用这种方式,但了解这种方式可以帮助我们有效学习其它工具。

线性规划问题是最简单的有约束最优化问题,下面是一个例子:
min -2x1-x2-4x3-3x4-x5
向量x s.t.
2x2+x3+4x4+2x5 <= 54
3x1+4x2+5x3-x4-x5<=62
x1,x2>=0,x3>=3.32,x4>=0.678,x5>=2.57

它的标准形式可以表示为:

线性规划问题的matlab求解_第1张图片

matlab提供了 linprog函数来解线性规划问题,函数调用格式如下:

下面是一个例子:

线性规划问题的matlab求解_第2张图片

linprog函数的传入参数不再细说,其中f,A,B,Ae,Be很好理解,而xm是x的下界,xM是上界,在上例中为空集,在上例中初始值也为空集,ff为配置选项,一般情况下我们不用专门设置。下面再看一个例子:

线性规划问题的matlab求解_第3张图片

线性规划问题的matlab求解_第4张图片

对于linProg函数的输出参数可以简单描述如下:[x,fval,exitflag,output,lambda] = linprog(...)

x 就是获取最优值时的 x向量值

fval 为最优值,

对于输出值的意义,如下所示:

线性规划问题的matlab求解_第5张图片

对于上例的输出结果为:

线性规划问题的matlab求解_第6张图片

matlab自身只提供了求解线性规划的函数,没有提供求解整数线性规划或01线性规划的函数,而我们在科研中遇到的规划问题有许多是整数线性规划问题,这时候就要使用其它软件包了,具体使用方法在另一篇文章中介绍。

你可能感兴趣的:(matlab)