scipy.interpolate.BSpline.from_power_basis

classmethod BSpline.from_power_basis(pp, bc_type='not-a-knot')[源代码]

由幂基中的分段多项式构造B样条基中的多项式。

目前,接受 CubicSpline 仅限实例。

参数
ppCubicSpline

幂基中的分段多项式,如由 CubicSpline

bc_type字符串,可选

边界条件类型,如中 CubicSpline :其中一个 not-a-knotnaturalclamped ,或 periodic 。构造一个实例所必需的 BSpline 班级。默认值为 not-a-knot

退货
bB样条线对象

用B样条基表示初始多项式的一个新实例。

注意事项

1.8.0 新版功能.

仅接受 CubicSpline 目前的实例。

该算法是根据对Marsden恒等式的判别而得出的 [1] :B样条基中的样条插值函数的每个系数计算如下:

\[c_j=\sum_{m=0}^{k}\frac{(k-m)!}{k!} C_{m,i}(-1)^{k-m}D^mp_{j,k}(Xi)\]

\(c_{{m, i}}\) -三次样条的系数, \(D^m p_{{j, k}}(x_i)\) -中对偶多项式的第m次违逆 \(x_i\)

k 现在总是等于3。

第一 n - 2 系数的计算单位为 \(x_i = x_j\) ,例如

\[c_1=\sum_{m=0}^{k}\frac{(k-1)!}{k!}c_{m,1}D^m p_{j,3}(X_1)\]

最后的 nod + 2 系数的计算单位为 x[-2]nod -末端的衍生品数量。

例如,考虑 \(x = [0, 1, 2, 3, 4]\)\(y = [1, 1, 1, 1, 1]\) 和BC_TYPE= natural

三次样条在幂基中的系数:

\([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [1, 1, 1, 1, 1]]\)

结向量: \(t = [0, 0, 0, 0, 1, 2, 3, 4, 4, 4, 4]\)

在这种情况下

\[C_j=\frac{0!}{k!}c_{3,i}k!=c_{3,i}=1,~j=0,.,6\]

参考文献

1

Tom Lyche和Knut Morken,Spline Methods,2005,第3.1.2节