插值算法 (含代码)

插值法的原理

1,线性差值法

2,拉格朗日插值点

3,分段插值

(1)分段线性插值

(2)分段二次插值

4,牛顿插值法

5,Hermite插值法

6,(重要)分段Hermite插值

7,(重要)三次样条插值

8,n维数据的插值


插值算法:用于在已知数据点的基础上,估算出这些数据点之间其他位置的数值。

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

插值法的原理

设有 n+1个互不相同的节点(xi,yi),则存在唯一的多项式:

证明略了

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

【注2】如果不限制多项式的次数,插值多项式并不唯一。

1,线性差值法

基于两点确定一条直线的原理。假设已知两点(x0,y0),(x1,y1),通过构建直线方程来求解,直线的斜率,根据点斜式可得线性插值公式为

2,拉格朗日插值点

通过构造n次多项式来逼近给定的n+1个数据点

高次插值会产生龙格现象,即在两端处波动极大,产生明显的震荡。在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值。

3,分段插值

(1)分段线性插值

直接取最近的两个点之间的线段上相同横坐标的点

(2)分段二次插值

因为n个点可以求出唯一一个n-1次的函数,所以如果要插入节点x,可以取最近的3个x1,x2,x3来求出唯一的一个二次函数,取这二次函数的值

4,牛顿插值法

也是构造一个n次多项式来拟合n+1个数据点。与拉格朗日插值不同,牛顿插值通过差商的概念构建插值多项式。

首先定义一阶差商:

根据一阶差商可以求出二阶差商:

最后的表达式如下

虽然加入新的点时的计算量小,但是仍然有龙格现象

5,Hermite插值法

要求函数值对应同时,还要求导数值对应.这样可以找到一个2*n+1的多项式

6,(重要)分段Hermite插值

可以直接使用matlab中的pchip函数来直接调用,比赛直接用就是了

加入我们有7个在-pi到pi的等分点,然后我们要在里面插入以0.1为精度的,覆盖-pi到pi的值,我们看看最后的结果吧

x = -pi:pi; y = sin(x);  //y是要拟合上的函数

new_x = -pi:0.1:pi;//要插入的点

p = pchip(x,y,new_x);//根据x和y插入 new_x这些点

figure(1); % 在同一个脚本文件里面,要想画多个图,需要给每个图编号,否则只会显示最后一个图哦~

plot(x, y, 'o', new_x, p, 'r-')//这里表示x,y用点表示,new_x和p用实线连接

这里的plot(x1,y1,x2,y2)的用法

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

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

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

7,(重要)三次样条插值

在matlab里的是spine函数,

我们去matlab中将他们对比下

x = -pi:pi;

y = sin(x);

new_x = -pi:0.1:pi;

p1 = pchip(x,y,new_x); %分段三次埃尔米特插值

p2 = spline(x,y,new_x); %三次样条插值

figure(2);

plot(x,y,'o',new_x,p1,'r-',new_x,p2,'b-')

legend('样本点','三次埃尔米特插值','三次样条插值','Location','SouthEast') %标注显示在东南方向

既可以两个求平均,也可以两个选一个

8,n维数据的插值

x = -pi:pi; y = sin(x);

new_x = -pi:0.1:pi;

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

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

figure(3);

plot(x, y, 'o', new_x, p, 'r-')

如果是一维的,其实就和上面的一些等价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值