三次样条插值 实验_[数值计算] 样条插值

Background

前面提到,可以用合理选择插值点来避免Runge现象

YcoFlegs:[数值计算] 函数近似理论、Runge现象、Chebyshev点、Lesbegue常数​zhuanlan.zhihu.com

另一种流行的方法是,使用样条插值,分段处理。k阶样条插值可以连续可微k-1次。

还是以

为例:

566acb734f4c18e2bc4b08da69ac514a.png
一个trivial的情况是,线性样条,Credit to http://iacs-courses.seas.harvard.edu/courses/am205/schedule/

样条插值是CAD、矢量图、字体设计的基础之一,CAD软件使用的是NURB样条,而字体设计是Bezier样条。

三次样条

每一个分段上,都是一个三次函数。由于有连续的两阶导数,所以肉眼看上去是很光滑的。

a0cf3dfe9188cd7ea629642752e90c18.png
Credit to http://iacs-courses.seas.harvard.edu/courses/am205/schedule/

如果有n+1个节点

,那么一共有n个分段,即
4n个未知参数

其中每个分段两端的值已知,所以有n个分段,因此有2n个已知等式

剩下还要限制两个相邻分段在边界上的一阶和二阶导数连续,一共2*(n-1)个已知等式,因为只有n-1个边界

还剩下两个条件,有不同的方法来处理:

  • 自然三阶样条插值 Natural cubic spline,设置首尾的二阶导数为零:
  • Not-a-knot样条插值:
    以及
  • End Slope样条插值,加入了首尾的导数项:
    以及
  • 周期样条插值Periodic Spline,首尾的一二阶导数相等:
    以及

插值的基函数选取与系数求解

对于多项式拟合,需要选择基函数,通过求解Ax=B,计算基函数前面的系数。此处有n个区间,因此需要把n个区间组合起来,构成一个更大的Ax=B的问题,其中x是基函数们前面的系数组成的列向量。三次样条的一个区间有4个参数,因此,列向量的尺寸是(4n,1)。

之前在条件数里提到过,多项式拟合的时候选择monomial基函数

+ Vandermonde矩阵会出现条件数过高,而不稳定的情况。
YcoFlegs:[数值计算] 条件数​zhuanlan.zhihu.com

在计算样条插值的时候也要注意这个问题。如果插值区间数较少的情况下问题不会太明显。但随着插值区间数增多,需要选用更好的基函数,比如:

这组基函数是线性不相关的,这点可以通过展开c0~c3,得到系数矩阵来检查。比较好的性质是,

cb30e2c0e7193fb329c07b27ae4ec471.png
http://iacs-courses.seas.harvard.edu/courses/am205/notes/am205_cspline.pdf

对于具体的计算,有兴趣的可以参考Homework的Q4 (a-c)

AM205: Assignment 1​iacs-courses.seas.harvard.edu
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值