一、什么是插值?

已知部分离散的数据点,但不知道满足这些数据点的函数表达式,插值、拟合都是寻找对应点的函数表达式。区别在于,插值函数是通过这些点,而拟合是要求形似而不要求穿过已知数据点。

二、常见的插值方法

1.拉格朗日插值

2.埃尔米特插值(插值多项式在插值节点上函数值相等,再节点上的导数值也相等)

3.分段低次插值:

它的提出是由于高次插值的病态性质:从拉格朗日插值的余项可以看出。当节点增加且l(x)的次数n增加时,l(x)逼近f(x)的精度就越好,但实际并非如此。当n趋于无穷大的时候,l(n)不一定收敛到f(x).并且函数曲线会出现剧烈的振荡,即龙格现象。

for i=3:2:11
x=linspace(-1,1,i);
y=1./(1+25*x.^2);
p=polyfit(x,y,i-1);
xx=-1:0.01:1;
yy=polyval(p,xx);
plot(xx,yy,'b');
hold on;
grid on;
end;
plot(x,1./(1+25*x.^2),'r');

结果:

4. 三次样条插值:

对于分段低次插值函数都有一致收敛性,但光滑度较差,对于像高速飞机的机翼形状、船体放样灯型值线往往需要有二阶光滑度。三次样条插值函数就是把已知数据分割成若干个小区间,在每个小区间上都是三次多项式,并且一阶导数连续,二阶导数连续,函数值也连续。

疑问?为什么会有边界条件?(我们这篇博文写的是确定n+1个点的三次样条插值多项式)

由于三次样条插值函数在每个小区间上是三次多项式,所以在每个小区间上有四个待定参数,n+1个节点n个区间,所以有4n个参数,而根据插值条件和一次连续可微所含的条件有4n-2个条件,因此还要加两个两个条件,即边界条件。

三、详细推导过程

(一)   设出S(x)函数

(二) S(x)的二阶导连续

(三)边界条件

(四)由于S(x)的二阶导数为线性函数形式简单。可以设出二阶导数的表达式,然后再积分两次就可以得到S(x)的表达式再求出参数

 两次积分最后整理:

再利用一阶导数连续求M:

 整理可得

上面给出了含有n+1个参数 的n-1个方程,下面利用边界条件再给出2个方程

 第一种边界条件下可解出求解M的n阶方程组为: 

第二种边界条件下可解出求解M的n-1阶方程组为

第三种边界条件:

 求解利用追赶法。

四、python代码:

import matplotlib.pyplot as plt
import pandas as pd
from scipy import interpolat
data = pd.read_excel('C:/Users/bwy/Desktop/三样条.xlsx')
x = data['x']  # 取第一列数据
y = data['value']  # 取第二列数据
# 进行样条插值
tck = interpolate.splrep(x,y)
xx = np.linspace(min(x),max(x),100)
yy = interpolate.splev(xx,tck,der=0)
print(yy)
plt.plot(x,y,'o',xx,yy)
plt.show()

结果:

