第一章 線性規劃
在利用matlab求線性規劃的問題過程中,我們常用到的是linprog函式,下面我們將主要介紹一下linprog函式的常規用法。
例子 求解下列線性規劃問題
可編寫matlab程式為
c=[2;3;-5];
a=[-2,5,-1;1,3,1];
b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,fval]=linprog(-c,a,b,aeq,beq,zeros(3,1))
value=c』*x
執行結果:
x =
6.4286
0.5714
0
fval =
-14.5714
value =
14.5714
附圖:
解析:
matlab中的linprog常用的有一下幾種形式:
this matlab
function solves min f』x such that ax ≤ b.
x = linprog(f,a,b)
x = linprog(f,a,b,aeq,beq)
x = linprog(f,a,b,aeq,beq,lb,ub)
x = linprog(f,a,b,aeq,beq,lb,ub,options)
x = linprog(problem)
[x,fval] = linprog(___)
[x,fval,exitflag,output] = linprog(___)
[x,fval,exitflag,output,lambda] =linprog(___)
x = linprog(f,a,b)
功能:求解最小化問題 min x 條件 ax ≤ b。
x =linprog(f,a,b,aeq,beq)
功能:求解最小化問題 min x 條件 ax ≤ b aeqx =beq,如果沒有不等式就設定a = [ ]和b = [ ];沒有等式就設定 aeq=[ ],beq=
x =linprog(f,a,b,aeq,beq,lb,ub)
功能:求解最小化問題 min x 條件 ax ≤ b aeqx =beq lb ≤ x ≤ ub,決策變數有上下限時,如果沒有不等式就設定a = [ ]和b = [ ] ;沒有等式就設aeq=[ ],beq=[ ]
x =linprog(f,a,b,aeq,beq,lb,ub,x0)
功能:求解最小化問題 min x 條件 ax ≤ b aeq*x =
beq lb ≤ x ≤ ub,如果沒有不等式就設定a = [ ]和b = [ ]。設定初始點x0,這個選擇項只是對medium-scale演算法有效。預設的large-scale演算法和簡單的演算法忽略任何初始點。
x =linprog(f,a,b,aeq,beq,lb,ub,x0,options)
功能:最小化帶有引數項的線性規劃問題。其中options可以使用optimset來設定。
x =linprog(problem)
功能:對problem求最小值,其中problem是乙個結構體。通過優化工具箱來建立,匯入到matlab工作空間。
[x,fval] =linprog(…)
功能:返回目標函式最優解x,和在x處的值:fval =*x.
[x,fval,exitflag]= linprog(…)
功能:返回目標函式最優解x,和在x處的值:fval =*x,是否存在exitflag標誌
[x,fval,exitflag,output]= linprog(…)
功能:返回目標函式最優解x,和在x處的值:fval = *x,是否存在exitflag標誌,優化解結構體output
[x,fval,exitflag,output,lambda]= linprog(…)
功能:返回目標函式最優解x,和在x處的值:fval = *x,是否存在exitflag標誌,優化解結構體output,拉格朗日乘子結構體lambda。
MATLAB之線性規劃
c和x為n維列向量,a aeq為適當維數的矩陣,b 資源向量 beq為適當維數的列向量。1 linprog c,a,b,aeq,beq 它的返回值是向量 x的值。引數為空時,用 表示 2 x,fval linprog c,a,b,aeq,beq,lb,ub,x0 fval 返回目標函式的值 lb和 ...
matlab實現之線性規劃
這個實際上就是高中學習過的內容了,不同的是我們需要在matlab上實現它。下面基本上都用的向量和矩陣來描述了。假設我們要求 z ax1 bx2 cx3 那麼z可以描述為z ftx f a,b c x x1x 2x3 然後就是會有一系列的約數條件,讓你求z的max或min 這裡在matlab裡有乙個專...
Matlab隨筆之線性規劃
原文 matlab隨筆之線性規劃 lp linear programming,線性規劃 是一種優化方法,在優化問題中目標函式和約束函式均為向量變數的線性函式,lp問題可描述為 min x s.t.a x b aeq x beq vlb x vub 其中 b,beq均為向量,a,aeq為矩陣,x為向量...