牛頓法 與 Hessian矩陣

2021-08-28 02:04:17 字數 1837 閱讀 9958

牛頓法 主要有兩方面的應用:

求方程的根;

求解最優化方法;

一. 為什麼要用牛頓法求方程的根?

假設 f(x) = 0 為待求解方程,利用傳統方法求解,牛頓法求解方程的公式:

f

(x0+δx) = f

(x0) + f′(x0) δx

即 f(x) = f

(x0) + f′(x0)

(x-x0)

這個公式就是一階泰勒展式,f′(x0) 表示 f(x) 在 x0 點的斜率 ,當x方向增量(δx)比較小時,y方向增量(δy)可以近似表示為 斜率(導數)*x方向增量(f′(x0) δx) ,令 f(x) = 0,我們能夠得到 迭代公式:

x = x0 - f(x0) / f′(x0)    =>   xn+1 = xn - f(xn) / f′(xn)
通過逐次迭代,牛頓法 將逐步逼近最優值,也就是方程的解。

二. 最優化問題

針對上面問題進行擴充套件:

解決 f(x) = 0 的問題,我們用了一階泰勒展開:

f

(x) = f

(x0) + f'

(x0)*(x-x0) + o

( (x-x0)^2 )

去掉末位高階展開項,代入x = x0+δx,得到:

f

(x) = f

(x0+δx) = f

(x0) + f′(x0) δx

那麼 要解決 f′(x) = 0 的問題,我們就需要二階泰勒展開:

f

(x) = f

(x0) + f'

(x0)*(x-x0) + 0.5*f''

(x0)*(x-x0)^2 + o

( (x-x0)^3 )

去掉末位高階展開項,代入x = x0+δx,得到:

f

(x) = f

(x0+δx) = f

(x0) + f′(x0)δx + 0.5 * f′′(x0)

(δx)^2

求導計算:對δx求導,所以得到:

0 = f′(x0) +  f′′(x0) (δx)

==>

0 = f′(x0) + f′′(x0) (x−x0)

整理:

f′(x0) + f′′(x0)(x−x0) = 0

=>

x - x0 = − f′(x0) / f′′(x0)

=>

x = x0 − f′(x0) / f′′(x0)

=>

進一步得到:

xn+1 = xn - f'(xn) / f'

'(xn)

三. 牛頓法 與 hessian矩陣的關係

以上只針對單變數進行討論,如果對多變數就要引入雅克比矩陣和海森矩陣

簡單介紹一下二者,雅克比矩陣為函式對各自變數的一階導數,海森矩陣為函式對自變數的二次微分。形式分別如下:

Hessian矩陣與牛頓法

牛頓法主要有兩方面的應用 1.求方程的根 2.求解最優化方法 一.為什麼要用牛頓法求方程的根?問題很多,牛頓法 是什麼?目前還沒有講清楚,沒關係,先直觀理解為牛頓法是一種迭代求解方法 newton童鞋定義的方法 假設f x 0為待求解方程,利用傳統方法求解,牛頓法求解方程的公式 f x0 x f x...

牛頓法與擬牛頓法

看了幾篇關於牛頓法的相關介紹,感覺非常好,尤其是擬牛頓條件的推導以及dfp等演算法的推導過程十分詳細明了。這裡記錄一下,方便之後查閱 牛頓法 擬牛頓條件 dfp演算法 bfgs演算法 f bfgs演算法 1 牛頓法 newton s method 牛頓法是一種在實數域和複數域上近似求解方程的方法。方...

Hession矩陣與牛頓迭代法

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 因為這是利用...