Matlab线性规划
1.基本原理
一般線性規劃問題的數學標準型為
滿足約束條件的解,稱為可行解,使目標函數達到最大值的可行解稱為最優解。所有可行解構成的集合稱為問題的可行域。
Matlab中規定線性規劃的標準形式為
?
?式中:f,x,b,beq,lb,ub為列向量,其中f稱為價值向量,b稱為資源向量,A,Aeq為矩陣。
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返回目標函數的最優值,A和b對應線性不等約束;Aeq和beq對應線性等式約束;lb和ub分別對應x的下界向量和上界向量。
2.案例分析
?例1 使用Matlab軟件求解下列線性規劃問題。
?Matlab代碼:
f=[-3;1;1]; a=[1,-2,1;4,-1,-2]; b=[11,-3]; aeq=[-2,0,1]; beq=1; [x,y]=linprog(f,a,b,aeq,beq,zeros(3,1)); x,y=-y求解結果為:
x1=4,x2=1,x3=9,z的最大值為2。
例2 一架貨機有三個貨艙:前艙、中倉和后艙。三個貨艙所能裝載的貨物的最大重量和體積有限制如表5所示。并且為了飛機的平衡,三個貨艙裝載的貨物重量必須與其最大的容許量成比例。
現有四類貨物用該貨機進行裝運,貨物的規格以及裝運后獲得的利潤如表6所示:
?
?假設:
(1)每種貨物可以無限細分;
(2)每種貨物可以分布在一個或者多個貨艙內;
(3)不同的貨物可以放在同一個貨艙內,并且可以保證不留空隙。 問應如何裝運,使貨機飛行利潤最大?
解:用=1,2,3,4分別表示貨物1,貨物2,貨物3和貨物4;=1,2,3分別表示前艙、中艙和后艙。設表示第i種貨物裝在第j個貨艙內的重量,分別表示第j個艙的重量限制和體積限制,分別表示可以運輸的第i種貨物的重量,單位重量所占的空間和單位貨物的利潤,則目標函數為
約束條件為
?
Matlab代碼:?
clc,clear c=[3100;3800;3500;2850]; c=c*ones(1,3); c=c(:);%把矩陣轉化成一列 a1=zeros(4,12); for i=1:4a1(i,i:4:12)=1; end b1=[18;15;23;12]; a2=zeros(3,12); for i=1:3a2(i,4*i-3:4*i)=1; end b2=[10;16;8]; a3=zeros(3,12); bb=[480;650;580;390]; for j=1:3a3(j,4*j-3:4*j)=bb; end b3=[6800;8700;5300]; a=[a1;a2;a3];b=[b1;b2;b3]; aeq=zeros(2,12); aeq(1,1:4)=1/10; aeq(1,5:8)=-1/16; aeq(2,5:8)=1/16; aeq(2,9:12)=-1/8; beq=zeros(2,1); [x,y]=linprog(-c,a,b,aeq,beq,zeros(12,1)); x=reshape(x,[4,3]) x=sum(x'),y=-y利用Matlab求解得到每個貨艙存放每種貨物的結果如下
即四種貨物的噸數分別為0t,15t,15.9474t,3.0526t,總利潤為121520元。
?
?
總結
以上是生活随笔為你收集整理的Matlab线性规划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模(2)topsis分析法
- 下一篇: 混合线性规划matlab,matlab求