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 07 Python
使用Python生成url短链接的方法
May 04 Python
python中学习K-Means和图片压缩
Nov 20 Python
Python利用openpyxl库遍历Sheet的实例
May 03 Python
django 外键model的互相读取方法
Dec 15 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
python类共享变量操作
Sep 03 Python
python中round函数保留两位小数的方法
Dec 04 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 Python
利用python实现后端写网页(flask框架)
Feb 28 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
Python生成不重复随机值的方法
2015/05/11 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
幼儿教师演讲稿
2014/05/06 职场文书
大气污染防治方案
2014/05/19 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
迎新生标语大全
2014/10/06 职场文书
2014年财政所工作总结
2014/11/22 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript
Python制作表白爱心合集
2022/01/22 Python