牛顿法至少有两个应用方向,1、求方程的根,2、最优化
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)处并不是完全相等,而是近似相等,这里求得的x并不能让f(x)=0,只能说f(x)的值比f(x0)更接近f(x)=0,于是乎,迭代求解的想法就很自然了,可以进而推出x(n+1)=x(n)-f(x(n))/f’(x(n)),通过迭代,这个式子必然在f(x)=0的时候收敛。整个过程如下图:
2:牛顿法求极值
对函数f(x)进行二阶泰勒展开
这里把前三项看作关于Δx的二次函数g(Δx),对该函数求导获得函数的极值点有\Delta_x 的二次函数g(\Delta_x ),对该函数求导获得函数的极值点有Δx的二次函数g(Δx),对该函数求导获得函数的极值点有
f′′(x0)Δx+f′(x0)=0f''(x_0)\Delta_x+f'(x_0)=0f′′(x0)Δx+f′(x0)=0
f′′(x0)(x−x0)+f′(x0)=0f''(x_0)(x-x_0)+f'(x_0)=0f′′(x0)(x−x0)+f′(x0)=0
x−x0=−f′(x0)f′′(x0)x-x_0=-\frac{f'(x_0)}{f''(x_0)}x−x0=−f′′(x0)f′(x0)
x=x0−f′(x0)f′′(x0)x=x_0-\frac{f'(x_0)}{f''(x_0)}x=x0−f′′(x0)f′(x0)
当x0x_0x0是多变量时,定义一阶导数雅可比矩阵为Jf(Xn)J_f(X_n)Jf(Xn)
二阶导数为Hessian矩阵
牛顿法 演变为: