記泰勒公式
捨去高階項
在導數爲0時候取得極值,令,以上式子可以變形爲
繼續整理可以得到
通過觀察上式,我們可以發現,當給出一個初始點a的時候,我們可以通過泰勒公式用a點的一階導數與二階導數還有a的值近似的表達出使的點x。但是我們的這個近似是通過捨去泰勒公式中的高階項實現的,因此我們要保證高階項的捨棄對x的求值影響較小,也就是說初始點a的取值不能離x點太遠,否則會出現較大的誤差,從而導致最終的求值無法收斂。對於以上算法還可以擴展到多變量函數中,推導過程如下:
求導後得到等式
是正定矩陣,因此可逆,進而求得
通過觀察算法的推到過程我們能看出來,實際上牛頓法就是使用一條與初始點a相關的曲線去近似的代替原來的曲線,然後求取新曲線的一階導數爲零的點,因爲新曲線是對舊曲線的一個近似,因此新曲線的0一階導數點就可以近似的認爲是原曲線的0一階導數點,因此就得到了原曲線的極值。但是如上面一段所講的那樣,這條曲線的近似依賴於a點的選取,當a點選的不恰當時候,捨去的高階項的影響就無法被忽略,因此新曲線將會與原曲線有較大的差異,這樣求出的新曲線的0一階導數點也就跟原曲線的一階導數點不再相近,這樣用此牛頓法就無法求出原曲線上的極值點了。
最後總結一句話,牛頓法雖然收斂速度快,但是對a點的選取有比較苛刻的要求,因此要使用牛頓法,必須對問題做一些預處理,比如先用最速下降法求出一個與極值點相近的點,然後再從這個相近的點開始用牛頓法最終求出極值點。