1.Matlab規定線性規劃的標準形式爲:
幾個不等式是問題的約束條件,記爲 s.t.(即 subject to)。 MATLAB中求解線性規劃的命令爲:
[ x,fval ]=linprog(f,A,b)
[ x,fval ]=linprog(f,A,b,Aeq,beq)
[ x,fval ]=linprog(f,A,b,Aeq,beq,lb,ub)
其中:返回的x爲決策向量的取值; 返回的fval是目標函數的最大值;f爲價值向量;A和b對應的是線性不等式約束;Aeq和beq對應的是線性等式約束;lb和ub分別對應的是決策向量的下界向量和上界向量。函數
eg:
(1)化爲Matlab標準型,即 spa
(2)求解的Matlab程序以下:code
f=[-2,-3,5]' A=[-2,5,-1;1,3,1]; b=[-10;12]; Aeq=[1,1,1]; beq=7; [x,fval]=linprog(f,A,b,Aeq,beq,zeros(3,1)); x fval=-fval
這裏的zeros(3,1)是爲了產生3行1列的全0矩陣,對應着x1,x2,x3均大於等於0的約束條件。
得出結果以下如所示:
圖片
2.能夠轉化爲線性規劃的問題 it
(1)
可進一步把模型改寫爲:
class
eg:
作變量變換
並把新變量從新排列成一維向量
便可把模型變換爲線性規劃模型,其中:
(2)
計算的MATLAB程序以下所示:變量
c=[1:4];c=[c,c]'; a=[1,-1,-1,1;1,-1,1,-3;1,-1,-2,3]; a=[a,-a]; b=[-2;-1;1/2]; [y,fval]=linprog(c,a,b,[],[],zeros(8,1)); x=y(1:4)-y(5:8)
得出的結果以下圖所示:
file