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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
Django实战之用户认证(初始配置)
Jul 16 Python
python3去掉string中的标点符号方法
Jan 22 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
Python实现获取当前目录下文件名代码详解
Mar 10 Python
python调用API接口实现登陆短信验证
May 10 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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 smarty模板引擎的6个小技巧
2014/04/24 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
js导出txt示例代码
2014/01/14 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
详解vue高级特性
2020/06/09 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
使用graphics.py实现2048小游戏
2015/03/10 Python
python 网络编程常用代码段
2016/08/28 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
python pandas 时间日期的处理实现
2019/07/30 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
pytorch简介
2020/11/11 Python
jQuery treeview树形结构应用
2021/03/24 jQuery
医学生求职信
2014/07/01 职场文书
结婚十年感言
2015/07/31 职场文书
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js