Python实现线性插值和三次样条插值的示例代码


Posted in Python onNovember 13, 2019

(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 plt
 
plt.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实现线性插值和三次样条插值的示例代码

Python实现线性插值和三次样条插值的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python输出9*9乘法表的方法
May 25 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python程序退出方式小结
Dec 09 Python
python学生信息管理系统
Mar 13 Python
python检索特定内容的文本文件实例
Jun 05 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 Python
Python坐标线性插值应用实现
Nov 13 #Python
python如果快速判断数字奇数偶数
Nov 13 #Python
Python 异步协程函数原理及实例详解
Nov 13 #Python
python文字转语音实现过程解析
Nov 12 #Python
python文字转语音的实例代码分析
Nov 12 #Python
Python上下文管理器全实例详解
Nov 12 #Python
python3-flask-3将信息写入日志的实操方法
Nov 12 #Python
You might like
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php定界符
2014/06/19 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
python SMTP实现发送带附件电子邮件
2018/05/22 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
网上快餐厅创业计划书
2014/02/01 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
社区植树节活动总结
2015/02/06 职场文书
中学音乐课教学反思
2016/02/18 职场文书
高质量“欢迎词”
2019/04/03 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB