欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数值分析之插值

最编程 2024-06-30 13:42:43
...

插值

一.基本概念

1.1插值需要研究的问题
  • 插值函数是否存在?
  • 如何构造插值函数?
  • 如何评估误差?
1.2插值法定义
  • 设函数y=f(x)在区间[a,b]有定义,且已知a \leqslant x_{0}<x_{1}<\cdots<x_{n} \leqslant b上值y_{0}, y_{1}, \cdots, y_{n},若存在一简单函数P(x),使得
    P\left(x_{i}\right)=y_{i} \quad(i=0,1, \cdots, n)
    成立,就称P(x)为f(x)的插值函数,点x_{0}, x_{1}, \cdots, x_{n}称为插值节点,包含插值节点的区间[a,b]称为插值区间,求插值区间函数P(x)的方法称为插值法。若P(x)是次数不超过n的代数多项式,即P(x)=a+a x+\cdots+a_{n} x^{n},称P(x)为插值多项式

二.多项式插值

  • 定理:设区间[a,b]上给定n+1个点a \leqslant x_{0}<x_{1}<\cdots<x_{n} \leqslant b上的函数值y_i=f(x_i)(i=0,1,...,n),这样次数不超过n的多项式,使P(x_i)=y_i(i=0,1,...,n)是唯一的。
快照15.png

三.拉格朗日插值

使用解线性方程组的方法求解插值多项式,计算量大,造成的误差也不易估算,因此我们一般采取其他方法来构造插值多项式

3.1线性插值与抛物线插值
  • 线性插值(两点插值):

    给定两个区间[x_k,x_{k+1}]及端点函数值y_k=f(x_k),y_{k+1}=f(x_{k+1}),求线性插值多项式L_1(x),满足:

    L_1(x)=y_k,L_1(x_{k+1})=y_{k+1}

    其集合意义就是过着两个点的直线。可以通过直线表达式给出:

    两点式
    L_{1}(x)=\frac{x_{k+1}-x}{x_{k+1}-x_{k}} y_{k}+\frac{x-x_{k}}{x_{k+1}-x_{k}} y_{k+1}

    l_{k}(x)=\frac{x-x_{k+1}}{x_{k}-x_{k+1}}, \quad l_{k+1}(x)=\frac{x-x_{k}}{x_{k+1}-x_{k}} (称他们为线性插值基函数)
    其中
    \begin{array}{ll}{l_{k}\left(x_{k}\right)=1,} & {l_{k}\left(x_{k+1}\right)=0} \\ {l_{t+1}\left(x_{k}\right)=0,} & {l_{k+1}\left(x_{k+1}\right)=1}\end{array}
    可将两点式表示为
    L_{1}(x)=y_{k} l_{k}(x)+y_{k+1} l_{k+1}(x)

  • 抛物线插值(三点插值)

3.2拉格朗日插值多项式

将以上两个点或是三个点的情况扩展到有n+1个点,设有n+1个节点,x_{0}<x_{1}<\cdots<x_{n},构造n次插值多项式L_n(x)满足条件L_{n}\left(x_{j}\right)=y_{j} \quad(j=0,1, \cdots, n)

  • n次插值基函数:若n次多项式l_{j}(x)(j=0,1, \cdots, n),在n+1个节点x_{0}<x_{1}<\cdots<x_{n}上满足条件l_{j}\left(x_{k}\right)=\begin{array}{ll}{1,} & {k=j} \\ {0,} & {k \neq j}\end{array} j,k=0,1,...,n就称这为n+1个n次多项式为节点x_0,x_{1}, \cdots, x_{n}的n次插值基函数。可以表示为

    ,l_{k}(x)=\frac{\left(x-x_{0}\right) \cdots\left(x-x_{k-1}\right)\left(x-x_{k+1}\right) \cdots\left(x-x_{n}\right)}{\left(x_{k}-x_{0}\right) \cdots\left(x_{k}-x_{k-1}\right)\left(x_{k}-x_{k+1}\right) \cdots\left(x_{k}-x_{n}\right)},j=0,1,...,n

  • 拉格朗日插值多项式:

    可以表示为L_{n}(x)=\sum_{k=0}^{n} y_{k} l_{k}(x)

    若将记\omega_{n+1}(x)=\left(x-x_{0}\right)\left(x-x_{1}\right) \cdots\left(x-x_{n}\right)

    \omega_{n+1}^{\prime}\left(x_{k}\right)=\left(x_{k}-x_{0}\right) \cdots\left(x_{k}-x_{k-1}\right)\left(x_{k}-x_{k+1}\right) \cdots\left(x_{k}-x_{n}\right)(关于x求导)

    所以可以将拉格朗日插值多项式改写为:
    L_{n}(x)=\sum_{k=0}^{n} y_{k} \frac{\omega_{n+1}(x)}{\left(x-x_{k}\right) \omega_{n+1}^{\prime}\left(x_{k}\right)}

  • 注:n次插值多项式的次数通常为n次,特殊情况下也可以小于n次,如三点抛物线插值三点在同一条直线上时。

3.3插值余项与误差估算
  • 定义:若在[a,b]上用L_n(x)近似f(x),则其截断误差
    R_{n}(x)=f(x)-L_{n}(x)
    称为插值多项式的余项。

  • 定理:f^{(n)}(x)在[a,b]上连续,f^{(n+1)}(x)在[a,b]内存在,节点a \leqslant x_{0}<x_{1}<\cdots<x_{n} \leqslant bL_n(x)是满足上述条件的插值多项式,则对任意的x \in[a, b],
    R_{n}(x)=f(x)-L_{n}(x)=\frac{f^{(n+1)}(\xi)}{(n+1) !} \omega_{n+1}(x)
    这里\xi \in(a, b)且依赖于x, \omega_{n+1}(x)

    • 证明:(罗尔中值定理)
      快照13.png
快照14.png

四.均差及牛顿插值多项式

五.埃尔米特插值

六.分段低次插值

七.三次样条插值