美文网首页
数值分析:插值与拟合

数值分析:插值与拟合

作者: Bocchi | 来源:发表于2019-04-17 11:26 被阅读0次

1 插值

定义 设函数y=f(x)在区间[a,b]上的n+1个点,a\leq x_0,x_1,...,x_n\leq b上的函数值为y_0,y_1,...,y_n,若粗在函数P(x),使P(x_i)=y_i,i=0,1,...n成立,则称函数P(x)f(x)插值函数f(x)称为被插值函数,点x_0,x_1,...,x_n称为 插值节点,包含插值节点的区间[a,b]称为 插值区间

在这里我们进讨论 多项式插值分段插值

多项式插值
  • 插值多项式是否存在,若存在是否唯一
  • 怎么推导插值多项式
  • 如何估计其逼近程度
  • 如何应用

定理1 在n+1个相异插值节点x_0,x_1,...,x_n处取给定值y_0,y_1,...,y_n的次数不高于n的插值多项式存在且唯一(可以通过非齐次线性方程组的范德蒙德行列式证明)


2 拉格朗日插值

2.1 拉格朗日插值多项式
  • 线性插值
    过曲线y=f(x)上两点M_0(x_0,y_0),M_1(x_1,y_1)做直线L_1(x),由两点式:L_1(x)=y_0\frac{x-x_1}{x_0-x_1}+y_1\frac{x-x_0}{x_1-x_0}显然L_1(x)为插值多项式
  • 抛物线插值
    过曲线y=f(x)上三点M_0(x_0,y_0),M_1(x_1,y_1),M_2(x_2,y_2)做抛物线L_2(x),同样不难得到:L_2(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)}显然L_2(x)也为插值多项式

用类似的推导方式可以证明,n+1个节点的拉格朗日插值多项式应定义为如下形式。
定义y=f(x)在插值节点x_0,x_1,...,x_n上的 拉格朗日插值多项式 L_n(x)L_n(x)=y_0l_0(x)+y_1l_1(x)+...+y_nl_n(x)=\sum\limits_{i=0}^ny_il_i(x)其中l_i(x)=\frac{x-x_0}{x_i-x_0}\frac{x-x_1}{x_i-x_1}...\frac{x-x_n}{x_i-x_n},i=0,1,...n l_i(x)称为 插值基函数


2.2 插值余项

若在[a,b]上使用L_n(x)近似f(x),则其截断误差为R_n(x)=f(x)-L_n(x),也称为 插值多项式的余项。关于插值余项估计有如下定理

定理2 设f^{(n)}(x)在区间[a,b]上连续,f^{(n+1)}(x)在区间(a,b)内存在,L_n(x)是以a\le x_0<x_1<...<x_n\le b为节点的拉格朗日插值多项式,则对任何x\in [a,b] R_n(x)=f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) \omega_{n+1}(x)=(x-x_0)(x-x_1)...(x-x_n)
这里\xi\in(a,b)且依赖于x


2.3 算法步骤

(1) 输入x,x_i,y_i,(i=0,1,...,n)
(2) 对i=0,1,...,n计算l_i=\prod\limits_{j=o,j\neq i}^n\frac{x-x_j}{x_i-x_j}
(3) 计算L=\sum\limits_{i=0}^ny_il_i
(4) 输出L \approx f(x),结束


2.4 注意事项
  • L_n(x)为次数不高于n次的多项式,其次数可能小于n
  • f(x)是次数不超过n次的多项式,那么以n+1个点为节点的插值多项式就一定是其本身。特别是当取f(x)\equiv 1时,得恒等式\sum\limits_{i=0}^nl_i(x)\equiv 1这一等式为我们提供了验证插值基函数的一种方法
  • R_n(x)用于误差估计。若|f^{(n+1)}(x)|\le M,则|R_n(x)|\le \frac{M}{(n+1)!}|\omega_{n+1}(x)|
  • L_n(x)只与节点及函数f(x)在节点处的值有关,与f(x)无关;而R_n(x)f(x)关系最为密切。

3 差商与牛顿插值

3.1 差商

定义 设已给插值节点x_0,x_1,...,x_n以及相应的函数值f(x_0),f(x_1),...,f(x_n)f[x_0,x_1]=\frac{f(x_1)-f(x_0)}{x_1-x_0}为函数y=f(x)关于点x_0,x_1一阶差商,称f[x_0,x_1,x_2]=\frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0}为函数y=f(x)关于点x_0,x_1,x_2二阶差商,称f[x_0,x_1,...,x_k]=\frac{f[x_1,x_2,...,x_k]-f[x_0,x_1,...,x_{k-1}]}{x_k-x_0}为函数y=f(x)关于点x_0,x_1,x_2k阶差商


