by wc 1.7.2016
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分別對應的是決策向量的下界向量和上界向量。
(1)化為matlab標準型,即
minw=−
2x1−
3x2+
5x3s
.t.[
−215
3−11
]⎡⎣⎢
x1x2
x3⎤⎦
⎥≤[−
1012][
111]
[x1x
2x3]
t=7
(2)求解的matlab程式如下:
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));
xfval=-fval
這裡的zeros(3,1)是為了產生3行1列的全0矩陣,對應著x1,x2,x3均大於等於0的約束條件。
得出結果如下如所示:
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)
得出的結果如下圖所示:
matlab實現之線性規劃
這個實際上就是高中學習過的內容了,不同的是我們需要在matlab上實現它。下面基本上都用的向量和矩陣來描述了。假設我們要求 z ax1 bx2 cx3 那麼z可以描述為z ftx f a,b c x x1x 2x3 然後就是會有一系列的約數條件,讓你求z的max或min 這裡在matlab裡有乙個專...
線性規劃(matlab實現)
那天上了線性規劃,老師總是說,程式設計怎麼實現,一本天大出的薄薄的最優化方法的書,還有程式設計的步驟,我晚上就試了試,這個陣列設定,是按照書上的乙個例題。高興的是單純型表的遍歷正確,但還沒有最後輸出最有值,當時有點困了。b 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 b 6 8 ...
matlab實現線性規劃
標準形式 x,fval exitflag output lambda linprog f a,b aeq,beq,lb,ub 目標函式為最小值 x,fval exitflag output lambda linprog f,a,b,aeq,beq,lb,ub 目標函式為最大值 線性規劃標準形式是 對...