scipy.interpolate.BSpline.basis_element¶
- classmethod BSpline.basis_element(t, extrapolate=True)[源代码]¶
返回B样条基元素
B(x | t[0], ..., t[k+1])
。- 参数
- tndarray,形状(k+2,)
内结
- extrapolate布尔值或‘周期性’,可选
是否在基准间隔之外进行外推,
t[0] .. t[k+1]
,或退还NANS。如果为‘PERIONAL’,则使用周期性外推。默认值为True。
- 退货
- basis_element可调用
表示结向量的B样条基元素的可调用 t 。
注意事项
B样条的阶数, k ,是从的长度推断出来的 t 作为
len(t)-2
。节点向量是通过附加和前缀来构造的k+1
元素到内部结 t 。示例
构造三次B样条曲线:
>>> from scipy.interpolate import BSpline >>> b = BSpline.basis_element([0, 1, 2, 3, 4]) >>> k = b.k >>> b.t[k:-k] array([ 0., 1., 2., 3., 4.]) >>> k 3
在上构造二次B样条
[0, 1, 1, 2]
,并与其显式形式进行比较:>>> t = [-1, 0, 1, 1, 2] >>> b = BSpline.basis_element(t[1:]) >>> def f(x): ... return np.where(x < 1, x*x, (2. - x)**2)
>>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots() >>> x = np.linspace(0, 2, 51) >>> ax.plot(x, b(x), 'g', lw=3) >>> ax.plot(x, f(x), 'r', lw=8, alpha=0.4) >>> ax.grid(True) >>> plt.show()