评估样条的基函数的意义是什么?
What is the meaning of evaluating a spline's basis function?
我正在尝试了解实现 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_basis
和 eval_basis
函数的作用。我需要对这些信息进行数学解释。
Basis functions are like "building blocks" for approximating functions in an interval. As you can see from your plot, several basis functions are used to approximate your source function. The more complex the original function, the more basis functions would be needed to approximate it with some given error. Take a look at this animation explaining the Fourier series方波:
傅里叶变换(FT;在上面的动画中显示为蓝色 S(f)
)显示与您的 "slice" 相同类型的信息图表:
不同之处在于,在维基百科的 FT 示例中,基函数(正弦 and/or 余弦)的幅值在整个区间内是恒定的,但在样条插值示例中,基函数的幅值(多项式)在整个区间内平滑变化。
最后,回答你的问题,评估基函数可以告诉你在给定点(或区间)哪个是最主要的基函数。我能想到的一种用途是 - 如果某些功能比其他功能更占主导地位(如图表中点“1”的情况),则可以完全忽略 "unimportant" 功能,同时保持整体插值相当准确 - 这可能有一些计算优势。
我正在尝试了解实现 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_basis
和 eval_basis
函数的作用。我需要对这些信息进行数学解释。
Basis functions are like "building blocks" for approximating functions in an interval. As you can see from your plot, several basis functions are used to approximate your source function. The more complex the original function, the more basis functions would be needed to approximate it with some given error. Take a look at this animation explaining the Fourier series方波:
傅里叶变换(FT;在上面的动画中显示为蓝色 S(f)
)显示与您的 "slice" 相同类型的信息图表:
不同之处在于,在维基百科的 FT 示例中,基函数(正弦 and/or 余弦)的幅值在整个区间内是恒定的,但在样条插值示例中,基函数的幅值(多项式)在整个区间内平滑变化。
最后,回答你的问题,评估基函数可以告诉你在给定点(或区间)哪个是最主要的基函数。我能想到的一种用途是 - 如果某些功能比其他功能更占主导地位(如图表中点“1”的情况),则可以完全忽略 "unimportant" 功能,同时保持整体插值相当准确 - 这可能有一些计算优势。