欢迎来到函数近似的世界!
你好!欢迎来到数值方法中最实用的章节之一。在现实世界中,科学家和工程师很少能拥有像 \(y = x^2\) 这样完美的公式。相反,他们通常面对的是一组数据点——比如每十分钟记录一次的化学反应温度。
在本章中,我们将学习如何找出一个能精确通过这些点的多项式。这让我们能够“填补空白”(插值)或预测未来可能发生的变化。如果起初觉得公式看起来有点长,不用担心;一旦你掌握了当中的规律,其实它们非常有规律且易于跟随!
1. 基础:我们在做什么?
想象你在纸上画了三个点。你可以画出无数条扭曲的线穿过它们,但只有一条特定的二次曲线(二次多项式)能完美地穿过这三点。我们的目标是运用两种巧妙的方法来找出这条曲线的方程:牛顿前向差分法 (Newton’s Forward Difference) 和 拉格朗日多项式 (Lagrange’s Polynomial)。
2. 牛顿前向差分插值法
当你的数据点间隔相等时,这种方法是你最好的朋友。如果你的 x 值例如是 1, 2, 3, 4... 那么这就是最适合你的方法!
差分表
在使用公式之前,我们会先建立一个差分表 (Difference Table)。这只是观察 y 值如何变化的一种方式。
• 一阶差分 (\(\Delta f(x)\)): 将第二个 y 值减去第一个,第三个减去第二个,以此类推。\( \Delta f(x) = f(x + h) - f(x) \)。
• 二阶差分 (\(\Delta^2 f(x)\)): 将一阶差分再次相减。
• 神奇法则: 如果你有一个 \(n\) 次多项式,那么第 \(n\) 阶差分将会是一个常数。例如,对于二次函数(\(x^2\)),二阶差分始终是相同的!
公式
要找出函数在某点 \(x\) 的值,我们使用:
\( f(x) = f(x_0) + \binom{p}{1}\Delta f(x_0) + \binom{p}{2}\Delta^2 f(x_0) + ... \)
其中 \( p = \frac{x - x_0}{h} \)。这里,\(h\) 是“步长”(x 值之间的间距)。
小贴士: 把 \(p\) 想成是“距离起点有多少步?”。如果你想求 \(x=1.5\) 的值,而你的表格从 \(x=1\) 开始,间距为 \(1\),那么 \(p\) 就是 \(0.5\)。
你知道吗? 这种方法在 17 世纪被天文学家大量使用,用来预测行星的位置,而不必每次都进行繁琐的计算!
常见错误:
检查你的间隔! 学生常试图在 x 值间距不相等(例如 \(x = 1, 2, 5, 10\))时使用牛顿法。这方法只有在间隔完全相同时才有效。如果不是,你就必须改用拉格朗日法。
重点总结: 牛顿法使用差分表来“逐步建立”多项式。它只适用于间隔相等的数据。
3. 拉格朗日插值多项式
如果说牛顿法是“逐步建设”的过程,那么拉格朗日法就像是一套“量身定做”的西装。它适用于任何数据点组合,无论 x 值之间的间距有多奇怪。
运作原理(类比)
想象你有三个点:A、B 和 C。拉格朗日法会建立三个独立的迷你多项式:
1. 其中一个在 A 点时等于 A 的 y 值,但在 B 和 C 点时为零。
2. 其中一个在 B 点时等于 B 的 y 值,但在 A 和 C 点时为零。
3. 其中一个在 C 点时等于 C 的 y 值,但在 A 和 B 点时为零。
当你把这三个多项式加起来,就会得到一条完美穿过所有三个点的曲线!
规律
对于三个点 \((x_0, y_0), (x_1, y_1), (x_2, y_2)\),公式为:
\( L(x) = y_0 \frac{(x - x_1)(x - x_2)}{(x_0 - x_1)(x_0 - x_2)} + y_1 \frac{(x - x_0)(x - x_2)}{(x_1 - x_0)(x_1 - x_2)} + y_2 \frac{(x - x_0)(x - x_1)}{(x_2 - x_0)(x_2 - x_1)} \)
如果觉得这很难,别担心! 只要记住“无视我”法则 (Ignore Me Rule):
在每个分数的分子中,放入所有 x 值,除了那个与前面 y 值对应的 x 值。例如,如果你前面放的是 \(y_0\),分子的括号里就不要放 \(x_0\)。在分母中,你只需要将分子中的 \(x\) 替换为那个“被无视的”值即可。
快速回顾:何时该用哪种方法?
• 牛顿法: 当 x 值分别为 1, 2, 3, 4 时使用(间隔相等)。如果你有很多点,手算起来更快。
• 拉格朗日法: 当 x 值分别为 1, 2, 5, 12 时使用(间隔不相等)。而且它在一次性写出整个多项式时也更方便。
重点总结: 拉格朗日多项式是透过将在特定数据点“开启”并在其他点“关闭”的项相加而建立的。它们适用于任何间距。
4. 准确性与误差
在数值方法中,我们总是关心自己可能“错”了多少。
误差 = 近似值 - 精确值
• 多项式在近似平滑曲线(如 \(e^x\) 或 \(\sin(x)\))方面表现出色。
• 然而,离已知数据点越远(外推法),多项式的表现可能越“狂野”。请尽量将数值范围控制在你的数据区间内!
总结清单
• 我会建立差分表吗?(正确减去 y 值)。
• 我知道多项式的次数吗?(如果三阶差分是常数,则它是三次多项式)。
• 我会使用拉格朗日的“无视我”法则吗?(规律识别是关键!)。
• 我用对方法了吗?(间隔相等 = 牛顿法;任何间隔 = 拉格朗日法)。
你能行的!函数近似其实就是寻找连接数据点的正确规律。继续练习表格减法,其余的部分自然会融会贯通。