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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
浅谈Python 中整型对象的存储问题
May 16 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
python截取两个单词之间的内容方法
Dec 25 Python
python实现身份证实名认证的方法实例
Nov 08 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
浅析Python面向对象编程
Jul 10 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
python Selenium 库的使用技巧
Oct 16 Python
Python数据处理的三个实用技巧分享
Apr 01 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
php正则表达式使用的详细介绍
2013/04/27 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
WordPress中"无法将上传的文件移动至"错误的解决方法
2015/07/01 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python装饰器简单用法实例小结
2018/12/03 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
计算机学生的自我评价分享
2014/02/18 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
python编写函数注意事项总结
2021/03/29 Python
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
Redis高并发缓存架构性能优化
2022/05/15 Redis
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android