运筹学中经常会遇到线性规划问题,目标线性规划,对偶问题等,针对线性规划和对偶问题,可以直接MATLAB中的linprog函数来解决,linprog函数的原理类似于单纯形法
c=[-40 -30];
a=[3 2;2 2;1 2];
b=[55;40;35];
[x,y,exit,out,lambda]=linprog(c,a,b,[],[],zeros(2,1))
%x表示最优的自变量
%y表示最优因变量
%输出项exit的值描述程序运行的情况,若为1,说明程序收敛于1;0则说明迭代次数达到了设定的最大次数;小于0,说明情况比较多
%输出项out中的iteration表示迭代次数,algorithm表示算法
%lambda为解x处的lagrange乘子,即影子价格,在命令行输入lambda.ineqlin即得到对应的影子价格
%求原问题的对偶问题,即将目标函数的b与c交换,约束条件将ax<=b换成y*a>=c,或者以增广矩阵形式也可得出对偶问题