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语言的12个基础知识点小结
Jul 10 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python机器学习之贝叶斯分类
Mar 26 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
python设置随机种子实例讲解
Sep 12 Python
python中dict()的高级用法实现
Nov 13 Python
django2.2 和 PyMySQL版本兼容问题
Feb 17 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 Python
python字符串常规操作大全
May 02 Python
Python如何识别银行卡卡号?
Jun 10 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使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
在Python中使用Neo4j的方法
2019/03/14 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
运行时异常与一般异常有何异同?
2014/01/05 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
矫正人员思想汇报
2014/01/08 职场文书
活动邀请函范文
2014/01/19 职场文书
九年级政治教学反思
2014/02/06 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
小学班主任工作随笔
2015/08/15 职场文书
话题作文之成长
2019/12/09 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
Python字典的基础操作
2021/11/01 Python
浅谈Vue的computed计算属性
2022/03/21 Vue.js