文章目录

  • (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实现线性插值和三次样条插值相关推荐

  1. 拉格朗日插值、分段线性插值、三次样条插值

    本篇主要介绍在三种插值方法:拉格朗日插值.分段线性插值.三次样条插值,以及这三种方法在matlab中如何实现. 1.拉格朗日插值: 1.1基本原理:先构造一组基函数:               是次 ...

  2. python时间序列进行线性插值_Python实现线性插值和三次样条插值

    (1).函数 y = sin(x) (2).数据准备 #数据准备 X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1 Y= np.sin(X)#定义样本点 ...

  3. 【20220207】【信号处理】三次样条插值原理详解

    方程组的求解本文不做介绍. 一.三次样条插值 1. 定义 三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解 ...

  4. 利用MatLab对数据进行插值计算(分段插值和三次样条插值)

    利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...

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

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

  6. python 插值_三次样条插值在Python中的实现

    什么是三次样条插值 三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程. 实际计 ...

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

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

  8. python开三次方_python实现三次样条插值

    本文实例为大家分享了python实现三次样条插值的具体代码,供大家参考,具体内容如下 函数: 算法分析 三次样条插值.就是在分段插值的一种情况. 要求: 在每个分段区间上是三次多项式(这就是三次样条中 ...

  9. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

最新文章

  1. 八城联动 丨 神策 2020 数据驱动用户大会「杭州站」邀您赴约!
  2. JavaScript eval() 函数
  3. C/C++ 之 C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)
  4. 小学三年级上册计算机计划,小学三年级数学上册教学计划
  5. 批处理学习之Bat命令——获取当前盘符、当前目录、上级目录
  6. littlevgl之roller 滚动轴控件
  7. java堆排序递归代码,无原理版,比较好理解
  8. 运筹说 第19期 | 线性规划经典例题讲解
  9. react Hook useReducer()和useContext()实现Redux效果
  10. 缓慢的 HTTP 的拒绝服务攻击
  11. 如何在 HTML中使用图标字体
  12. Ubuntu动态壁纸
  13. 鸿蒙系统,鸿蒙app简易登录界面,界面开发教程
  14. ctags中−−−kinds=[+|−]kinds的使用
  15. “阿里/字节“大厂自动化测试面试题一般会问什么?以及技巧和答案
  16. 唱响艾泽拉斯_职业篇
  17. 积分与微分电路 (转)
  18. 微信小程序中实现瀑布流
  19. 我用 Python 找出了删除我微信的所有人并将他们自动化删除了
  20. 3G行业门户到底是神马东西

热门文章

  1. 深度解读《中国智能经济发展白皮书》:AI为核心驱动力,百度给出智能范式
  2. Top10响应式手机网页开发软件
  3. 大数据时代对存储发展需要哪些要求
  4. stack Overflow 的使用
  5. 六派巨量转移技术概述
  6. 【FI】SAP 付款及清账
  7. linux 开发工具集合
  8. 图中几个常见算法总结
  9. 用Wireshark抓包分析协议 计算机网络
  10. 为什么8G运行内存的电脑,开几个WORD文档,运行内存就被占满了,WPS很占用内存吗