跳转到内容

A 级数学/MEI/NM/方程求解

来自维基教科书,开放世界中的开放书籍

本节中的方法用于数值求解无法解析求解或解析求解过于困难的f(x) = 0 形式的方程。

符号变化法

[编辑 | 编辑源代码]

如果我们有一个连续函数f(x),以及两个xab,那么只要f(a)和f(b)符号相反,我们就知道区间[a, b]包含方程f(x) = 0 的一个根(在ab之间一定存在一个f(x) = 0 的值)。

在图形上,如果曲线 y = f(x) 在一个点处位于x轴上方,而在另一个点处位于x轴下方,那么它一定在两者之间某个地方与x轴相交。因此,f(x) = 0 的一个根位于这两个点之间。

符号变化法使用这些信息逐步缩小包含符号变化的区间,以便找到一个根。

请注意

  • 该函数在区间内必须是连续的,上述情况才能成立
  • 区间内可能存在多个根。例如,f(x)=x3-x,求解f(x)=0。区间 [-2, 2] 存在符号变化,并包含三个根:x=-1,x=0,x=1
  • 重复根不会导致符号变化。例如,求解f(x)=0,其中f(x)=(x -1)2f(x) 在任何区间的端点处都会评估为正,但x=1 处有一个重复根。

二分法

[编辑 | 编辑源代码]

二分法是一种符号变化法。它需要一个包含符号变化的初始区间。在每一步(称为**迭代**)中,二分法涉及以下操作

  1. 将已知包含根的区间二等分(分成两等份),从而得到两个新的区间。
  2. 评估两个新区间的端点处的函数值。
  3. 符号变化表明(如果函数是连续的)该区间内存在一个根。因此,推断出一个根位于函数评估在两个端点之间发生符号变化的区间内。
  4. 将包含一个根的区间作为您在下一次迭代中的新起始区间。

给定一个区间 [a, b],设x为根的新估计值。

然后在abx处评估函数,并选择包含符号变化的区间 - [a, x] 或 [x, b] - 作为新区间。

[图,示例]

  • 二分法总是收敛 - 它总能找到给定起始区间内的根。
  • 它对结果必须位于其中的边界有一个明确的说明。如果您知道获得的答案的准确度,那么数值工作将更有价值。
  • 它具有固定的收敛速度 - 区间在每次迭代中都缩小一半。在某些情况下,其他方法的收敛速度可能会更慢。
  • 它需要一个包含符号变化的起始区间。因此,它无法找到重复根。
  • 它具有固定的收敛速度,这可能比其他方法慢得多,需要更多迭代才能找到给定精度级别的根。

试位法

[编辑 | 编辑源代码]

试位法在二分法的基础上扩展,它使用关于端点处函数值的信息来更明智地估计根。如果f(x) 在一个端点处的值比另一个端点处的值更接近于零,那么您会期望根更靠近该端点。在许多情况下,这将导致比二分法更快的收敛到根,二分法总是估计根位于区间的正中间。

该过程与二分法几乎完全相同。但是,给定一个区间 [a,b],根的新估计值x是:

这可以看作是ab的加权平均值,权重是f(x) 在另一个端点处的值。这是因为我们希望f(x) 较小的端点具有更大的权重,以便估计值更靠近它。因此,我们使用f(x) 的较大值作为产生较小f(x) 的端点的权重。

试位法等同于在曲线上的x=ax=b处构建一条直线,并使用该直线与x轴的交点作为新的估计值。

[图,示例,优点,缺点]

(w:试位法)

其他方法

[编辑 | 编辑源代码]

迭代方法符号

[编辑 | 编辑源代码]

xr 表示xr次迭代后的值。例如,根的初始估计值为x0,对该值执行一次迭代方法获得的估计值为x1

我们以xr+1(根的下一个估计值)关于xr(根的当前估计值)的形式写下迭代方法。例如,不动点迭代法是

如果新的估计值是从前两个估计值计算出来的,例如在割线法中,根的新估计值将是xr+2,以xr+1xr的形式写出。

割线法

[编辑 | 编辑源代码]

这在某些方面类似于试位法。它使用曲线上的前两点的坐标,用直线近似曲线。与试位法一样,它使用这条直线与轴的交点作为根的新估计值。

[图,示例,优点,缺点]

牛顿-拉夫森法

[编辑 | 编辑源代码]

牛顿-拉夫森法是基于在每次迭代中,通过用其切线逼近 *f* 并找到该切线与 *x* 轴的交点来获得根的新估计值。

[图,示例,优点,缺点]

不动点迭代

[编辑 | 编辑源代码]

在这个方法中,方程 被重新排列成 *x* = g(*x*) 的形式。然后,我们取 *x* 的初始估计值作为起始值,并使用 g(*x*) 计算新的估计值。

如果这种方法收敛,那么只要 g 是连续的,它将收敛到 g 的一个 **不动点**(其中输入与输出相同,给出 *x* = *g*(*x*))。这个 *x* 的值也将满足 *f*(*x*) = 0,从而得到方程的根。

不动点迭代并不总是收敛。 *f*(*x*) = 0 可以重新排列成 *x* = *g*(*x*) 的形式有无穷多种。有些重新排列只有在给定一个非常接近根的起始值时才会收敛,而有些根本不会收敛。在所有情况下,都是 *g* 的梯度影响是否收敛。如果当靠近根时,则收敛将发生(给定一个合适的起始值)

其中 *g*' 是 *g* 的梯度。当 *g*'(*x*) 接近 0 时,收敛速度最快。

[阶梯图 + 蛛网图,示例,优点,缺点]

华夏公益教科书