非線性規劃模型NP
包含非線性函數:不是直線而是曲線、曲面、或不確定的屬性,叫非線性。
如:x^2
線性函數:一次函數,ax+b
列1-投資決策問題
解答:
設置決策變量:
1)投資某個項目達到收益最高,使用比值法(更直觀)
收益/投資花費
取值范圍
1)*非線性規劃中常用
限制xi=0或1(在編程中) xi(1-xi)=0
數學模型:
如果增設一個風險(不確定),此時需要:投資收益-風險-投資,但在此題中沒有風險,所以直接用收益/投資就行
非線性規劃的數學模型
matlab中非線性規劃的數學模型
s.t內前兩個是線性規劃函數,后兩個是非線性規劃函數
c(x)<=0 非線性規劃的不等式
ceq(x)=0非線性規劃的等式
lb上界 ub下界
matlab中的命令:
[x,fval]=fmincon()
普通的非線性規劃例子
matlab編寫過程
二次規劃
1)約束條件全部是線性函數ax+b
2)實對稱矩陣:矩陣元素沿著對角線是對稱的
如:
1 0 0
0 1 0
0 0 1
3)目標函數中有二次函數也有一次函數f^t x
4)標準形式中是1/2x^2,所以在帶值進入函數時
x^2的系數*2
5)x^T是轉置矩陣
matlab中求解二次規劃的命令:
x0:非線性函數的初值
二次規劃例子
系數變為原來的兩倍:
2x1^2–>4
-4x1x2–>-8
+4x2^2–>8
-8是x1x2,所以使用時是-4 -4
應用實例-供應與選址
解答:
建立模型:
1)噸千米數:噸千米數
2)兩個料場運輸到6個工地,共有26=12個決策變量
3)新建立兩個料場,現在每個料場的坐標不知道,就有12+4=16個未知數/決策變量,這只是多了4個變量,因此可以1,2問一起寫
4)題目中寫明了分別向工地運輸多少噸水泥,所以直接設置每個料場向工地的運輸量為xij
5)xij的和即料場向工地運輸的量要滿足每個工地的需求di
6)xij的和<=ej
x11+x21+x31+x41+x51+x61<=e1
x21+x22+x32+x42+x52+x62<=e2
從料場1向所有工地運輸的量小于其存儲量
從料場2向所有工地運輸的量小于其存儲量
第一問:
使用臨時料場的情況:
matlab代碼:
計算結果:
第二問:
改建兩個新料場的情況:
matlab代碼:
第一個程序:
第二個程序:
計算結果:
如果取初值為上面運算的結果: