插值法
字数 2521 2025-10-26 09:01:43
插值法
插值法是计算数学中一种通过已知的离散数据点,构造一个简单函数(称为插值函数),使其精确通过所有给定点,并用于估算未知点函数值的方法。
- 问题引入与基本概念
- 核心问题:我们通常只能通过实验、测量或复杂计算获得函数在有限个点上的值(即一组数据点)。但我们需要知道函数在非数据点处的值。例如,测量了一天内每隔两小时的气温,但需要估算下午三点时的温度。
- 插值的定义:给定一组互不相同的节点 \(x_0, x_1, \dots, x_n\) 及其对应的函数值 \(y_0, y_1, \dots, y_n\),即已知数据点 \((x_i, y_i) (i=0,1,\dots,n)\)。目标是构造一个相对简单的函数 \(p(x)\),使其满足插值条件:\(p(x_i) = y_i\) 对于所有 \(i=0,1,\dots,n\) 都成立。这个函数 \(p(x)\) 就称为插值函数。
- 插值函数的选择:常用的插值函数有多项式、分段多项式、三角函数等。多项式因其形式简单、易于计算导数和积分而被广泛应用。
- 拉格朗日插值
- 存在性与唯一性:对于 n+1 个数据点,存在唯一一个次数不超过 n 的多项式 \(p_n(x)\) 能够通过所有这些点。这被称为插值多项式的存在唯一性定理。
- 拉格朗日法的思想:构造这个唯一多项式的一种直观方法是使用“基函数”的线性组合。拉格朗日法的核心是为一每个数据点 \((x_i, y_i)\) 构造一个特定的基函数 \(l_i(x)\),这个基函数在 \(x_i\) 处取值为1,而在其他所有节点 \(x_j (j \neq i)\) 处取值为0。
- 拉格朗日基函数:第 i 个拉格朗日基函数定义为:
\[ l_i(x) = \prod_{j=0, j\neq i}^{n} \frac{x - x_j}{x_i - x_j} \]
容易验证,\(l_i(x_i) = 1\),且当 \(j \neq i\) 时,\(l_i(x_j) = 0\)。
* 插值多项式:有了这组基函数,插值多项式可以简单地写为:
\[ p_n(x) = \sum_{i=0}^{n} y_i l_i(x) \]
这个多项式自动满足所有插值条件 \(p_n(x_i) = y_i\)。
* 优点与缺点:拉格朗日插值形式对称、理论优美。但当增加或减少一个数据点时,所有基函数都需要重新计算,效率较低。
- 牛顿插值
- 思想:牛顿插值提供了另一种构造插值多项式的方法,它具有良好的承袭性。当增加一个新的数据点时,可以在原有插值多项式的基础上增加一项,而不需要全部重新计算。
- 差商的概念:这是牛顿插值的核心工具。差商是函数值的线性组合,用于刻画函数在不同节点间的变化率。
- 零阶差商:\(f[x_i] = f(x_i)\)。
- 一阶差商:\(f[x_i, x_j] = \frac{f[x_j] - f[x_i]}{x_j - x_i}\)。
- 二阶差商:\(f[x_i, x_j, x_k] = \frac{f[x_j, x_k] - f[x_i, x_j]}{x_k - x_i}\)。
* 以此类推,可以定义 n 阶差商。- 牛顿插值多项式:利用差商,插值多项式可以写为:
\[ p_n(x) = f[x_0] + f[x_0, x_1](x-x_0) + f[x_0, x_1, x_2](x-x_0)(x-x_1) + \dots + f[x_0, \dots, x_n](x-x_0)\dots(x-x_{n-1}) \]
- 优点:增加一个新节点 \((x_{n+1}, y_{n+1})\) 时,只需计算一个新的 n+1 阶差商 \(f[x_0, \dots, x_{n+1}]\),并在原多项式后添加一项 \(f[x_0, \dots, x_{n+1}](x-x_0)\dots(x-x_n)\) 即可,计算效率高。
- 插值误差与龙格现象
- 插值余项/误差:插值多项式 \(p_n(x)\) 与被逼近的未知函数 \(f(x)\) 之间的误差称为插值余项,记为 \(R_n(x) = f(x) - p_n(x)\)。
- 误差公式:如果函数 \(f(x)\) 在包含节点区间上足够光滑(具有 n+1 阶连续导数),则存在一点 \(\xi\) 属于该区间,使得误差为:
\[ R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} \omega_{n+1}(x) \]
其中 \(\omega_{n+1}(x) = (x-x_0)(x-x_1)\dots(x-x_n)\)。
- 龙格现象:这是一个重要的警示。当插值节点等距分布,且对某些函数(如 \(f(x) = 1/(1+x^2)\) 在 [-5,5] 上)使用高次多项式(n 很大)插值时,插值多项式在区间边缘会出现剧烈的振荡,导致误差非常大。这表明并非插值多项式的次数越高,逼近效果就越好。
- 分段插值与样条插值
- 解决龙格现象:为了克服高次多项式插值的振荡问题,最有效的方法是采用低次分段插值。
- 分段线性插值:将相邻的数据点用直线段连接起来。这种方法简单直观,保证了连续性,但在节点处不可导,图形不光滑。
- 三次样条插值:这是应用极其广泛的一种分段插值方法。
- 定义:给定节点和函数值,构造一个函数 \(S(x)\),使其满足:
- \(S(x)\) 在每个子区间 \([x_i, x_{i+1}]\) 上是一个三次多项式。
- \(S(x_i) = y_i\)(插值条件)。
- \(S(x)\)、\(S'(x)\)、\(S''(x)\) 在整个区间上连续(即连接处直至二阶导数都光滑衔接)。
* 优点:样条插值既避免了高次多项式的振荡,又比简单的分段线性插值光滑得多,在实际工程和科学计算中非常受欢迎。