欢迎来到数值方法 (P2.9)!

你好!“数值方法”听起来可能有些吓人,但它们实际上非常实用。本章的内容主要是为了寻找那些用标准代数或微积分方法很难(甚至无法)精确求解的问题的近似解。

你可以把数值方法想象成数学上的“捷径”或强大的估算工具。在现实应用中,我们随处可见它们的身影,从复杂结构的工程设计到气候变化的预测,都离不开它。

如果一开始觉得有点绕,请不要担心;我们会带你一步步拆解每一个技巧!


1. 方程求根

寻找包含根的区间(符号变号法)

当你被要求解方程 \(f(x) = 0\) 时,直接求出精确根往往很难。数值方法的第一步通常是找出一个能确保根存在的较小区间。

变号原理

如果函数 \(f(x)\) 在区间 \([a, b]\) 上是连续的,且 \(f(a)\) 和 \(f(b)\) 的符号相反(一个为正,一个为负),那么在 \(x=a\) 和 \(x=b\) 之间一定至少存在一个根。

类比:想象一下过河。如果你从正侧岸边(\(y=0\) 上方)出发,到达负侧岸边(\(y=0\) 下方),那你必然至少穿过一次水面(x轴,即 \(f(x)=0\) 的位置)。

操作步骤
  1. 定义函数 \(f(x) = 0\)。
  2. 选取两个值 \(a\) 和 \(b\),通常题目会给出,或者通过观察图像选取。
  3. 计算 \(f(a)\) 和 \(f(b)\)。
  4. 如果 \(f(a)\) 和 \(f(b)\) 符号相反(发生了符号变化),则说明区间 \((a, b)\) 内存在一个根。

关键点:该方法仅在 \(f(x)\) 在该区间上连续时有效。如果函数存在断点或渐近线(例如 \(x=0\) 附近的 \(\frac{1}{x}\)),即便发生了符号变化也不一定存在根。不过,在本课程中,除非另有说明,否则通常假设函数是连续的。

重点总结(符号变号法):
如果 \(f(x)\) 在 \(a\) 和 \(b\) 之间改变了符号,那么在该区间内必然存在一个根(前提是函数连续)。这种技巧可以帮助我们“聚焦”到解的位置。

2. 简单迭代法

使用递推关系:\(x_{n+1} = g(x_n)\)

一旦我们大致确定了根的位置,就可以使用迭代法来寻找更精确的近似值。“迭代”意味着不断地重复同一个过程。

迭代过程

为了求解 \(f(x) = 0\),我们首先将方程重写为以下形式: $$\mathbf{x = g(x)}$$

然后将其转化为一个递推关系: $$\mathbf{x_{n+1} = g(x_n)}$$

从一个初始猜测值 \(x_0\) 开始,将 \(x_0\) 代入右侧得到下一个近似值 \(x_1\)。重复此过程,利用上一个结果生成下一个值,直到结果不再变化(即达到收敛)。

例子:求解 \(x^3 - x - 7 = 0\) 的根。
我们可以将其重写为 \(x^3 = x + 7\)。
令 \(x\) 为主体:\(x = \sqrt[3]{x+7}\)。
递推关系为:\(x_{n+1} = \sqrt[3]{x_n + 7}\)

收敛性:序列能找到根吗?

并非所有 \(f(x)=0\) 的重写形式都能成功迭代!序列是收敛(向根靠近)还是发散(远离根),取决于根附近 \(g(x)\) 的导数。

