線性規劃問題
例1.1
可行解&可行域
matlab標準形式及軟件求解
標準形式:
C稱為價值向量
如果是求max,加一個負號-c^T
如果是求Ax>=b,加一個負號-Ax<=b
使用matlab求線性規劃例題
求解的是最大值:加上負號
y是求解的最優解
zeros()使用:
zeros(n):生成n×n全零陣
zeros(m,n)或者zeros([m n]):生成m×n全零陣
zeros(size(A)):生成與矩陣A相同大小的全零陣
所以zeros(3,1):生成3行1列的全零陣,3個x,1個y
非線性函數轉線性函數
任何1個數x可以通過兩個數相加來得到,|x|可以通過兩個數相減來得到
建模實戰–投資的收益和風險
問題提出:
ui:最低購買量
第一行的ui是s1,這里沒有列出存入銀行的情況
符號規定
購買資產使用資金計量,而不是數量
s0存入銀行,s1-s4投資資產
x0代表投資銀行的資金,x1-x4代表投資資產的資金
基本假設
如果資產之間不獨立就會彼此擾動
模型的分析與建立
購買的交易費很多,直接忽略uixi,用pixi計算
目標函數與約束條件
minmax{qi,xi}:總體風險=所有風險中最大的,同時要總體風險最小
總資金:M=購買資產花費的費率xi*pi+投資項目的資金xi
模型建立-多目標規劃轉單目標線性規劃
模型一:固定風險水平,優化收益
qixi/M<=a:風險率投資資產金額/總金額<=a風險界限
求解:
帶入數據:
1)因為a不知道,所以要逐個搜索
2)之前設置了M=1
3)因為投資銀行x0,沒有風險q0=0,沒有交易費p0=0,所以存入銀行的花費就是x0
4)f=(ri-pi) 收益,x0的收益為存款利率r0=0.05
matlab程序:
1)因為是要求最大的收益,所以c加上負號:c是投資資金x0-x5
2)zeros(4,1)生成4行1列的矩陣(4個x1-x4,一個y),A是計算風險
3)Q=-Q,求最大收益max
4)ones():
ones的作用是產生全1矩陣
ones(N)是產生一個NN的全1矩陣
ones(M,N)產生一個M*N的矩陣
ones(size(A))產生的矩陣應該是與A大小相同的全1矩陣
所以,aones(4,1):產生一個41的全a矩陣
5)plot():
使用plot繪制二維圖像
plot(X, Y, LineSpec)
其中X由所有輸入點坐標的x值組成,Y是由與X中包含的x對應的y所組成的向量。LineSpec是用戶指定的繪圖樣式
所以,plot(a,Q,’*k’)表示:
函數圖形用黑色顏色和星號符號來表示a和Q的函數曲線關系。
這里,plot是繪圖函數,a和Q是一組數據,k是黑色顏色的代號,星號在圖形中表示a和Q的對應值。
matlab結果:
在不同風險度的情況下,收益率都是不一樣的,但總體風險越大,收益越高
如果可接受的風險度在0.006,為最佳的收益;如果可接受的風險度比較低,往往能獲得一個更好的更高效的收益;如果可接受的風險度標記高,也建議不要超過0.025,這也會達到一個比較理想的效果,比風險度更高的時候收益更好
結論:
模型二:固定盈利水平,極小化風險
讓盈利不小于k(最低的收益保證)
模型三:投資偏好
一般s設為0.5,如果s設為0.2,比較看重收益(1-s)
(總風險-總收益)min=賠的錢
或
(總收益-總風險)max=賺的錢