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爬取酷狗音乐排行榜
Feb 20 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
python实现电子书翻页小程序
Jul 23 Python
python 进程的几种创建方式详解
Aug 29 Python
python getpass模块用法及实例详解
Oct 07 Python
python 6行代码制作月历生成器
Sep 18 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
如何用python写个模板引擎
Jan 14 Python
详解python的xlwings库读写excel操作总结
Feb 26 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 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
PHP操作数组相关函数
2011/02/03 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
使用typescript构建Vue应用的实现
2019/08/26 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
基于Python log 的正确打开方式
2018/04/28 Python
python实现比较文件内容异同
2018/06/22 Python
Django实现跨域请求过程详解
2019/07/25 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
django项目中新增app的2种实现方法
2020/04/01 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
介绍一下MD5加密算法
2016/11/12 面试题
户外活动策划方案
2014/03/12 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
高三毕业寄语
2014/04/10 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python
浅谈MySQL中的六种日志
2022/03/23 MySQL