当前位置: 首页 > article >正文

算法笔记:样条插值

1 什么是样条

  • 样条来源于早期工程制图,为了将一些固定点连成一条光滑的曲线,采用具有弹性的木条固定在这些点上
  • 通过样条画出来的曲线不仅经过各固定点,而且连续光滑

2 样条函数

  • 数学上定义成一个分段多项式函数
    • 每两个点之间用一个多项式来表示,这些多项式的阶数相同,但是系数是不一样的
    • 样条插值的目的就是求这些多项式系数,已知系数,那些中间点的值就能唯一确定了

线性样条

在每两点间画一条直线

 二次样条

三次样条

3 样条插值原理 

  • 连续
  • 光滑
  • 边界条件

下面以三次样条插值为例,假设(x_1,y_1),\cdots,(x_{n+1},y_{n+1})是已知的n+1个数据点,整个函数有a_1,b_1,c_1,d_1,\cdots,a_n,b_n,c_n,d_n这4n个未知数组成

若想求得这4n个未知系数,需要构建4n个方程

3.1 连续

  • 根据连续性原则,每个分段函数都经过其两侧端点
  • 因此,可得到2n个方程:

3.2 光滑性原则

  • 根据光滑性原则,相邻的两个分段函数连接处低阶导数相等
    • 对于三次样条来说,就是一阶导数和二阶导数

3.3 边界条件

  • 目前一共4n-2个方程,不足以得到4n个系数的解
  • 在公式(3)和(4)中,第1个点和第n+1个点在边界,只被使用了一次,导致整个方程组还差2个方程才能求解。
  • 此时,可以假设不同的边界条件来构成4n个方程。
  • 需要注意的是,不同的边界条件导致插值结果也有所不同。

Natural Spline

假设第1个和最后一个端点的二阶导为0

Not-a-Knot Spline

假设第一段和第二段函数的三阶导在端点处相等;第n-1段和第n段函数的三阶导在端点处也相等

Periodic Spline

最后一个分段函数的一阶段和二阶导于第一个分段的一阶导和二阶导相等

这种假设特别适合用在周期函数中,尤其是第一点与最后一点相等时

Quadratic Spline

强制第一个与最后一个分段函数的第一个系数为0

参考内容:样条插值(Spline Interpolation)-云社区-华为云 (huaweicloud.com)


http://www.kler.cn/a/158114.html

相关文章:

  • Android Studio Giraffe | 2022.3.1
  • Android studio中如何生成jar包?
  • Day38| Leetcode 509. 斐波那契数 Leetcode 70. 爬楼梯 Leetcode 746. 使用最小花费爬楼梯
  • 荣登百强!安全狗入选《中国网络安全企业100强(第十一版)》
  • CSS、JS文件无法正确加载至页面问题与解决
  • Java基础- 自定义类加载器
  • 【C++】atomic原子操作
  • Hadoop学习笔记(HDP)-Part.01 关于HDP
  • 编写高质量Python (第28条) 控制推导逻辑的字表达式不要超过两个
  • 【Linux】echo命令使用
  • Java——》JSONObjet 数据顺序
  • Upload-Labs-Linux
  • 工程化使用React
  • 前端知识笔记(二十一)———浏览器的缓存策略
  • 加强网站稳定性!学习如何进行高效压力测试!
  • 【矩阵论】Chapter 6—矩阵分解知识点总结复习(附Python实现)
  • 微机原理——定时器8253(8254)学习2应用与设计
  • RAG落地实践、AI游戏开发、上海·深圳·广州线下工坊启动!星河社区重磅周
  • 企业微信HOOK开发接口调用,发送语音消息
  • 如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问