收敛的条件是 \(y=g(x)\) 在根附近的导数绝对值必须小于 1: $$\mathbf{|g'(x)| < 1}$$

可视化迭代:阶梯图与蛛网图

我们可以通过绘制 \(y = g(x)\) 和 \(y = x\) 两条曲线来展示迭代 \(x_{n+1} = g(x_n)\) 的过程。这两条曲线的交点即为 \(x = g(x)\) 的解。

如何绘制图表(适用于任何迭代)
  1. 在 \(x\)-轴上从 \(x_0\) 开始。
  2. 垂直移动到曲线 \(y = g(x)\) 上。该点的高度即为 \(y = g(x_0) = x_1\)。
  3. 从该点水平移动到直线 \(y = x\) 上。这样就在 \(x\)-轴上找到了 \(x_1\)(因为在直线上 \(y=x\))。
  4. 再次垂直移动回曲线 \(y = g(x)\),找到 \(x_2\)。
  5. 重复此过程。
收敛的类型

路径的形状取决于根附近导数 \(g'(x)\) 的取值:

1. 阶梯图(单调收敛):

  • 发生在 \(0 < g'(x) < 1\) 时。
  • \(x_n\) 的值平稳地向根靠近,不会越过根。看起来就像是通往交点的阶梯。

2. 蛛网图(震荡收敛):

  • 发生在 \(-1 < g'(x) < 0\) 时。
  • \(x_n\) 的值每次都会越过根,但震荡幅度会越来越小,像蛛网一样盘旋收敛到根上。

你知道吗? 如果 \(|g'(x)| > 1\),序列就会发散——即步骤/震荡幅度会越来越大并远离根。如果题目要求你评论收敛性,这就是你需要考虑的因素!

快速回顾:迭代法
1. 将 \(f(x)=0\) 重写为 \(x=g(x)\)。
2. 使用 \(x_{n+1}=g(x_n)\) 进行迭代。
3. 如果在根附近满足 \(|g'(x)| < 1\),则保证收敛。

3. 数值积分:估算面积

数值积分用于估算定积分 \(\int_a^b f(x) \, dx\) 的值,它代表曲线在 \(x=a\) 到 \(x=b\) 之间的面积。

A. 中矩形法 (Mid-Ordinate Rule)

中矩形法使用一系列矩形来估算曲线下的面积。与梯形法(使用小条的两端)不同,每个矩形条的高度是在该条宽度的中点处计算的。

中矩形法操作步骤

假设我们要用 \(n\) 个小条来估算 \(\int_a^b f(x) \, dx\)。

  1. 计算条宽 (\(h\)): $$h = \frac{b - a}{n}$$
  2. 寻找中点:

    为每个小条找到其横坐标的中点。如果小条从 \(x_0\) 延伸到 \(x_n\),中点记为 \(m_1, m_2, \dots, m_n\)。
    例如:如果第一个小条是从 \(x=2\) 到 \(x=4\),则中点 \(m_1\) 是 \(3\)。

  3. 应用公式:

    面积是所有矩形面积之和:宽度 \(\times\) 高度。
    $$Area \approx h \times [f(m_1) + f(m_2) + \dots + f(m_n)]$$

几何意义:该方法使用矩形进行估算。估算值是偏大还是偏小取决于曲线在该区间内的弯曲程度(凹凸性),但由于中点两侧的误差往往会相互抵消,它通常比简单的梯形法提供更好的估算结果。

B. 辛普森法则 (Simpson's Rule)

辛普森法则通常是本课程要求的精度最高的数值积分方法。它不使用直线或矩形,而是使用抛物线(二次函数)段来拟合每一对小条范围内的曲线。

辛普森法则对纵坐标(高度 \(y\))使用以下权重:

辛普森法则的必要条件

辛普森法则必须偶数个小条 (\(n\)) 上应用。这意味着你需要有奇数个纵坐标 (\(y_0, y_1, \dots, y_n\))

辛普森法则公式

对于 \(n\) 个小条(其中 \(n\) 为偶数)且条宽为 \(h = \frac{b - a}{n}\): $$\int_a^b f(x) \, dx \approx \frac{h}{3} [(y_0 + y_n) + 4(y_{odd}) + 2(y_{even})]$$

公式拆解:

  • \((y_0 + y_n)\):首项和末项纵坐标之和。
  • \(4(y_{odd})\):奇数下标纵坐标之和的 4 倍 (\(y_1 + y_3 + y_5 + \dots\))。
  • \(2(y_{even})\):偶数下标纵坐标之和的 2 倍 (\(y_2 + y_4 + y_6 + \dots\))。(此处不包含 \(y_0\) 或 \(y_n\)!)

记忆口诀(辛普森系数):
乘数顺序为:1, 4, 2, 4, 2, 4, 2, ..., 4, 1

辛普森法则操作步骤
  1. 计算条宽 (\(h\)): 确保 \(n\) 是偶数。\(h = \frac{b - a}{n}\)。
  2. 列出所有纵坐标: 通过将相应的 \(x\) 值代入 \(f(x)\) 来计算 \(y_0, y_1, y_2, \dots, y_n\)。
  3. 应用模式: 将首末项相加(系数 1),将奇数项相加(系数 4),将内部偶数项相加(系数 2)。
  4. 相乘: 将总和乘以 \(\frac{h}{3}\)。

避免常见错误:务必检查你使用的是偶数个小条 (N)。如果题目要求 5 个纵坐标,则 N=4(偶数个小条),此时可以使用辛普森法则。如果题目要求 5 个小条,则不能使用辛普森法则!

C. 提高估算精度

数值积分估算(中矩形法、梯形法或辛普森法则)的准确度通常可以通过增加小条数量 (\(n\)) 来提高。

如果你将小条数量加倍,\(h\) 就会减半,曲线的近似拟合会变得更精细,从而更接近真实面积。

重点总结(数值积分):
我们利用矩形(中矩形法)或抛物线(辛普森法则)来近似处理复杂的面积。辛普森法则要求偶数个小条,并能提供所学方法中最高的估算精度。