牛頓法和牛頓迭代法

2022-03-17 15:56:00 字數 1425 閱讀 5568

牛頓法,大致的思想是用泰勒公式的前幾項來代替原來的函式,然後對函式進行求解和優化。牛頓法和應用於最優化的牛頓法稍微有些差別。

牛頓法用來迭代的求解乙個方程的解,原理如下:

對於乙個函式f(x),它的泰勒級數展開式是這樣的

\[f(x) = f(x_0) + f'(x_0)(x-x_0) + \frac f''(x_0)(x-x_0)^2 + ...+\fracf^(x_0)(x-x_0)^n

\]當使用牛頓法來求乙個方程解的時候,它使用泰勒級數前兩項來代替這個函式,即用\(\phi(x)代替f(x)\),其中:

\[\phi(x) = f(x_0) + f'(x_0)(x-x_0)

\]令\(\phi(x) = 0\),則 \(x = x_0 - \frac\)。

所以,牛頓法的迭代公式是\(x_ = x_n - \frac\)

求解n的平方根,其實是求方程\(x^2 -n = 0\)的解

利用上面的公式可以得到:\(x_ = x_i - \frac = (x_i + \frac ) /2\)

程式設計的時候核心的**是:x = (x + n/x)/2

應用於最優化的牛頓法是以迭代的方式來求解乙個函式的最優解,常用的優化方法還有梯度下降法。

取泰勒展開式的二次項,即用\(\phi(x)\)來代替\(f(x)\):

\[\phi(x) = f(x_0) + f'(x_0)(x-x_0) + \frac f''(x_0)(x-x_0)^2

\]最優點的選擇是\(\phi'(x)=0\)的點,對上式求導

\[\phi'(x) =f'(x_0) + f''(x_0)(x-x_0)

\]令\(\phi'(x) = 0\),則\(x = x_0 - \frac\)

所以,最優化的牛頓迭代公式是

\[x_ = x_n - \frac

\]在高維下

\[\phi(x) = f(x_0) + \nabla f(x_0)^t (x-x_0) + \frac (x-x_0)^t \nabla^2 f(x_0)(x-x_0)

\]求\(\nabla \phi(x)\),並令它等於0,則公式變為了

\[\nabla f(x_0) + \nabla^2 f(x_0)(x-x_0) =0\]即

\[x = x_0 - ^ \nabla f(x_0)

\]所以,迭代公式變為

\[x_ = x_ - ^ \nabla f(x_n)

\]其中:

\(x_ ,x_n\)都是n*1維的向量。

\(\nabla^2 f(x_n)\)是hessien矩陣,\(^\)是hessien矩陣的逆矩陣,它們都是是n*n維的。

\(\nabla f(x_n)\)是 \(f(x)\)的導數,是n*1維的。

和梯度下降法相比,在使用牛頓迭代法進行優化的時候,需要求hessien矩陣的逆矩陣,這個開銷是很大的。

牛頓迭代法

創新工廠的筆試題 不用庫函式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 即為...