首先看泰勒公式,對於函式,如果函式平滑且某點存在各階導數,則可以用乙個多項式來描述該點鄰域的近似值。公式如下:
牛頓法一般用來求解方程的根和求解極值。
數值優化演算法除了梯度下降法外還有比較常用的一種方法是牛頓法。對於非線性方程,可以用牛頓迭代法進行求解,它收斂速度快。
基本思想是:對於非線性函式f(x),根據泰勒公式得到x附近某個點$x_$展開的多項式可用來近似函式f(x)的值,該多項式對應的函式為f(x),求得f(x)的極小值作為新的迭代點,然後繼續在新的迭代點泰勒公式展開,直到求得的極小值滿足一定的精度。
假設函式f(x)二次可微,則二次泰勒展開,
g(x)多項式則為f(x)的近似,求函式f(x)極值則可以轉化為求導函式為0,對g(x)求導並令其為0,
得到,
即得到迭代公式,
新的點$x_$不斷逼近極值,直到一次導數小於某誤差。
def h(x):
return x*x*x + 2*x*x +3*x + 4
def h1(x):
return 3*x*x + 4*x + 3
def h2(x):
return 6*x + 4
xk = 0
k = 1
y = 0
e = 0.0001
times = 10000
while k < times:
y = h(xk)
a = h1(xk)
if abs(a) <= e:
break
b = h2(xk)
xk -= a/b
k += +1
print("k = ", k)
print("x = ", xk)
print("y = ", y)複製**
以下是廣告
*****===廣告時間*****===
鄙人的新書《tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 item.jd.com/12185360.ht… 進行預定。感謝各位朋友。
為什麼寫《tomcat核心設計剖析》
這裡寫描述
這裡寫描述
機器學習筆記 牛頓法與擬牛頓法
提要 今天講的牛頓法與擬牛頓法是求解無約束問題最優化方法的常用方法。一 牛頓法 假設我們求下面函式的最小值 假設f x 具有連續的二階的連續偏導數,假設第k次迭代值為xk的值,那麼可將f x 在xk附近進行二階泰勒展開得到 我們對上述公式求導可得 假設其中 可逆,我們就可以得到牛頓法的迭代公式為 這...
機器學習筆記 牛頓法
吳恩達在機器學習中講到了牛頓法,再次做乙個通俗的解釋 1 求解方程。並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。原理是利用泰勒公式,在x0處展開,且展開到一階,即f x f x0 x x0 f x0 求解方程f x 0,即f x0 x x0 f x0 0...
機器學習數學基礎 牛頓法
關於牛頓法這裡講的很好,下面只是自己對牛頓法的乙個學習記錄。概述 牛頓法是一種優化演算法,利用迭代點處的一階導數 梯度 和二階導數 hessen矩陣 對目標函式進行二次函式近似,然後把二次模型的極小點作為新的迭代點,並不斷重複這一過程,直至求得滿足精度的近似極小值。牛頓法的速度相當快,而且能高度逼近...