非線性規劃:如果目標函數或約束條件中包含非線性函數,就稱這種規劃問題為非線性規劃問題。
一般說來,解非線性規劃不像線性規劃有單純形法這一通用方法,非線性規劃目前還沒有適於各種問題的一般算法,各個方法都有自己特定的適用範圍。下面針對不同問題提出相應算法。
1.無約束一維函數--->fminbnd:黃金分割法、牛頓法、拋物線法等!
2.無約束多維函數--->fminimax(fminsearch、fminunc):模式搜索法、信賴域法等
3.約束優化--->fmincon:罰函數法、可行方向法等"
4.非線性最小二乘優化--->lsqnonlin:目標函數是平方和的形式,基於牛頓法
例:! L" a8 R; y1 f& j
matlab運行:
; D
5.二次規劃1)拉格朗日法:引入拉格朗日因子,將約束條件轉化到拉格朗日函數中,求解函數得到最優解。(求解等式約束的凸二次規劃,新手必備!!!!!)
2)起作用集算法:在每步迭代中將起作用約束作為等式約束,然後用拉格朗日法求解,直到求出最優解。(求解含不等式約束的二次規劃)
3)路徑跟蹤法:引入中心路徑概念,將求最優解轉換為求中心路徑問題
matlab函數應用--->quadprog:求解如下二次規劃問題
1.拉格朗日法2.起作用集算法3.路徑跟蹤法
三種方法求解的代碼在附件裡,拉格朗日可以說新手必須得接觸和學會的,不必要會拉格朗日原理,只需要懂它解決什麼問題,優缺點就好。