评估样条曲线基函数的含义是什么?

时间:2019-05-25 04:35:52

标签: matlab interpolation quadratic-programming bspline basis

我试图了解实现bspline基本功能的工作流程。

tauf    Vd
0        0
0.048   502.8944826
0.072   743.5034753
0.096   791.2514106
0.12    825.3244319
0.144   858.1731717
0.168   889.1381766
0.192   922.4214306
0.216   952.9989296
0.24    982.8650001

basisValueMat_f的结果:

1.000   0.000   0.000   0.000   0.000   0.000
0.000   0.076   0.551   0.364   0.009   0.000
0.000   0.013   0.393   0.533   0.062   0.000
0.000   0.000   0.234   0.596   0.170   0.000
0.000   0.000   0.121   0.547   0.331   0.001
0.000   0.000   0.057   0.420   0.496   0.027
0.000   0.000   0.023   0.273   0.591   0.114
0.000   0.000   0.007   0.140   0.570   0.283
0.000   0.000   0.001   0.044   0.408   0.547
0.000   0.000   0.000   0.001   0.085   0.914
0.000   0.000   0.000   0.000   0.000   1.000

图形表示:

Chart

代码:

norder = 4;    % degree - 1
nbreaks = 2;
nbasis = nbreaks + norder - 2;
breaks = linspace(0,taufmax,nbreaks)';
wtaubasis = create_bspline_basis([0,max(breaks)], nbasis, norder, breaks);
basisValueMat_f = full(eval_basis(wtaubasis, tauf)); 

请帮助我了解create_bspline_basiseval_basis函数的作用。我需要对这些信息进行数学解释。

1 个答案:

答案 0 :(得分:2)

Basis functions类似于“构建块”,用于近似间隔中的函数。从图中可以看到,使用了几个基本函数来近似源函数。原始函数越复杂,在给定的误差下,就需要越多的基本函数对其进行近似。看一下这个动画,解释方波的Fourier series

enter image description here

傅立叶变换( FT ;在上面的动画中显示为蓝色S(f))显示的信息与图表的“切片”相同:

enter image description here

区别在于,在Wikipedia的FT示例中,基函数的大小(正弦和/或余弦)在整个时间间隔内都是恒定的,但在样条插值示例中,基函数的大小(即多项式) )在整个时间间隔内保持平稳变化。

最后,要回答您的问题,评估基函数可以告诉您在给定点(或间隔)中哪个是最主要的基函数。我可以想到的一种用法是-如果某个功能比其他功能要占主导地位(例如图表中“ 1”点的情况),则可以完全忽略“不重要”的功能,同时保持整体插值的公平准确-可能会有一些计算上的好处。