欢迎来到函数近似的世界!
在你以往的数学学习中,通常是先有一个公式,然后代入数值求坐标。但如果你的情况刚好相反,手头上只有一堆坐标呢?在现实世界中——例如工程学或天气预报——我们经常会遇到只有数据点,却没有连接这些点的公式的情况。
在本章中,我们将学习两种巧妙的方法来“连点成线”,即建立一个能完美吻合数据的“多项式”。这样,我们就能预测数据点之间的数值。别担心,如果起初觉得这有点抽象是正常的;本质上,这只是一种找出“最佳拟合线”(恰好是一条曲线)的高级技巧!
1. 牛顿前向差分插值法 (Newton’s Forward Difference Interpolation)
当你的 x 值间距相等 时(例如 \(x = 1, 2, 3, 4...\)),牛顿法是一个非常强大的工具。它使用所谓的 差分表 (Difference Table) 来构建公式。
差分表:逐步教学
在使用公式之前,你需要先制作一个表格。假设你有一组 \(x\) 和 \(f(x)\) 的数值:
1. 在第一栏写下 \(x\) 值,第二栏写下 \(f(x)\) 值。
2. 一阶差分 (\(\Delta\)): 用第二个 \(f(x)\) 减去第一个,第三个减去第二个,以此类推。将结果写在新的栏位中。
3. 二阶差分 (\(\Delta^2\)): 用“一阶差分”栏位中的数字,重复同样的减法步骤。
4. 继续做下去,直到差分变成 常数(所有数字都相同)或数据用尽为止。
重点温习: 符号 \(\Delta f(x)\) 其实就是一种 fancy 的说法,代表“函数的变化量”。计算方式如下:
\( \Delta f(x) = f(x+h) - f(x) \)
其中 \(h\) 是“步长”(\(x\) 值之间的间隔)。
常数差分的奥妙
你知道吗? 如果二阶差分全部相同,说明你的数据完美符合一个二次方程 (\(x^2\))。如果三阶差分是常数,那就是三次方程 (\(x^3\))。这是一种用来“重构”隐藏多项式的绝佳方法!
使用公式
公式看起来可能很吓人,但请记住:你的公式手册里就有! 你的任务只是从差分表的 顶行 选取正确的数值并代入即可。
公式使用变量 \(p\),代表你距离起始点在 \(x\) 轴上走了多远:\(p = \frac{x - x_0}{h}\)。
常见错误: 在开始前,务必确认你的 \(x\) 值间距是否相等。如果不是(例如 \(x = 1, 2, 5, 10\)),牛顿法将无法使用,此时你必须改用 拉格朗日法 (Lagrange’s method)!
核心重点: 牛顿法是“等间距”方法。如果 \(n\) 阶差分为常数,你所求出的就是一个 \(n\) 次多项式。
2. 拉格朗日插值多项式 (Lagrange’s Interpolating Polynomial)
如果你的数据点散乱分布怎么办?也许你在第 1 天、第 2 天测量了植物高度,然后忘了记录,直到第 7 天才又测量。由于间隔不相等,牛顿表的做法会失效。这时候,拉格朗日形式 就能派上用场了。
运作原理:类比“加权”
你可以把拉格朗日法想像成 量身定做的西装。针对每一个数据点,我们都创造一个特定的数学“项”,当我们处于该数据点时,这个项是“开启的”(等于该点的 \(y\) 值),而在我们列表中的任何其他数据点时,这个项则会“关闭”(等于零)。
如果你有 \(n + 1\) 个数据点,你可以创造一个 \(n\) 次的多项式。
范例:如果你有 3 个点,你可以做出一个二次多项式 (\(x^2\))。如果你有 4 个点,则可以做出三次多项式 (\(x^3\))。
公式结构
同样地,公式在你的手册里。这里有一个手动写出公式而不搞混的“小撇步”:
对于每个点 \((x_i, y_i)\),该项看起来像是一个分数乘以 \(y_i\)。
1. 分子: 将 \((x - \text{所有其他 x 值})\) 全部相乘。
2. 分母: 将 \((\text{当前 x 值} - \text{所有其他 x 值})\) 全部相乘。
3. 结果: 将该分数乘以该点对应的 \(y\) 值。
鼓励一下: 这涉及到大量的括号,看起来可能会很混乱!慢慢来,在纸上留出足够的空间,并仔细核对你的减法运算。
以三个点中的第一个点 \((x_0, y_0)\) 为例的项:
\( L_0(x) = \frac{(x - x_1)(x - x_2)}{(x_0 - x_1)(x_0 - x_2)} \times y_0 \)
重点温习:
• 牛顿法: 用于等间距数据。使用差分表。
• 拉格朗日法: 用于任何间距数据。使用“加权”公式。
核心重点: 拉格朗日是“万用”方法。它适用于任何数据集,但如果点数很多,代数运算可能会变得非常“繁琐”。
总结与致胜技巧
我该用哪种方法?
在考试中,题目可能会直接告诉你用哪种方法。如果没说的话:
• 看看 \(x\) 值。它们是 \(0, 1, 2, 3\) 这种等间距吗?请用 牛顿法,计算快得多。
• 它们是 \(1, 2.5, 7, 8\) 这种杂乱间距吗?请用 拉格朗日法,这是你唯一的选择!
记忆小撇步:L 代表 Lagrange,L 也代表 Loose(松散/非规律数据)
记住:Lagrange 是用于 Loose(松散且不严格间距)的数据。牛顿法则是为了“数值 (Numerical)”顺序(整齐间距的数据)。
最后检查:
• 你有把 \(y\) 值放入最后的多项式吗?
• 你记得 \(n+1\) 个点意味着最高次方是 \(x^n\) 吗?
• 如果你在做近似估算,答案合理吗?如果你的 \(y\) 值在 10 到 20 之间,而你算出的答案是 500,回头检查一下正负号吧!
别担心计算繁多。 只要多练习制作差分表和设定拉格朗日分数,你会越来越得心应手。你可以做到的!