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中index()和seek()的用法(详解)
Apr 27 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
Python常见数据类型转换操作示例
May 08 Python
利用python计算时间差(返回天数)
Sep 07 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
Python爬取某平台短视频的方法
Feb 08 Python
解决python的空格和tab混淆而报错的问题
Feb 26 Python
tensorflow中的数据类型dtype用法说明
May 26 Python
pytorch 实现在测试的时候启用dropout
May 27 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利用cookie实现访问次数统计代码
2011/05/19 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php修改数组键名的方法示例
2017/04/15 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
页面中js执行顺序
2009/11/09 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
python 算法 排序实现快速排序
2012/06/05 Python
python编写暴力破解FTP密码小工具
2014/11/19 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python中按值来获取指定的键
2019/03/04 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
教育学习自我评价
2014/02/03 职场文书
寒假家长评语大全
2014/04/16 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
MySQL之DML语言
2021/04/05 MySQL