一、什么是插值?

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

二、常见的插值方法

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. 廖雪峰为你无门槛讲述高并发那些事
  2. FPGA的设计艺术(8)最佳的FPGA开发实践之严格遵循过程
  3. 走过13,展望14----希望是个好东西
  4. 从Config文件中读取节点的配置信息
  5. ABAP在ALV工具栏显示一个计时器
  6. 序列化加密字段_自动加密可序列化的类
  7. python2 python3 通信_python与USB通信
  8. android (三)、Activity工作原理
  9. 老罗Android开发视频教程
  10. 中国中小管理咨询公司现状
  11. 计算机主机硬件部分组成,台式电脑主机的硬件组成部分
  12. 组合数公式用C语言怎么算,排列组合c怎么算 公式是什么
  13. python怎么做计算题_用python做算术题
  14. 无监督re-ranker,Improving Passage Retrieval with Zero-Shot Question Generation
  15. 进阶篇:3.1)注塑件设计
  16. 解决fatal: could not get a repository handle
  17. iOS微信发布8.0.29版本,苹果14用户快来
  18. JavaScript数组内置方法-知识
  19. 读书笔记之张潇雨个人投资课
  20. 带你认识磁性材料及下游产品全球主流认证标识

热门文章

  1. 详解boost库中的Message Queue
  2. Chrome 浏览器插件之监控网页地址
  3. SAP 工单报工批次确定自动带出批次并拆分
  4. macbook安装免费vmware fusion
  5. 电容屏物体识别_浅谈多点电容屏物体识别,实物识别技术
  6. 大型体检系统源码,PEIS医院体检管理系统源码
  7. 微pe工具箱 系统安装教程_微PE工具箱安装系统教程(Win7或Win10)
  8. android iphone滑动解锁,苹果iOS10锁屏详解:“滑动来解锁”已成为过去
  9. 软件项目管理测试文档,软件项目管理具体方法体系示例
  10. 计算机变网络限速,电脑网速太慢?先别着急找运营商,修改这个限制瞬间变流畅...