对于插值法的初步认知

\(Interpolation\):插值,适用于解决复杂、难于计算的函数表达式问题的有力手段,更有时根本没有具体的函数,只有对应采样点的几个函数值,而要求计算非采样点的函数值的问题,此时插值法就可以构造出该函数的近似表达式来解决问题。

一:什么是插值

插值是属于数学数值分析领域的内容,常被称作内插或者__插值__。接下来给出定义:

给定N个数据离散点\((x_k,y_k)\),其中\(k = 1,2,3...N\)。对于\(x\)\(x\)对应的\(y\)值叫做内插。

定义域在区间\([A,B]\)上有意函数\(F\),已知函数\(G\)\([A,B]\)范围内满足\(G(x_i) = F(x_i) = 1,2...N\)

则称\(G(x)\)\(F(x)\)关于节点\({x_i}_{i = 0}^N\)上的插值函数。

假设我们已经求得\(x_i\)集合中的最大值\(MAX\)和最小值\(MIN\)

用插值函数\(G(x)​\)计算被插值函数\(F(x)​\)在点\(x \in (MIN, MAX)​\)处的近似值的方法称为内插法。

用插值函数\(G(x)\)计算被插值函数\(F(x)\)在点\(x \in [A, B]\)\(x \notin [MIN, MAX]\)处的近似值的方法称为外插法。

那么你现在已经基本了解了什么是插值,下面我们来看一些关于插值方法的东西。

二:插值方法简介

1.片段插值

这种插值方法几乎不能算是插值了,所实话如果没有维基百科编者根本就不知道有这种插值方法以及这样也能算是插值。

简单来说就是找到离\(x\)最近的采样点\(x_i\),然后将\(y\)值分配为\(y_i\)。因此它的别称就是__最近邻插值__。但是就和wiki说的一样,这种插值方法是几乎碰不到的,因为出不了什么很高深的符合当前阶段学习的题目,但同时如果可以使用这种方法,无疑将使时间和复杂性都大大降低。

2.线性插值

这种插值从某种意义上说是利用了斜率,但实际上就是很简单的取平均值而已。

假设我们已知了所有自然数采样点\({x_i}\),而我们要求的插值点是\(x_{i+0.5}\),那么发现当前插值点是处于\(x_i和x_{i+1}\)之间,那么我们取的分配值就是\(\frac{y_i+y_{i + 1}}{2}\)。以数学公式的方法表达就是:

\(y = y_a + (y_b - y_a) \frac{x - x_a}{x_b - x_a}\)

\(G(x) = y_a \frac{x - x_b}{x_a - x_b} + y_b \frac{x - x_a}{x_b - x_a}\)

发现\(G(x)\)实际上是两个一次多项式的组合。也就是说,我们过这两个点分别作一次多项式\(l_a = \frac{x - x_b}{x_a - x_b},~l_2 = \frac{x - x_a}{x_b - x_a}\),那么\(G(x) = y_al_a + y_bl_b\)

而实际上上述两种插值方法都存在误差,撇开片段插值不谈,线性插值的误差来源只要是因为插值点\(x_k\)是不可微分的,而计算得出的误差是\(|F(x) - G(x)| \leq C(x_b - x_a)^2~where~C= \frac18max_{r \in[x_a, x_b]}|g^{''}(r)|\)

其与数据点的距离平方成正比。

我们发现前两者的不同在于第一个找到了一个采样点进行插值,而线性插值则找到了两个点,因为两点确定一个一次函数。相同的,我们也有三点确定的二次函数的抛物线插值法,这里不再进行分析。

3.多项式插值

已知函数\(F(x)\)\([A, B]\)\(N + 1\)个点处的函数值\(\{y_i\}_{i = 0}^N\),求次数不超过\(N\)的多项式\(G(x) = c_0 +c_1x+...+c_Nx^N\)使得\(G(x) = F(x)\)称为多项式插值。

定理:多项式插值函数存在且唯一:我们都知道过\(N + 1\)个点做一个\(N\)次函数最多只能做一个,而做一个\(≥N\)次的函数却可以有无数个。

三:拉格朗日插值法

建立插值多项式的方法(简称为插值法)最基本的是需要求解线性方程组,而这是最为冗杂,最为复杂的算法,一般没有特殊情况是不会用这种方法构造插值多项式的。因此经过前人的努力,引入了一种更为简单,实现更为便捷的插值法:拉格朗日插值法。与之相通的有牛顿插值法,而我们又知道多项式插值函数的唯一性,因此恒有\(L_n(x) = N_n(x)\)。(L:拉格朗日,N:牛顿)。

在准备好了解拉格朗日插值法之前,我们先引入一个基函数的概念。

\(H_n(x)\)为次数不超过\(N\)的多项式全集,也就是有\(H_0(x),H_1(x)...H_n(x)\),设其构成\(H_n(x)\)的一组基,则插值多项式可表示为\(G(x) = a_0H_0(x) + ... + a_nH_n(x)\)

那么我们只要寻找到合适的基函数和插值多项式在这组基下的线性表示系数,就可以通过基函数构造插值多项式,也就是__基函数插值法__。

回到拉格朗日插值上来,我们首先寻找基函数。

\(l_k(x)\)\(n\)次多项式,在节点\(x_0,x_1...x_n\)上满足\(l_k(x_i) = 1 ~(i = k)\)\(l_k(x_i) = 0~(i ≠ k)\),则称\(l_k(x)\)为节点\(\{x_i\}_{i = 0}^N\)上的\(n\)次拉格朗日插值基函数。

构造法可以知道\(l_k(x) = \prod_{i = 0,i ≠ k}^{N} \frac{x - x_i}{x_k - x_i}\)

知道基函数之后我们用基函数求\(G(x) = a_0l_0(x) + ... + a_nl_n(x)\),带入\(G(x_i) = y_i\)可得

\(L_n(x) = \sum_{k = 0}^ny_kl_k(x)\)

上方的\(L_n(x)\)就是我们的拉格朗日插值多项式,具有结构清晰紧凑的特点,是用于理论分析的一般手法。根据插值误差估计定理可以估计出误差为:\(\frac{y_{n + 1}(ζ)}{(n + 1) !} \omega_{n+1}(x)\),其小于\(\frac{M_{n+1}}{(n+1)!}|\omega_{n+1}|(x)\)

拉格朗日插值基函数的性质

  1. \(F(x)\)为一个多项式且次数\(\leq n\)时,有\(F^{(n+1)}(x) \equiv 0\),所以\(R_n(x) = F(x) - L_n(X) \equiv 0\),(R为误差)因此\(n\)次插值多项式对于次数\(\leq n\)的多项式是精确的
  2. \(F(x) = x^k\)其中\(k \leq n\),那么\(R_n(x) = x^k - \sum_{j = 0}^nX^kl_j(x) = 0\)。特别的,当\(k = 0\)的时候有\(\sum_{j = 0}^nl_j(x) = 1\)

猜你喜欢

转载自www.cnblogs.com/Yeasio-Nein/p/Interpolation.html