数学建模——插值算法

什么情况用它:

  • 需要根据已知的函数点进行数据、模型的处理和分析
  • but 现有的数据极少,不足以支撑分析的进行
  • 需要 “ 模拟产生 ” 一些新的 and 可靠的值来满足需求

插值法分类:

  • 分段插值
  • 多项式插值
  • 三角插值

拉格朗日插值法

  • 两个点:
    数学建模——插值算法_第1张图片
  • 三个点:
    数学建模——插值算法_第2张图片
  • 四个点:
    数学建模——插值算法_第3张图片

缺点:

会产生龙格现象(Runge phenomenon)
数学建模——插值算法_第4张图片

这时候就推荐分段线性插值

分段二次插值

数学建模——插值算法_第5张图片

牛顿插值法

数学建模——插值算法_第6张图片

两种插值法对比:

维度 拉格朗日插值 牛顿插值
缺点 龙格现象,不能全面反映被插值函数的性态 也存在龙格现象不能全面反映被插值函数的性态
优点 具有继承性

埃尔米特插值(Hermite) 登场

介绍:

数学建模——插值算法_第7张图片

原理

数学建模——插值算法_第8张图片

分段三次埃尔米特插值

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

三次样条插值

我也有点懵逼

函数介绍

plot 函数用法

plot (x1, y1, x2, y2)
plot(x, y, ‘o’, new_x, p, ‘r-’)

线方式 介绍
- 实线
点线
-. 虚点线
波折线
点方式 介绍
. 圆点
+ 加号
* 星号
x x行
o 小圆
颜色 介绍
y
r
g 绿
b
w
k
m
c

Hermite内置函数

  • 示例代码:
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-')

数学建模——插值算法_第9张图片

  • pchip函数介绍

插入后对应的纵坐标 = pchip(自变量,因变量,插入处对应的横坐标)

三次样条插值内置函数

  • 示例代码:
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')   % 标注显示在东南方向

数学建模——插值算法_第10张图片

n维数据插值(了解)

p = interpn(x1, x2, …xn, y, new_x1, new_x2, …, new_xn, method)

  • x1, x2, …, xn是已知的样本点的横坐标
  • y 是 一直的样本点的纵坐标
  • new_x1, new_x2, …, new_xn 是要插入点的横坐标

method 是要插值的方法:

  • linear:线性插值(默认算法)
  • cubic:三条插值
  • spline:三次样条插值法(最为精准)
  • nearest:最邻近插值算法
  • 示例代码:
x = -pi:pi;
y = sin(x);
new_x = -pi:0.1;pi;

p = spline(x, y, new_x)
等价于 p = interpn(x, y, new_x, 'spline');

闪亮登场——可用于 短期预测

数学建模——插值算法_第11张图片

你可能感兴趣的:(数学建模,人工智能,matlab,数学建模,插值算法)