牛顿法(Newton)的应用

1、求解方程

并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在 x 0 x_0 x0 处展开,且展开到一阶,即:
f ( x ) = f ( x 0 ) + ( x − x 0 ) f ′ ( x 0 ) f(x) = f(x_0) + (x - x_0)f'(x_0) f(x)=f(x0)+(xx0)f(x0)
求解方程 f ( x ) = 0 f(x) = 0 f(x)=0,即:
f ( x 0 ) + ( x − x 0 ) f ′ ( x 0 ) = 0 x = − f ( x 0 ) f ′ ( x 0 ) + x 0 f(x_0)+ (x - x_0)f'(x_0) = 0\\ x = -\frac {f(x_0)}{f'(x_0)} + x_0 f(x0)+(xx0)f(x0)=0x=f(x0)f(x0)+x0
因为这是利用泰勒公式的一阶展开进行求解的,所以通过上述方程求解出的 x x x 只是使 f ( x ) f(x) f(x) 的值比 f ( x 0 ) f(x_0) f(x0) 更加接近于0,而并不是完全等于0。如下图所示:
在这里插入图片描述
于是乎,迭代求解的想法就很自然了,可以进而推出:
x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1} = x_n - \frac {f(x_n)}{f'(x_n)} xn+1=xnf(xn)f(xn)
通过对上式进行迭代,最终必然会在 f ( x ∗ ) = 0 f(x^*) = 0 f(x)=0 的时候收敛,这就是用牛顿法进行方程求解的过程。

2、用于最优化问题

求解方程的问题就是求解 f ( x ) = 0 f(x) = 0 f(x)=0,而最优化问题就是求解 f ( x ) f(x) f(x) 的极值,也即 f ′ ( x ) = 0 f'(x) = 0 f(x)=0,为了求解 f ′ ( x ) = 0 f'(x) = 0 f(x)=0,我们需要把 f ( x ) f(x) f(x) 泰勒展开到 2 阶形式:
f ( x ) = f ( x 0 + Δ x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + 1 2 f ′ ′ ( x 0 ) ( x − x 0 ) 2 \begin{aligned} f(x) &= f(x_0+\Delta x)\\ &= f(x_0) + f'(x_0)(x - x_0) + \frac 12 f''(x_0)(x - x_0)^2 \end{aligned} f(x)=f(x0+Δx)=f(x0)+f(x0)(xx0)+21f(x0)(xx0)2
对上式进行两边求导之后可以得到:
f ′ ( x ) = f ′ ( x 0 ) + ( x − x 0 ) f ′ ′ ( x 0 ) = 0 Δ x = ( x − x 0 ) = − f ′ ( x 0 ) f ′ ′ ( x 0 ) f'(x) = f'(x_0)+(x - x_0)f''(x_0) = 0\\ \Delta x = (x - x_0) = -\frac {f'(x_0)}{f''(x_0)} f(x)=f(x0)+(xx0)f(x0)=0Δx=(xx0)=f(x0)f(x0)
从而可以得到迭代公式:
x n + 1 = x n + Δ x = x n − f ′ ( x n ) f ′ ′ ( x n ) , n = 0 , 1 , . . . x_{n+1} = x_n + \Delta x = x_n - \frac {f'(x_n)}{f''(x_n)}, \quad n = 0,1,... xn+1=xn+Δx=xnf(xn)f(xn),n=0,1,...

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值