三次样条插值证明过程及代码实现相关推荐

  1. aitken插值方法的c++代码_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...

    自动驾驶运动规划(Motion Planning)是无人驾驶汽车的核心模块之一,它的主要任务之一就是如何生成舒适的.碰撞避免的行驶路径和舒适的运动速度.生成行驶路径最经典方法之一就是是Sampling ...

  2. 滑动轨迹 曲线 python_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...

    自动驾驶运动规划(Motion Planning)是无人驾驶汽车的核心模块之一,它的主要任务之一就是如何生成舒适的.碰撞避免的行驶路径和舒适的运动速度.生成行驶路径最经典方法之一就是是Sampling ...

  3. 【matlab】三次埃尔米特插值与三次样条插值的实际应用代码

    要求:完成下列这些数据的插值,并将结果保存到一个EXCEL表格中.要求至少选取两种插值方法,并对1号池中的这些指标做出插值后图像(显示在同一个图像中) Z.mat load Z.mat x=Z(1,: ...

  4. Matlab数值分析实例:三次样条插值

    Matlab数值分析实例:三次样条插值 任务要求 分析 代码实现 总结 任务要求 湖水在夏天会出现分层现象,接近湖面温度较高,越往下温度变低.这种上热下冷的现象影响了水的对流和混合过程,使得下层水域缺 ...

  5. 【插值】牛顿插值、拉格朗日插值、三次样条插值的Python代码实现

    插值简介 插值即根据有限的离散点绘制出穿过所有样本点的曲线,从直观上想象似乎画一条穿过n个特定点的曲线有无数种画法,但从数学意义上来说我们希望画出的曲线能够尽量平滑,震荡幅度尽量小能够在非样本点上符合 ...

  6. 三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)

    样条插值是一种工业设计中常用的.得到平滑曲线的一种插值方法,三次样条又是其中用的较为广泛的一种.本篇介绍力求用容易理解的方式,介绍一下三次样条插值的原理,并附C语言的实现代码. 1. 三次样条曲线原理 ...

  7. MATLAB代码实现三次样条插值

    参照<数值分析 第五版(李庆扬)>P42 2.6.2样条插值函数的建立 目的是可以通过读取文本文件中提前存储的坐标点,来实现三边界种类型的三次样条插值 F.m function resul ...

  8. Spline(三次样条插值)

    关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...

  9. python三次样条插值拟合的树行线_数学建模笔记——插值拟合模型(一)

    啊好像距离上次写作又过了七天,啊好像我之前计划的一周两三篇,啊辣鸡小说毁我青春,啊我是一只可怜的鸽子. 不管怎样,我又回来了,并坚定地更新着hhh.再过两三天就是我们学校数学建模选拔,再过八九天就是期 ...

  10. 数学建模十大算法02—插值与拟合(拉格朗日插值、三次样条插值、线性最小二乘法……)

    文章目录 引入 一.插值 1.1 分段线性插值 1.2 牛顿插值法 1.3 拉格朗日插值多项式 1.4 样条插值 1.4.1 三次样条插值 1.5 二维插值 1.5.1 插值节点为网格节点 1.5.2 ...

最新文章

  1. 综述:AI系统安全的实用方法介绍
  2. Alpha多样性稀释曲线rarefraction curve还不会画吗?快看此文
  3. 32位oracle_Oracle 之Hugepage
  4. java poi 读取xlsx文件_使用POI读取xlsx文件(SXSSFWorkbook)
  5. Sync 攻击原理及防范技术
  6. cgroup代码浅析(2)
  7. Linux(CenterOS 6.4)下安装jdk1.6
  8. 根据Uri获取文件的绝对路径
  9. C#中的 Stream
  10. ad09只在一定范围内查找相似对象_重磅!Excel更新了超级查找函数XLOOKUP,可以对VLOOKUP说拜拜了...
  11. php----显示中文乱码的问题
  12. 查看手机已经记住的WIFI密码
  13. 用Java打印菱形(奇数行菱形)
  14. 人工智能必备知识储备之“数学篇”
  15. SPSS中的数据分析—信度效度检验【2】
  16. C语言零基础项目:打字母游戏!详细思路+源码分享
  17. 移动IM产品发展史及趋势预测
  18. MBA 消费者行为学 大白兔故事以及换装变化给老字号的启示
  19. 闯关创业板的宝宝巴士:早教公司的面子,广告公司的里子
  20. 开源项目扮演的角色_适用于Linux的5种开源角色扮演游戏

热门文章

  1. MapReduce程序之Index串联案例
  2. C++实现金山打字通助手
  3. electron仿制百度网盘客户端2(登录界面制作)
  4. mac 用 VMware Fusion 安装 ubuntu
  5. stm32h743单片机嵌入式学习笔记2-单片机获取电容触摸屏原理
  6. mysql-front服务器_mysql-front远程连接自己linux服务器上的mysql服务器
  7. 免费搭建无限容量个人网盘
  8. Hadoop版本区别Hadoop组成
  9. 系统讲解一下整站SEO优化都涉及到哪些工作?
  10. iTween使用小坑