首先,線性規劃問題被轉換成標準形式:
最小z=cx
a 1x & lt;= b 1 A2x = B2 v 1 & lt;= x & lt=v2
然後用指令[x,Fv,ef,out,lambda] = linprog (c,a1,b1,a2,B2,v1,v2,x0,opt)。
去做吧。不需要設置的部分可以省略。
鑒於妳的問題,標準類型對應的矩陣設置為:
z =-[2 5 0 0 0];
%A1和b1不需要設置。
a2 =[1 0 1 0 0;2 0 0 1 0;3 2 0 0 1];
B2 =[4 12 18];
v 1 =[0 0 0 0 0];
只需將%v2設置為壹個更大的值。
v2 =[1e 10 10 1e 10 1e 10 10 10 1e 10];
取初始值,如x0 =[0 0 0 0];
那麽[x,Fv,ef,out,lambda] = linprog (c,[],[],a2,B2,v1,v2,x0,[]);
去做吧。
臨時編的,沒編。如果妳有任何問題就告訴我。。。
有兩個問題。第壹,妳的問題中要求的是最大值,而標準值是最小值,所以妳的問題中取C向量為倒數,這樣最優解不變,但結果目標函數變成了倒數。
第二,我不知道妳的問題為什麽只有等式約束,那就來看看妳是不是抄錯了。