matlab求解線性規劃問題

卢宇博發表於2024-08-10

在人們的生產實踐中,經常會遇到如何利用現有資源來安排生產,以取得最大經濟效益的問題。此類問題構成了運籌學的一個重要分支--數學規劃,而線性規劃(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分別對應決策向量的下界向量和上界向量,全部自變數無約束可不寫,部分變數無約束可以-infinf來表示

三、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要取負號(原來是求最大值,我們新增負號變成了最小值問題)

相關文章