2 使用MATLAB求解線性規劃問題

2022-09-06 21:33:10 字數 1850 閱讀 3192

應用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...