這個實際上就是高中學習過的內容了,不同的是我們需要在matlab上實現它。
下面基本上都用的向量和矩陣來描述了。
假設我們要求 z=
ax1+
bx2+
cx3
那麼z可以描述為z=
ftx , f=
[a,b
,c],
x=⎡⎣
⎢x1x
2x3⎤
⎦⎥然後就是會有一系列的約數條件,讓你求z的max或min
這裡在matlab裡有乙個專門函式即linprog來求解線性問題,為了統一描述,linprog只求zm
in, 設約束條件不等關係描述為a∙
x<=b
同樣是統一描述是小於等於
等號關係為aeq
∙x=be
q x的範圍描述為
lb<=
x<=
ub
則linprog的命令為:
[x,y]=linprog(f,a,b,aeq,beq,lb,ub);//詳情輸入help linprog,x是向量,y是所求的最值
如求min z=
2x1+
3x2+
x3約數: x1
+4x2
+2x3
>=8
3x1+
2x2>=6
x1,x
2,x3
>=0
**:
f=[2;3;1];
a=[ -1 -4 -2
-3 -2 0];
b=[-8,-6];
[x,y]=linprog(f,a,b,,,zeros(3,1));
x,y
線性規劃(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 目標函式為最大值 線性規劃標準形式是 對...
MATLAB之線性規劃
c和x為n維列向量,a aeq為適當維數的矩陣,b 資源向量 beq為適當維數的列向量。1 linprog c,a,b,aeq,beq 它的返回值是向量 x的值。引數為空時,用 表示 2 x,fval linprog c,a,b,aeq,beq,lb,ub,x0 fval 返回目標函式的值 lb和 ...