【问题标题】:What is the meaning of evaluating a spline's basis function?评估样条的基函数是什么意思?
【发布时间】:2019-05-25 04:35:51
【问题描述】:

我正在尝试了解实现 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

图形表示:

代码:

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 函数的作用。我需要对这些信息进行数学解释。

【问题讨论】:

    标签: matlab interpolation quadratic-programming bspline basis


    【解决方案1】:

    Basis functions 就像在区间内逼近函数的“积木”。正如您从图中看到的那样,使用了几个基函数来逼近您的源函数。原始函数越复杂,在给定误差的情况下近似它所需的基函数就越多。看看这个解释方波Fourier series的动画:

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

    不同之处在于,在维基百科的 FT 示例中,基函数(正弦和/或余弦)的大小在整个区间内是恒定的,但在您的样条插值示例中,基函数的大小(它们是多项式) ) 在整个区间内平滑变化。

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

    【讨论】:

      猜你喜欢
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      相关资源
      最近更新 更多