清风数模课 - - - 插值算法笔记

tips

        本文模型的顺序有做调整,把会用到的放在了前面,节省时间可不看后面的两个几乎用不到的模型,希望能帮到大家

  1. 产生原因

    数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和 分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就 需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满 足需求,这就是插值的作用。

  2. 插值的定义:

    设函数 f(x) 在[a,b]上有定义,且在区间内有一些有函数值的点,存在一个简单函数P(x)使得这些点也在P(x)上,则P(x)为f(x)的插值函数,这些点的横坐标称为插值节点,[a,b]称为插值区间,求P(x)的方法称为插值法

  3. 分类

    1. 多项式插值

      P(x)为次数不超n的代数多项式

    2. 分段插值

      P(x)为分段多项式

    3. 三角插值

      P(x)为三角多项式

      注:三角插值一般要用到傅里叶变换等复杂的数学工具。
  4. 分段线性插值

    1. 优点

      1. 插值多项式次数高精度未必显著提高

      2. 插值多项式次数越高摄入误差可能显著增大

        • 提高插值精度可采用分段低次插值

          指当需要求出Xo处的函数值时,找到离它最近的两个点进行求插值函数的计算(求出来是一个一次函数),从而完成Xo处的函数值的预测

  5. 分段二次插值

    • 指当需要求出Xo处的函数值时,找到离它最近的三个点进行求插值函数的计算(求出来是一个二次函数),从而完成Xo处的函数值的预测

    • 选取跟节点x最近的三个节点x_{i-1},x_i,x_{i+1}进行二次插值,在每一个区间[x_{i-1},x_{i+1}]上,取:清风数模课 - - - 插值算法笔记_第1张图片

       

    • 这种分段的低次插值称为分段二次插值,在几何上就是用分段抛物线代替y=f(x),故分段二次插值又称为分段抛物插值

  6. 埃尔米特(Hermite)插值原理

    1. 优点:不仅希望函数值一样,甚至可以使插值处的函数值,函数的导数乃至函数的高阶导数都保持与原函数一致

      • 直接使用Hermite插值得到的多项式次数较高,也存在着龙格现象, 因此在实际应用中,往往使用分段三次 Hermite 插值多项式 (PCHIP)。

    2. 分段三次埃尔米特插值

      pchip(x,y,new_x)函数

       x = ‐pi:pi; y = sin(x);
       new_x = ‐pi:0.1:pi;
       p = pchip(x,y,new_x);
       plot(x, y, 'o', new_x, p, 'r‐')   %这里是把插值前后的图画在一起做对比

      matlab中plot函数的使用

      polt(x1,y1,x2,y2)

      线方式: ‐ 实线 :点线 ‐. 虚点线 ‐ ‐ 波折线

      点方式: . 圆点 +加号 * 星号 x x形 o 小圆

      颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青

  7. 三次样条插值

    1. 满足条件

      1. 值相等

      2. 在每一个子区间上插值函数是三次多项式

      3. 插值函数在区间内二阶连续可微

    2. 代码

      spline(x,y,new_x)函数

       x = ‐pi:pi;
       y = sin(x);
       new_x = ‐pi:0.1:pi;
       p1 = pchip(x,y,new_x); %分段三次埃尔米特插值
       p2 = spline(x,y,new_x); %三次样条插值
       plot(x,y,'o',new_x,p1,'r‐',new_x,p2,'b‐')
       legend('样本点','三次埃尔米特插值','三次样条插值',‘Location’,‘SouthEast’) %标注显示在东南方向

      说明:

      ‘Location’用来指定标注显示的位置

      legend(string1,string2,string3, …) ---> 分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。

  8. 拉格朗日插值算法<由于龙格现象不推荐用>

    1. 介绍: 在若干个不同的地方得到相应的观测值, 拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。

      • 当有n个数据需要进行插值的时候,可以写出唯一的一个(n-1)次的多项式穿过这n个点,通过这个函数来进行插值

    • 定理:
      设有n+1个互不相同的节点(x_i,y_i) \qquad (i = 0,1,2...n) \qquad 存在唯一的多项式:

      L_n(x) = a_0+a_1x+a_2x^2+...+a_nx^n\qquad  使得  L_n(x_j) = y_j \qquad(j = 0,1,2,...n)

      • 只要n+1个节点互异,满足上述插值条件的多项式是唯一存在的

      • 如果不限制多项式的次数,插值多项式并不唯一

    1. 缺点:龙格现象

    2. 高次插值会产生龙格现象,即在两端处波动极大,产生明显的震荡。在不熟悉曲线 运动趋势的前提下,不要轻易使用高次插值。清风数模课 - - - 插值算法笔记_第2张图片

       

    3. 通过图可以看出,红色的线是原 f(x) 的图像,当插值函数的次数越高,摆动越剧烈,故同时穿过所有点的拉格朗日插值算法在n很大的时候不准确性很高
  9. 牛顿插值算法<同样会有龙格现象,不推荐>

    1. 差商定义:
      f[x_0,x_k] = \frac{f(x_k)-f(x_0)}{x_k-x_0}为函数f(x)关于x_0,x_k的一阶差商(也称均差)

       


      二阶差商:f[x_0,x_1,x_2] = \frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0}

       


      k阶差商:f[x_0,x_1,x_2,...,x_k] = \frac{f[x_1,x_2,..,x_{k-1},x_k]-f[x_0,x_1,..,x_{k-1}]}{x_k-x_0}
       

    2. 牛顿插值法计算:
      f(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)+...+f[x_0,x_1,...,x_{n-1},x_n](x-x_0)(x-x_1)...(x-x_{n-2})(x-x_{n-1})
       

      • 优点:每次需要一个新的值时,只需要接着上一个进行计算即可(拉格朗日插值每一个都需要重新计算)

      • Xk 和 X _{k-1}可以不相邻

  10. 应用:

    也可以运用在短期预测上

你可能感兴趣的:(数学建模,美国大学生数学建模竞赛,数学建模)