在人們的生產實踐中,經常會遇到如何利用現有資源來安排生產,以取得最大經濟效益的問題。此類問題構成了運籌學的一個重要分支--數學規劃,而線性規劃(LinearProgramming,LP)則是數學規劃的一個重要分支。本章會介紹線性規劃模型與matlab求解
目錄
- 一、線性規劃的標準形
- 二、linprog函式求解線性規劃
- 三、linprog函式應用舉例
一、線性規劃的標準形
二、linprog函式求解線性規劃
[x,fval]= linprog(c,A,b,Aeq,beq,lb,ub)
matlab輸入的引數與上方的模型都一一對應,其中:
x返回決策向量的取值;fval返回目標函式的最優值;
c為價值向量;A和b對應線性不等式約束;matlab預設只能求最小值,若需要求大最大值,給向量c填一個負號即可(得到結果後也記得轉換回來);不等式約束同理
Aeq和beq對應線性等式約束;如果沒有等式約束,對應引數的輸入位置輸入[]即可
lb和ub分別對應決策向量的下界向量和上界向量,全部自變數無約束可不寫,部分變數無約束可以-inf與inf來表示
三、linprog函式應用舉例
c = [-2 -3 5]';
A = [-2 5 -1;
1 3 1];
b = [-10 12];
Aeq = ones(1,3);
beq = 7;
lb = zeros(3,1);
[x fval] = linprog(c, A, b, Aeq, beq, lb)
fval = -fval % 注意這個fval要取負號(原來是求最大值,我們新增負號變成了最小值問題)