算法笔记:样条插值

1 什么是样条

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

2 样条函数

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

|---------------|--------------------------------------------------------------------------------------------------------------|
| #### 线性样条 | 在每两点间画一条直线 |
| #### 二次样条 | |
| #### 三次样条 | |

3 样条插值原理

  • 连续
  • 光滑
  • 边界条件

下面以三次样条插值为例,假设是已知的n+1个数据点,整个函数有这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)

相关推荐
志尊宝2 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
沪上企服通3 小时前
历史账套科目重映射与规则版本重算:旧账梳理的“口径复位”工程
笔记·架构
Go Work8 小时前
2026 Cadence SPB 24.1中文版安装图文详解(附安装包)
经验分享·笔记
ACP广源盛139246256738 小时前
HDMI2.0 转 DP1.4 桥接方案评估:国产 GSV2125C@ACP 芯片选型笔记
笔记·硬件架构·hdmi·type-c·国产芯片
龙仔7258 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记
悟乙己9 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
PC2005-cloud9 小时前
MySQL学习笔记:GTID 主从复制,从原理到实践,告别传统 Binlog+Position 的痛点
笔记·学习·mysql
悟乙己11 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:关联技术(二)
笔记·学习·金融
yi01112 小时前
LeetCode 424. 替换后的最长重复字符|不定长滑动窗口:如何判断窗口是否合法?
笔记·python·算法·leetcode·双指针·滑动窗口
杨逢昌工厂6S管理12 小时前
116——杨逢昌:归位三定闭环法的旺季轻量化执行方案与工具清单
经验分享·笔记·职场和发展·学习方法