牛顿法求函数零点和极值点 |
您所在的位置:网站首页 › 求切线方程求几阶导 › 牛顿法求函数零点和极值点 |
文章目录
牛顿法求解函数零点基本思想形象理解
牛顿法求解函数极值点一维情况高维情况
求极值点时与梯度下降法比较相同点不同点
Reference
牛顿法求解函数零点
基本思想
设有一个连续可导函数 y = f ( x ) y = f(x) y=f(x),为了求解方程 f ( x ) = 0 f(x)=0 f(x)=0,可采用这样的方法来近似求解,因为 f ( x ) f(x) f(x)在 x = x 0 x = x_0 x=x0处的泰勒展开式为: f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) ( x − x 0 ) 2 2 ! + . . . + f ( n ) ( x 0 ) ( x − x 0 ) n n ! + o ( ( x − x 0 ) n ) f(x) = f(x_0) +f^{\prime}(x_0)(x-x_0)+\frac{f^{\prime\prime}(x_0)(x-x_0)^2}{2!} +...+\frac{f^{(n)}(x_0)(x-x_0)^n}{n!}+o((x-x_0)^n) f(x)=f(x0)+f′(x0)(x−x0)+2!f′′(x0)(x−x0)2+...+n!f(n)(x0)(x−x0)n+o((x−x0)n) 考虑到一次方程容易解,而二次以及以上高次方程不一定有解,取泰勒展开式的线性部分来近似 f ( x ) f(x) f(x)有: f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) f(x)=f(x_0) +f^{\prime}(x_0)(x-x_0) f(x)=f(x0)+f′(x0)(x−x0) 若 f ′ ( x 0 ) f^{\prime}(x_0) f′(x0)不等于0,将 f ( x ) = 0 f(x)=0 f(x)=0代入上式可得: x 1 = x 0 − f ( x 0 ) f ′ ( x 0 ) x_1 = x_0 - \frac{f(x_0)}{f^{\prime}(x_0)} x1=x0−f′(x0)f(x0) 称 x 1 x_1 x1是方程 f ( x ) = 0 f(x)=0 f(x)=0的一次近似根,由此得到一个n次迭代式: x n + 1 = x n − f ( x n ) f ′ ( x n ) (1) x_{n+1}=x_n-\frac{f(x_n)}{f^{\prime}(x_n)} \tag{1} xn+1=xn−f′(xn)f(xn)(1) 利用 ( 1 ) (1) (1)求解时,先对方程 f ( x ) = 0 f(x)=0 f(x)=0的根猜一个初始的估计值 x 0 x_0 x0,可以证明如果 f ( x ) f(x) f(x)是连续的,并且待求的零点是孤立的,那么在零点周围存在一个区域,只要初始猜测值 x 0 x_0 x0位于这个邻近区域内,进行多次迭代后那么牛顿法必定收敛。 形象理解
对于 f ( x ) f(x) f(x)的泰勒展开式,若取到二次项来近似,则: f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) ( x − x 0 ) 2 2 ! f(x) = f(x_0) +f^{\prime}(x_0)(x-x_0)+\frac{f^{\prime\prime}(x_0)(x-x_0)^2}{2!} f(x)=f(x0)+f′(x0)(x−x0)+2!f′′(x0)(x−x0)2 两边对 x x x求导,有: f ′ ( x ) = f ′ ( x 0 ) + f ′ ′ ( x 0 ) ( x − x 0 ) f^{\prime}(x) = f^{\prime}(x_0) + f^{\prime\prime}(x_0)(x-x_0) f′(x)=f′(x0)+f′′(x0)(x−x0) 函数 f ( x ) f(x) f(x)的极值点满足 f ′ ( x ) = 0 f^{\prime}(x) = 0 f′(x)=0,代入上式中,有: x 1 = x 0 − f ′ ( x 0 ) f ′ ′ ( x 0 ) x_1=x_0 - \frac{ f^{\prime}(x_0)}{f^{\prime\prime}(x_0)} x1=x0−f′′(x0)f′(x0) 由此可以得到一个求解方程 f ′ ( x ) = 0 f^\prime(x)=0 f′(x)=0的迭代式: x n + 1 = x n − f ′ ( x n ) f ′ ′ ( x n ) (2) x_{n+1}=x_n - \frac{ f^{\prime}(x_n)}{f^{\prime\prime}(x_n)} \tag{2} xn+1=xn−f′′(xn)f′(xn)(2) 高维情况上述描述的是自变量 x x x是一维的情况,当 x x x是一个多维向量时,同样有: x n + 1 = x n − H − 1 ( x n ) ∇ f ( x n ) (3) x_{n+1} = x_{n} - H^{-1}(x_n)\nabla{f(x_n)} \tag{3} xn+1=xn−H−1(xn)∇f(xn)(3) 其中 ∇ f ( x n ) \nabla{f(x_n)} ∇f(xn)是 f ( x ) f(x) f(x)在 x n x_n xn处的梯度, H ( x n ) H(x_n) H(xn)是 f ( x ) f(x) f(x)在 x n x_n xn处的海森矩阵(高维函数的二阶导)。 当然,为了在迭代的时候使选取的 x n x_n xn落在导数为0的点附近,记 d = H − 1 ( x n ) ∇ f ( x n ) d=H^{-1}(x_n)\nabla{f(x_n)} d=H−1(xn)∇f(xn) 给 d d d加一个类似于学习率的系数 γ \gamma γ有: x n + 1 = x n − γ d (4) x_{n+1} = x_n-\gamma d \tag{4} xn+1=xn−γd(4) 每次迭代时需要选择合适的 γ \gamma γ。 求极值点时与梯度下降法比较 相同点和梯度下降法一样,牛顿法寻找的也是导数为0的点,这不一定是极值点,因此会面临局部极小值和鞍点问题。 不同点与梯度下降法相比,牛顿法求解函数极值点时需要求解海森矩阵的逆矩阵,当 x x x的维度较高时,这个计算过程会很费时,不如梯度下降法快。 Reference牛顿法 理解牛顿法 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |