概述
實際中很多應用不是尋找最優解,而是尋找一個根滿足給定的約束條件,如果有n個非線性等式約束,就是本節介紹的非線性方程問題,本節主要介紹
1. 非線性方程的問題形式
2. 非線性方程的求解算法
3. 總結
非線性方程的問題形式
問題形式,尋找滿足n個非線性等式的根,即
其中
該問題可以轉換爲求解
1.該最小化問題等價於最小二乘問題,可以採用非線性最小二乘的求解算法,不同點在於有n個非線性等式。
2. 根據最優性條件,如果雅克比矩陣J(x)是非奇異的,則最優解就是該非線性方程的根;否則最優解可能不會滿足r(x)=0
3. 如果對於病態的J(x),即如果秩爲n-1或者n-2則最優化算法得到的解會比較差。
4. 最優化問題往往最優解只能得到一個,對於非線性方程可能存在唯一解、有限解、無窮解或者無解。
非線性方程的求解算法
該問題求解算法,主要思路是轉換爲最優化問題,利用類牛頓方法進行求解。
牛頓方法
類似於最優化問題的牛頓方法,尋找牛頓方向,然後不斷迭代。算法如下:
算法流程
1. 每次尋找滿足牛頓方程的方向進行迭代。
2. 牛頓方程來源,對r(x)進行泰勒展開,有相當於定義一個線性模型近似該目標,即r(x+p)=r(x)+J(x)p M(p)=r(x)+J(x)p
3. 牛頓方程來源二,看做是最優問題對應的牛頓方程爲minf(x)=12||r(x)||2 ,對應於該問題爲∇2f(x)p=−∇f(x) ,其中r(x)的二階梯度一般可以省略(參加最小二乘問題),即(J(x)TJ(x)p+m(x)p+J(x)Tr(x))=0 ,如果J(x)非奇異有J(x)T(J(x)p+r(x))=0 J(x)p+r(x)=0
4. 對比牛頓方程和線性最小二乘問題,可以看出該方程時如下最小二乘問題的優化目標,即minf(x)=12||rk+Jkp||2 ,因此可以利用最小二乘相關算法進行求解該等式
5. 該算法的收斂速度爲超線性收斂。
該算法的侷限性
- 當初始點選取不當,離根較遠時,算法表現不好。當J奇異時,不一定能找到解。
- 雅克比矩陣不一定容易求解
- 當n比較大時,牛頓方程不好求解。
- 當J是奇異矩陣是,結果不可預知。
改進算法
非精確牛頓方法
不同於牛頓方法,之間尋找滿足Jp=-r的牛頓方向,該方法尋找滿足如下條件的方向
算法如下
- 算法的收斂速度依賴與參數
η 的選取- 如果
η 充分小則爲線性收斂;如果η→0 則爲超線性收斂;如果ηk=o(||rk||) 二次收斂。
Broyden方法
這是一類擬牛頓方法,思路如下
1. 迭代過程中,近似模型爲
2. 根據擬牛頓方程,定義如下
3. Broyden方法提供了一種比較實用的更新方法,即
4. 該方法收斂速度爲超線性收斂
算法步驟爲
Tensor方法
張量方法,相當於在線性近似模型的基礎上,添加了表示非線性參數。即
實際算法
在實際應用中,在牛頓算法的基礎上,使用線搜索和信賴域進行算法優化。
1.目標函數(Merit Func)不僅僅可以選取平方形式,也可以選取L1正則,即
minf(x)=|r(x)|
2. 線搜索,更新步驟爲xk+1=xk+αpk
3. 信賴域,優化目標爲minf(x)=12||rk+Jkp||2;p≤Δk
4. 在實際中爲解決雅克比矩陣奇異或者病態的問題,搜索方向選取爲pk=−(JTkJ+λkI)−1JTkrk ,相當於目標函數添加了L2正則項
連續方法(Continuation Methods)
該方法的思路,如果原始問題求解比較複雜,將其轉換爲一系列簡單的問題,其中一類簡單的轉換思路爲,Homotopy Map:
當
總結
通過該節的學習,可以瞭解到
1. 非線性方程如何轉換爲最優化問題
2. 牛頓方法以及變種求解非線性方程