應用matlab優化工具箱中的linprog函式求解線性規劃時模型要求為如下形式:
其中:均為列向量,為常數矩陣,為常數列向量。
函式呼叫格式如下:
%決策變數有上下界,預設變數非負。
例1-38 用matlab 求解下面線性規劃問題
令z1= -z
matlab求解程式存為
c=[-150,-210];
a=[2,3;3,4;5,5];
b=[100;120;150];
c=;d=;
xm=[0;0];
xm=10^10*[1;1];
[x,z1]=linprog(c,a,b,c,d,xm,xm)
optimization terminated.
在命令視窗鍵入按回車得最優解和最優值
x = 0.0000
30.0000
z1 =
-6.3000e+003
故最優解為 x1=0,x2=30; 最優值為z=-z1=6300.
3使用lingo求解線性規劃問題
通常在lingo中建立優化模型由model語句開始,由end語句結束。模型中包含四部分(即四段):集合(sets)、資料段(data)、初始段(init)、目標和約束段。
(1) 集合段: 它是以 sets開始,endsets結束,其作用是定義所用集合變數及元素(陣列的下標),以及相應的屬性(陣列)。
(2) 資料段:它是以 data開始,enddata結束,其作用是對集合段中定義的屬性(陣列)賦值(常數)。資料之間用逗號分開或用空格分開。
(3) 初始段:它是以init開始,endinti結束,其作用是對集合段中定義的屬性(變數陣列)賦迭代初值。這部分可以沒有。
(4) 目標與約束段:在此段主要定義問題的目標函式和約束條件,一般用到lingo內部的函式祥見附錄a。
以下面線性規劃問題為例給出lingo的求解模型
問題:lingo的求解模型
model
sets:
row/1..m/:b表示b是乙個m維的列向量
arrang/1..n/:x,c表示x,c是n維的行向量
link(row,arrange):a表示a是mxn的矩陣
endsets
data
b=b(1),b(2),…,b(m表示約束條件的右端項
c=c(1),c(2),…,c(n表示目標函式係數
a=a(1,1),a(1,2),…,a(1,n表示約束條件的係數矩陣
a(2,1),a(2,2),…,a(2,n),
… a(m,1),a(m,2),…,a(m,n);
enddata
[obj]max=@sum(arrange(j):c(j)*x(j));
@for(row(i):@sum(arrange(j):a(i,j)*x(j)<=b(i););
@for(arrange(j):x(j)>=0;);
end例1-39 用matlab 求解下面線性規劃問題
lingo的求解程式:
model
sets:
row/1,2,3/:b
arrang/1,2/:x,c
link(row,arrange):a
endsets
data
b=100,120,150;
c=150,210;
a=2,3, 3,4,5,5;
enddata
[obj]max=@sum(arrange(j):c(j)*x(j));
@for(row(i):@sum(arrange(j):a(i,j)*x(j)<=b(i););
@for(arrange(j):x(j)>=0;);
end最優解
用matlab求解線性規劃問題
實驗四用matlab求解線性規劃問題 一 實驗目的 了解matlab的優化工具箱,能利用matlab求解線性規劃問題。二 實驗內容 線性規劃的數學模型有各種不同的形式,其一般形式可以寫為 目標函式 約束條件 這裡稱為目標函式,稱為價值係數,稱為價值向量,為求解的變數,由係數組成的矩陣 稱為不等式約束...
利用Matlab求解線性規劃問題
15.利用matlab求解線性規劃問題 線性規劃是一種優化方法,matlab優化工具箱中有現成函式linprog對如下式描述的lp問題求解 min f x s.t 約束條件 ax b 等式約束條件 aeqx beq lb x ub linprog函式的呼叫格式如下 x linprog f,a,b x...
15利用Matlab求解線性規劃問題
線性規劃是一種優化方法,matlab優化工具箱中有現成函式linprog對如下式描述的lp問題求解 min f x s.t 約束條件 ax b 等式約束條件 aeqx beq lb x ub linprog函式的呼叫格式如下 x linprog f,a,b x linprog f,a,b,aeq,b...