Python实现线性插值和三次样条插值
文章目录
- (1)、函数
- (2)、数据准备
- (3)、样条插值
- (4)、绘图
- (5)、综合代码
- (6)、结果展示
关于Python数据分析在数学建模中的更多相关应用:Python数据分析在数学建模中的应用汇总(持续更新中!)
(1)、函数
y = sin(x)
(2)、数据准备
#数据准备
X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1
Y= np.sin(X)#定义样本点Y,形成sin函数
new_x=np.arange(-np.pi,np.pi,0.1) #定义差值点
(3)、样条插值
#进行样条差值
import scipy.interpolate as spi#进行一阶样条插值
ipo1=spi.splrep(X,Y,k=1) #样本点导入,生成参数
iy1=spi.splev(new_x,ipo1) #根据观测点和样条参数,生成插值#进行三次样条拟合
ipo3=spi.splrep(X,Y,k=3) #样本点导入,生成参数
iy3=spi.splev(new_x,ipo3) #根据观测点和样条参数,生成插值
(4)、绘图
##作图
fig,(ax1,ax2)=plt.subplots(2,1,figsize=(10,12))ax1.plot(X,Y,'o',label='样本点')
ax1.plot(new_x,iy1,label='插值点')
ax1.set_ylim(Y.min()-1,Y.max()+1)
ax1.set_ylabel('指数')
ax1.set_title('线性插值')
ax1.legend()ax2.plot(X,Y,'o',label='样本点')
ax2.plot(new_x,iy3,label='插值点')
ax2.set_ylim(Y.min()-1,Y.max()+1)
ax2.set_ylabel('指数')
ax2.set_title('三次样条插值')
ax2.legend()
(5)、综合代码
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号#数据准备
X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1
Y= np.sin(X)#定义样本点Y,形成sin函数
new_x=np.arange(-np.pi,np.pi,0.1) #定义差值点#进行样条差值
import scipy.interpolate as spi#进行一阶样条插值
ipo1=spi.splrep(X,Y,k=1) #样本点导入,生成参数
iy1=spi.splev(new_x,ipo1) #根据观测点和样条参数,生成插值#进行三次样条拟合
ipo3=spi.splrep(X,Y,k=3) #样本点导入,生成参数
iy3=spi.splev(new_x,ipo3) #根据观测点和样条参数,生成插值##作图
fig,(ax1,ax2)=plt.subplots(2,1,figsize=(10,12))ax1.plot(X,Y,'o',label='样本点')
ax1.plot(new_x,iy1,label='插值点')
ax1.set_ylim(Y.min()-1,Y.max()+1)
ax1.set_ylabel('指数')
ax1.set_title('线性插值')
ax1.legend()ax2.plot(X,Y,'o',label='样本点')
ax2.plot(new_x,iy3,label='插值点')
ax2.set_ylim(Y.min()-1,Y.max()+1)
ax2.set_ylabel('指数')
ax2.set_title('三次样条插值')
ax2.legend()
(6)、结果展示
Python实现线性插值和三次样条插值相关推荐
- 拉格朗日插值、分段线性插值、三次样条插值
本篇主要介绍在三种插值方法:拉格朗日插值.分段线性插值.三次样条插值,以及这三种方法在matlab中如何实现. 1.拉格朗日插值: 1.1基本原理:先构造一组基函数: 是次 ...
- python时间序列进行线性插值_Python实现线性插值和三次样条插值
(1).函数 y = sin(x) (2).数据准备 #数据准备 X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1 Y= np.sin(X)#定义样本点 ...
- 【20220207】【信号处理】三次样条插值原理详解
方程组的求解本文不做介绍. 一.三次样条插值 1. 定义 三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解 ...
- 利用MatLab对数据进行插值计算(分段插值和三次样条插值)
利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...
- 数学建模十大算法02—插值与拟合(拉格朗日插值、三次样条插值、线性最小二乘法……)
文章目录 引入 一.插值 1.1 分段线性插值 1.2 牛顿插值法 1.3 拉格朗日插值多项式 1.4 样条插值 1.4.1 三次样条插值 1.5 二维插值 1.5.1 插值节点为网格节点 1.5.2 ...
- python 插值_三次样条插值在Python中的实现
什么是三次样条插值 三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程. 实际计 ...
- aitken插值方法的c++代码_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...
自动驾驶运动规划(Motion Planning)是无人驾驶汽车的核心模块之一,它的主要任务之一就是如何生成舒适的.碰撞避免的行驶路径和舒适的运动速度.生成行驶路径最经典方法之一就是是Sampling ...
- python开三次方_python实现三次样条插值
本文实例为大家分享了python实现三次样条插值的具体代码,供大家参考,具体内容如下 函数: 算法分析 三次样条插值.就是在分段插值的一种情况. 要求: 在每个分段区间上是三次多项式(这就是三次样条中 ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
最新文章
- 八城联动 丨 神策 2020 数据驱动用户大会「杭州站」邀您赴约!
- JavaScript eval() 函数
- C/C++ 之 C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)
- 小学三年级上册计算机计划,小学三年级数学上册教学计划
- 批处理学习之Bat命令——获取当前盘符、当前目录、上级目录
- littlevgl之roller 滚动轴控件
- java堆排序递归代码,无原理版,比较好理解
- 运筹说 第19期 | 线性规划经典例题讲解
- react Hook useReducer()和useContext()实现Redux效果
- 缓慢的 HTTP 的拒绝服务攻击
- 如何在 HTML中使用图标字体
- Ubuntu动态壁纸
- 鸿蒙系统,鸿蒙app简易登录界面,界面开发教程
- ctags中−−−kinds=[+|−]kinds的使用
- “阿里/字节“大厂自动化测试面试题一般会问什么?以及技巧和答案
- 唱响艾泽拉斯_职业篇
- 积分与微分电路 (转)
- 微信小程序中实现瀑布流
- 我用 Python 找出了删除我微信的所有人并将他们自动化删除了
- 3G行业门户到底是神马东西