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-knot
,natural
,clamped
,或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节