样条插值是常用的插值方法,用至多三次的多项式对样本点进行插值,满足曲线连续可微。以二维空间为例,常见的插值问题是,给定点列

其中

, 寻找适当的连续可微函数
使得
. 例如最常用的三次样条插值, 是假设
上是三次多项式
, 其中
系数待定, 在此区间上需要满足
过两个样本点, 且在两个端点是连续可微的, 即

对于三次多项式而言有4个系数待定, 而这四个方程刚好确定了四个系数, 就可以得到插值函数.

但有时候会遇到诸

并不是严格单调递增的,例如这些有序点列在平面上转了一个圈,那么就不能直接用上面的方法, 毕竟最后得到的并不是一个"函数"了 (例如可能存在
). 那么这样如何得到一条光滑的曲线穿过这串有序点列呢? 其实也很容易. 引入 单调递增的序列
, 构造新的两串有序点列

对这两个点列分别进行样条插值, 分别得到连续可微的插值函数

. 构造映射

那么

是一条连续可微的曲线.

下面是用Python实现的实例

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [4,4]
import scipy.interpolate as spix = [np.cos(k) for k in np.arange(0,2*np.pi, 2*np.pi / 8)]
y = [np.sin(k) for k in np.arange(0,2*np.pi, 2*np.pi / 8)]
w = [k for k in np.arange(0,2*np.pi, 2*np.pi / 8)]X = spi.splrep(w, x, k = 3)
Y = spi.splrep(w, y, k = 3)
W = [k for k in np.arange(0,2*np.pi - 2*np.pi / 8, 1e-4)]plt.plot(spi.splev(W,X), spi.splev(W,Y), label = 'Interpolation', c = 'black');
plt.scatter(x,y,label = 'Inital point', c = 'C0');
plt.legend()
plt.show()

平面有序点列的三次样条插值

python 插值_有序点列的样条插值相关推荐

  1. python 插值_三次样条插值在Python中的实现

    什么是三次样条插值 三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程. 实际计 ...

  2. python列表元组字符串都属于有序数列_列表、元组、字符串是Python的__________(有序、无序?)序列。...

    [简答题]朗读d教科书第35页"貿易レターコラム 消費価格値上げ再考のお願い"的李文,直接读标题,然后读"拝啓"和全文.注意作业提交截止日期. [多选题]以下语 ...

  3. python有序列表无序列表区别_用Python链表实现有序表与无序表

    用Python链表实现有序表与无序表 <数据结构与算法>MOOC(北大地空)课堂笔记 2020.4 by dlnb526 啥是链表 链表,顾名思义,顾名思义,链表像锁链一样,由一节节节点连 ...

  4. python ui bs_Guibs的Python学习_列表

    Guibs 的 Python学习_列表# 列表# 列表由一系列按特定顺序排列的元素组成, 其中元素和元素之间可以没有任何关系 # 在 Python 中, 用方括号 [] 来表示列表, 并用逗号 , 分 ...

  5. 线性插值插值_揭秘插值搜索

    线性插值插值 搜索算法指南 (Searching Algorithm Guide) Prior to this article, I have written about Binary Search. ...

  6. 拉格朗日插值_拉格朗日插值定理的理论基础

    缺失,几乎是不可避免的.只要做数据处理,不可避免的工作就是插值.而插值里面比较常用的方法之一就是拉格朗日插值法,这篇文章就跟大家讲讲拉格朗日插值的理论基础. 为什么需要进行插值 我们进行数据处理的理想 ...

  7. Python 进阶_生成器 生成器表达式

    目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...

  8. python基础_格式化输出(%用法和format用法)(转载)

    python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制 %d -- dec 十进制 %x -- hex 十六进制 ...

  9. python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号

    智慧树_大数据分析的python基础_搜题公众号 更多相关问题 社会公众可以查阅烟草专卖行政主管部门的监督检查记录.() 公民.法人或者其他组织不得利用自动售货机销售烟草制品.() 烟草广告中不得有下 ...

最新文章

  1. [转载]C#写的NoSQL开源项目/系统(系列)
  2. 疯狂java workflow_疯狂Workflow讲义:基于Activiti的工作流应用开发 完整pdf扫描版[136MB]...
  3. mysql行锁表怎么办_mysql - 表锁,行锁
  4. java基础50 配置文件类(Properties)
  5. Go:表驱动单元测试
  6. 【微软ALUM】当语言模型遇到对抗训练
  7. 线性代数【19】叉积
  8. 家庭网络拓扑结构示意图
  9. 【考试记录】Apsara Clouder基础技能认证:阿里巴巴编码规范(Java)
  10. MPChart饼图自定义图例
  11. Elliptic Curve Cryptography (ECC) and Pairings 椭圆曲线密码学与配对
  12. ClockGen超强的CPU超频工具
  13. python计算长方体体积最简单代码_C语言编程简单的小程序,计算长方体体积!...
  14. 互联网名词辨析:“顶”与“踩”
  15. 默然回首繁忙而充实的2016
  16. 探讨标准的采购外协“Subcontract”流程(一)
  17. 如何拍背景虚化的照片_3大方法,教你拍出虚化背景的拍摄技巧效果
  18. 中国长春西汀市场现状研究分析与发展前景预测报告(2022)
  19. boat启动器 minecraft_我的世界boat启动器下载-我的世界boat启动器最新版下载-37uu游游...
  20. 手机文件怎么与电脑同步

热门文章

  1. Android 不能勾选 Project Build Target
  2. C#基础知识---匿名方法使用
  3. Javascript创建对象几种方法解析
  4. 广搜最短路径变形,(POJ3414)
  5. uva_1422 Processor
  6. 【数据泵】EXPDP导出表结构
  7. 快速切题 cf118A
  8. Codeforces 405D 数学问题
  9. WinForm里ListBox实现加入项目,并且排序。
  10. mysql error 1130 hy000:Host ‘localhost‘ is not allowed to connect to this mysql server 解决方案