问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

牛顿迭代法(Newton-Raphson method)及其代码实现

创作时间:
作者:
@小白创作中心

牛顿迭代法(Newton-Raphson method)及其代码实现

引用
1
来源
1.
https://www.bilibili.com/read/cv38757552/

牛顿迭代法(Newton-Raphson method)是一种用于寻找函数零点的数值分析方法。它通过函数图像上一点处的切线横截距来逼近零点,具有快速收敛的特点。本文将详细介绍牛顿迭代法的原理、应用及其代码实现。

引入(Introduction)

我们在数学必修1学过求一个方程式解的近似值的方法,先来回顾一下。
首先我们使用介值定理(Intermediate value theorem)确定解所在的大致区间,然后使用二分法逼近。这个方法与算法中的二分查找(Binary search)是一样的思路,但在对精度要求较高时所用的步数比较多,逼近的速度比较慢。
那么问题的关键就在于我们如何取值来缩小区间,从而逼近解。

牛顿迭代法(Newton-Raphson method)

牛顿迭代法是一种数值分析方法,用于寻找函数的零点。核心在于通过取函数图像上一点处的切线的横截距,再于此处进行同样的操作,不断迭代从而逼近零点,所以也叫牛顿切线法。

首先我们已经确定了函数
的零点所在的区间,并且保证此区间内其导函数
,也就是没有驻点。
接下来取区间中任意一点
作为初始猜测值(Initial guess),我们可以求出此处的切线方程式:
下一个值
就是切线的横截距,代入
可以得到
同样地,我们再去求
处的切线,得到下一个值。按照这样的规则不断进行迭代。
我们可以把迭代得到的值看成一个数列
,并且能够知道:

  1. ,为零点的精确值
    第一条就是这种方法的核心,称为牛顿迭代公式(Newton's Raphson iterative formula)。与其他方法相比,其逼近速度会更快,尤其是在近似的精度较高时尤为明显。

例题(Example)

Find the root of the function obtained after the first iteration on application of Newton-Raphson scheme using an initial guess of .

Given that has a root in , Find the root rounded to 2 decimal places using Newton-Raphson method.

代码实现(Code Implementation)

既然这个过程是迭代,那么就很容易通过编程来实现。实际上,许多能够求解方程式的计算器用的就是这个方法。
我们可以看到,麻烦的部分在于带入求出数值,那么我们完全可以把这一过程交给计算器,让进行这样过程。
下面是使用Python代码的实现效果,不同在于我们要自己先求出导函数。我们当然也可以直接使用第三方库来求解。

第一题:

Output:

第二题:

Output:

当然,此处我们也可以取
作为初始猜测值,只是所需要的步数不同而已。这里我们考虑到了异常的情况,也通过限制迭代次数来让我们能够看出我们最初的猜测是否合适。

总结(Summary)

虽说这是大学里数值分析的内容,实际上所用到的知识都是高中的,也经常出现在一些模考题中。
实际上,我们在解决物理问题时通常只需要得到方程式的一个近似的数值解,并且可以根据需要的精度容易地调整求解过程。而牛顿迭代法的核心就只有一个简单的公式,只涉及函数本身以及其导函数,并且能够通过较少的步数得到精度更高的值。这个算法最常用的就是快速求平方根了。

更多(More)

我们还可以通过把原方程式化为
的形式,得到迭代公式
。比如第二题我们可以得到
从而得到迭代公式
这种方法用到的是数列里的不动点,叫做不动点迭代法(Fixed point iteration method)
虽然这看起来更加简单,但是其逼近速度比较慢,也并非所有方程式都容易化成这种形式。
无论是那种方法,选取初始猜测值时要在数列
的收敛域内,也就是保证得到的值越来越逼近精确值,就比如使用不动点法时需要满足
才行。
上面的问题中
, 我们取
, 不满足条件,那就要换成
再次判断,满足了才能进行迭代,这样我们才确保了方向是正确的。
那么,大家可以试着解决下面的问题,利用计算器或编程比较一下切线迭代与其他方法的逼近速度。

Given that

  1. Show that the equation has a root near to .
  2. Find the root to 3 significant figures.
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号