Hession矩陣與牛頓迭代法

2021-09-22 19:27:07 字數 1212 閱讀 7886

1、求解方程。

並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。

原理是利用泰勒公式,在x0處展開,且展開到一階,即f(x) = f(x0)+(x-x0)f'(x0)

求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=x0-f(x0)/f'(x0),因為這是利用泰勒公式的一階展開,f(x) = f(x0)+(x-x0)f'(x0)處並不是完全相等,而是近似相等,這裡求得的x1並不能讓f(x)=0,只能說f(x1)的值比f(x0)更接近f(x)=0,於是乎,迭代求解的想法就很自然了,可以進而推出x(n+1)=x(n)-f(x(n))/f'(x(n)),通過迭代,這個式子必然在f(x*)=0的時候收斂。整個過程如下圖:

2、牛頓法用於最優化

在最優化的問題中,線性最優化至少可以使用單純行法求解,但對於非線性優化問題,牛頓法提供了一種求解的辦法。假設任務是優化乙個目標函式f,求函 數f的極大極小問題,可以轉化為求解函式f的導數f'=0的問題,這樣求可以把優化問題看成方程求解問題(f'=0)。剩下的問題就和第一部分提到的牛頓 法求解很相似了。

這次為了求解f'=0的根,把f(x)的泰勒展開,展開到2階形式:

這個式子是成立的,當且僅當 δx 無線趨近於0。此時上式等價與:

求解:得出迭代公式:

一般認為牛頓法可以利用到曲線本身的資訊,比梯度下降法更容易收斂(迭代更少次數),如下圖是乙個最小化乙個目標方程的例子,紅色曲線是利用牛頓法迭代求解,綠色曲線是利用梯度下降法求解。

在上面討論的是2維情況,高維情況的牛頓迭代公式是:

其中h是hessian矩陣,定義為:

高維情況依然可以用牛頓迭代求解,但是問題是hessian矩陣引入的複雜性,使得牛頓迭代求解的難度大大增加,但是已經有了解決這個問題的辦法就 是quasi-newton methond,不再直接計算hessian矩陣,而是每一步的時候使用梯度向量更新hessian矩陣的近似。quasi-newton method的詳細情況我還沒完全理解,且聽下回分解吧。。。

牛頓迭代法

創新工廠的筆試題 不用庫函式sqrt 求乙個整型數n的開方,要求精度達到0.001即可。在這裡首先介紹一下牛頓迭代法 假設乙個方程為 f x 0 那麼假設其解為x0,則用泰勒級數展開之後可得 f x f x0 f x0 x x0 0 其中x為其近似解。根據上式推導出 x x0 f x0 f x0 這...

牛頓迭代法

目前接觸到的牛頓迭代法主要應用於兩個方面 1 方程求根問題 2 最優化問題。1 求解方程。並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。原理是利用泰勒公式,在x0處展開,且展開到一階,即f x f x0 x x0 f x0 求解方程f x 0,即f x0 ...

牛頓迭代法

欲求某方程 f x 0 的根,按照以下步驟進行求解 令x0 1 也可以選擇其他值 i 0,1,2 1 求出 f xi 和 導數f xi 2 令 x i 1 xi f xi f xi 3 將 x i 1 帶入方程 f x 計算方程值,當方程值與目標值的誤差小於預定值時,退出演算法輸出 x i 1 即為...