MATLAB规划和LINGO规划,[数学建模]线性规划与matlab,lingo解法
1.1線性規劃問題
1.1.1什么情況下使用線性規劃(規劃)模型求解
線性規劃通常研究資源的最優利用問題,總的來說有兩類方面。
a.在任務確定的條件下,如何利用最少的資源(如資金、原材料、人工、設備)完成確定的任務?
b.在資源一定的條件下,如何組織生產使得成本最小,利潤最大?
1.1.2線性規劃解題的基本步驟
a.建立模型,列出線性規劃模型的三要素(決策變量、目標函數、約束條件)。
b.利用軟件計算得結果(excel,matlab,lingo)。
c.靈敏度分析和最優解判別,推薦使用lingo。
1.1.3經典問題
a.運輸問題
b.指派問題
1.1.4程序代碼
mtlab專用程序函數
[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x0),下面分別介紹各參數的含義.
[x,fval]返回值中x為最優解,fval為最優值.
f表示目標函數中各個變量前面的系數向量,如果是求最小值問題,那么f就是各個變量的系數,如果是求最大值問題,那么f就是各個變量的系數的相反數.
A和b??? 表示不等式約束A*x <=b中的矩陣A和向量b.
Aeq和beq??? 表示等式約束Aeq*x =beq中的矩陣Aeq和向量beq.
lb和ub??? 分別表示自變量的上下界組成的向量,如果沒有上下界,該選項用[]表示,如果只有部分變量有上下界,其余的變量沒有,那么可以把沒有上下界的變量的上下界設為-inf或者inf使lb或者ub的長度符合要求.
x0??? 表示變量的初始值,可以缺省.
1.1.5例題舉例
matlab代碼
clc
clear
c=1:4;
c=[c,c]';
aeq=[1,-1,-1,1;
1,-1,1,-3;
1,-1,-2,3];
beq=[0,1,-1/2];
aeq=[aeq,-aeq];
[x,fval]=linprog(c,[],[],aeq,beq,zeros(8,1))
x=x(1:4)-x(5:end)
lingo代碼
model:
sets:
col/1..4/:c,x;
row/1..3/:b;
links(row,col):a;
endsets
data:
c=1 2 3 4;
a=1 -1 -1 1 1 -1 1 -3 1 -1 -2 3;
b=0 1 -0.5;
enddata
min=@sum(col:c*@abs(x));
@for(row(i):@sum(col(j):a(i,j)*x(j))=b(i));
@for(col:@free(x));!x的取值可正可負;
end
總結
以上是生活随笔為你收集整理的MATLAB规划和LINGO规划,[数学建模]线性规划与matlab,lingo解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 音频基础之Smaart7声卡测试
- 下一篇: 在endnote中制作GB/T7714《