牛顿方法

牛顿法可以解决什么问题

对于复杂函数 f(x) ,求解 f(x) = 0 非常困难,牛顿法利用逼近的思想可以求得 f(x) = 0 的近似解.

在凸优化方面,求解函数的极值,我们知道函数的极值点导数为0,但是对于复杂函数其导数通常也比较复杂,求 f'(x) = 0 也比较困难,于是我们利用牛顿法求出 f'(x) = 0 的近似解,也就得到了 f(x) 的近似极值点.

牛顿法求解方程的根

对于直接求解 f(x) = 0 困难的时候,牛顿法提供了近似比较的解法:

image

从图中得知:

x = x_0 - \Delta

根据导数的定义:

f'(x) = \frac{f(x)}{\Delta}

所以有:

x = x_0 - \frac{f(x)}{f'(x)}

使用:

x_{n+1} = x_n - \frac{f(x_n )}{f'(x_n )}

一直迭代下去,最终会得到 f(x) = 0 的近似解:

image

使用牛顿法进行凸优化

如果要求函数 h(x) 的极值点,即求

f'(x) = 0

的解,根据牛顿法有:

x = x_0 - \frac{f'(x)}{f''(x)}

另外牛顿法还可以使用二阶泰勒展开来解释:

f(x)=f(x_0)+(x-x_0)f'(x_0)+\frac12(x-x_0)^2f''(x_0)

这里的 f(x_0) x_0 相当于常量,于是这个函数可以理解为以 x 为变量的抛物线,它的极值点为:

x_n - \frac{f'(x_n)}{f''(x_n)}

参考:
https://juejin.im/post/5b32e6ee6fb9a00e4e47c1c7

posted @ 2018-07-16 20:11:23
评论加载中...
发表评论