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中映射类型的内建函数和工厂函数
Aug 19 Python
python操作字典类型的常用方法(推荐)
May 16 Python
python基础教程之分支、循环简单用法
Jun 16 Python
Python正则捕获操作示例
Aug 19 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python通用函数实现数组计算的方法
Jun 13 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
python如何使用Redis构建分布式锁
Jan 16 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 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共享内存用法实例分析
2016/02/12 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
jquery 选择器部分整理
2009/10/28 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
vue实现五子棋游戏
2020/05/28 Javascript
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python如何修改装饰器中参数
2018/03/20 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
django从后台返回html代码的实例
2020/03/11 Python
利用python在excel中画图的实现方法
2020/03/17 Python
python 基于opencv实现图像增强
2020/12/23 Python
python如何调用php文件中的函数详解
2020/12/29 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
为什么需要版本控制?
2013/08/08 面试题
迟到检讨书900字
2014/01/14 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
应聘会计求职信
2014/06/11 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
新年晚会开场白
2015/05/29 职场文书
获奖感言怎么写
2015/07/31 职场文书