利用Matlab 解决数学问题 一、线性规划 求解线性规划的 Matlab 解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一
单纯形法是首先由 George Dantzig 于 1947 年提出的,近 60 年来,虽有许多变形体已被开发,但却保持着同样的基本观念
由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优解是可行区域的一个极点
基于此,单纯形法的基本思路是:先找出可行域的一个极点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更优;如此下去,直到找到某一最优解为止
这里我们不再详细介绍单纯形法,有兴趣的读者可以参看其它线性规划书籍
下面我们介绍线性规划的 Matlab 解法
Matlab5
3 中线性规划的标准型为 bAxxcTx su ch that min 基本函数形式为 linprog(c,A,b),它的返回值是向量 x 的值
还有其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值,Aeq 和 beq 对应等式约束beqxAeq*,LB 和 UB 分别是变量 x 的下界和上界,0x 是 x 的初始值,OPTIONS 是控制参数
例 2 求解下列线性规划问题 321532m a x xxxz 0,,10527321321321xxxxxxxxx 解 (i)编写 M 文件 c=[2;3;-5]; a=[-2,5,-1]; b=-10; aeq=[1,1,1]; beq=7; x=linprog(-c,a,b,aeq,beq,zeros(3,1)) value=c'*x (ii)