3.2 差商的性质
  • 线性性
    k阶差商f[x_0,x_1,...,x_k]是函数值f(x_0,f(x_1),...,f(x_k)的线性组合,即f[x_0,x_1,...,x_k]=\sum\limits_{i=0}^k{\frac{f(x_i)}{\omega'_{k+1}(x_i)}}其中\omega_{k+1}(x)=\prod\limits_{i=0}^k(x-x_i)
  • 对称性
    差商f[x_0,x_1,...,x_k]x_0,x_1,...,x_k的对称函数。
  • 差商与导数的关系
    设函数f(x)在区间[a,b]上存在n阶导数,且x_0,x_1,...,x_k\in [a,b],则存在\xi \in [a,b]使得f[x_0,x_1,...,x_k]=\frac{f^{(n)}(\xi)}{n!}

3.3 牛顿插值多项式

由差商的定义可导出f(x)=N_n(x)+R_n(x)其中\begin{align} N_n(x)=&f(x_0)+(x-x_0)f[x_0,x_1]+(x-x_0)(x-x_1)f[x_0,x_1,x_2]+...\\ &+(x-x_0)(x-x_1)...(x-x_{n-1})f[x_0,x_1,...,x_n]\\ \end{align}称为牛顿插值多项式R_n(x)=f[x,x_0,x_1,...,x_n]\omega_{n+1}(x)称为牛顿插值多项式的余项


3.4 算法步骤

(1) 输入x,x_i,y_i(i=0,1,...,n)
(2) 对i=0,1,...,n计算f_i=y_i
(3)对i=1,2,...,n计算f_k=\frac{f_{k-1}-f_k}{x_{k-1}-x_k}(k=n,n-1,...,i)
(3) 计算p=f_0+\sum\limits_{k=0}^n{f_k(\prod\limits_{j=0}^{k-1}(x-x_j))}
(4) 输出p \approx f(x),结束


4 Hermite插值

4.1 Hermite插值多项式及其余项

Hermite插值多项式:H_{2n+1}(x)=\sum\limits_{j=0}^n[y_j\alpha_j(x)+y_j'\beta_j(x)]其中\alpha_j(x)=\left[1-2(x-x_j)\sum\limits_{k=0,k\neq j}^n\frac{1}{x_j-x_k}\right]l^2_j(x) \beta_j(x)=(x-x_j)l_j^2(x)余项:R_{2n+1}(x)=\frac{f^{(2n+2)}}{2n+2}\omega^2_{n+1}(x)其中\omega_{n+1}(x)=\prod\limits_{i=0}^n(x-x_i),\xi\in [a,b]


4.2 两点三次Hermite插值多项式

已知y=f(x)[a,b]上的节点x_0,x_1上的函数值y_0,y_1及一阶导数值y_0',y_1',则三次Hermite插值多项式\begin{align} H_3(x)=&y_0\alpha_0(x)+y_1\alpha_1(x)+y_0'\beta_0(x)+y_1'\beta_1(x)\\ =&y_0\left(1-2\frac{x-x_0}{x_0-x_1}\right)\left(\frac{x-x_1}{x_0-x_1}\right)^2+y_1\left(1-2\frac{x-x_1}{x_1-x_0}\right)\left(\frac{x-x_1}{x_0-x_1}\right)^2\\ &+y_0'(x-x_0)\left(\frac{x-x_1}{x_0-x_1}\right)^2+y_1'(x-x_1)\left(\frac{x-x_0}{x_1-x_0}\right)^2\\ \end{align}余项R_3(x)=\frac{f^{(4)}(\xi)}{4!}(x-x_0)^2(x-x_i)^2,\xi\in[a,b]


5 分段低次插值

5.1 龙格现象

随着插值多项式次数的增大,插值函数L_n(x)在两端会发生激烈的震荡,这就是龙格现象

5.2 分段线性插值

对给定区间[a,b]做分割:a=x_0<x_1<...<x_n=b,在每个小区间[x_i,x_{i+1}]上以x_i,x_{i+1}为节点作f(x)的线性插值:S_i(x)=\frac{x-x_{i+1}}{x_i-x_{i+1}}f(x_i)+\frac{x-x_i}{x_{i+1}-x_i}f(x_{i+1}),x\in[x_i,x_{i+1}]把每个小区间上的线性插值函数连起来,就得到了分段线性插值函数S(x)
误差公式为|f(x)-S(x)|\leq\frac{M_2}{8}(x_i-x_{i+1})^2,M_2=\max\limits_{a\leq x\leq b}|f''(x)|

5.3 分段三次Hermite插值

对给定区间[a,b]做分割:a=x_0<x_1<...<x_n=b,在每个小区间[x_i,x_{i+1}]上以x_i,x_{i+1}为节点作分段三次Hermite插值:\begin{align} S_i(x)=&f(x_i)\left(1-2\frac{x-x_i}{x_i-x_{i+1}}\right)\left(\frac{x-x_{i+1}}{x_i-x_{i+1}}\right)^2\\ &+f(x_{i+1})\left(1-2\frac{x-x_{i+1}}{x_i-x_{i+1}}\right)\left(\frac{x-x_i}{x_{i+1}-x_{i}}\right)^2\\ &+f'(x_i) (x-x_i)\left(\frac{x-x_{i+1}}{x_i-x_{i+1}}\right)^2\\ &+f'(x_{i+1}) (x-x_{i+1})\left(\frac{x-x_i}{x_{i+1}-x_{i}}\right)^2\\ \end{align}误差公式为|f(x)-S(x)|\leq\frac{h^4}{384}\max\limits_{x_i\leq x \leq x_{i-1}}|f^{(4)}(x)|,h=\max\limits_{0\leq i \leq n-1}|x_{i+1}-x_i|


5 最小二乘拟合

定义 确定a_k(k=0,1,...,m使得R(a_0,a_1,...,a_m)=\sum\limits_{k=1}^n(\varphi(x_k)-y_k)^2最小问题称为观测数据的最小二乘拟合问题。若函数系\{b_k(x)\}为幂函数系\{x^k\},此时的到的\varphi(x)称为回归曲线


5.1 最小二乘法

由于R({{a}_{0}},{{a}_{1}},...,{{a}_{m}})\ge 0,且为连续函数,故一定存在一组{{a}_{k}}(k=0,1,...,m)使其达到极小值,这时我们只需要求出驻点即可。
因此我们假设y=f(x)的观测数据为({{x}_{k}},{{y}_{k}})(k=1,2,...,n),对于\varphi(x)m次回归曲线,通过求解正规方程组可以求出{{a}_{k}}(k=0,1,...,m)的值,可求得近似函数f(x)\left( \begin{matrix} n & \sum\limits_{k=1}^n x_k & \sum\limits_{k=1}^n x^2_k & \cdots & \sum\limits_{k=1}^n x^m_k\\ \sum\limits_{k=1}^n x_k & \sum\limits_{k=1}^n x^2_k & \sum\limits_{k=1}^n x^3_k & \cdots & \sum\limits_{k=1}^n x^{m+1}_k\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \sum\limits_{k=1}^n x^m_k & \sum\limits_{k=1}^n x^{m+1}_k & \sum\limits_{k=1}^n x^{m+2}_k& \cdots & \sum\limits_{k=1}^n x^{2m}_k\\ \end{matrix} \right) \left( \begin{matrix} a_0 \\ a_1 \\ \vdots \\ a_m \\ \end{matrix} \right)= \left( \begin{matrix} \sum\limits_{k=1}^n y_k \\ \sum\limits_{k=1}^n x_ky_k \\ \vdots \\ \sum\limits_{k=1}^n x_k^my_k \\ \end{matrix} \right)

解题时,先写出正规方程组所需数据的数据表,再求解即可得到参数


5.2 最小二乘法的病态现象

衡量一个线性方程组是否“病态”及其病态程度,可通过矩阵的条件数理论来完成。若线性方程组系 数矩阵A的条件数 Cond(A)\gg 1,则该方程组“病态”,并且系数矩阵的条件数越大,方程组的“病态”程度就越严重,其解随系数矩阵或自由项的变化(灵敏度)就越大。

相关文章

  • 数值分析:插值与拟合

    1 插值 定义 设函数在区间上的个点,上的函数值为,若粗在函数,使成立,则称函数为的 插值函数,称为被插值函数,点...

  • 数值分析读书笔记(5)数值逼近问题(I)----插值极其数值计算

    数值分析读书笔记(5)数值逼近问题(I)----插值极其数值计算 给出一般性的插值概念 给定,已知它在n+1个互异...

  • matlab画图与数据处理

    画图 拟合 插值 求导

  • 数值分析之插值

    插值 一.基本概念 1.1插值需要研究的问题 插值函数是否存在? 如何构造插值函数? 如何评估误差? 1.2插值法...

  • 关于Python插件包SciPy interpolate的最新用

    何为插值? 在学习数值分析的时候常常用到一次插值,二次插值...。经过不断的学习和使用可以发现:插值是在直线或曲线...

  • 【数学建模算法】(23)插值和拟合:拉格朗日插值

    如果你上过研究生的数值分析课程的话,对这个算法应该不会很陌生。从这节开始,我们将逐一回顾各种插值和拟合方法以及使用...

  • 插值

    一维插值 插值不同于拟合。插值函数经过样本点,拟合函数一般基于最小二乘法尽量靠近所有样本点穿过。常见插值方法有拉格...

  • 数值计算day6-曲线拟合与插值

    上节课主要介绍了特征值与特征向量的概念,低阶矩阵的特征值可以通过列出特征方程求解,高阶矩阵则可以通过幂法与反幂法迭...

  • 如何分摊秘密(七)

    十、拉格朗日插值法 本节介绍拉格朗日插值法,学过的读者请略过。 从数值分析的角度来看,拉格朗日插值法常被描述成是用...

  • 数值计算day7-数值微分

    上一节课主要介绍了曲线拟合与插值,曲线拟合主要包括线性拟合(单特征线性回归和非线性拟合(非线性方程特征变换、高阶多...

网友评论

      本文标题:数值分析:插值与拟合

      本文链接:https://www.haomeiwen.com/subject/rjcpwqtx.html