cupyx.scipy.interpolate.make_interp_spline#

cupyx.scipy.interpolate.make_interp_spline(x, y, k=3, t=None, bc_type=None, axis=0, check_finite=True)[source]#

计算插值 B 样条(的系数)。

参数:
  • x (array_like, 形状 (n,)) – 横坐标。

  • y (array_like, 形状 (n, ...)) – 纵坐标。

  • k (int, 可选) – B 样条次数。默认为三次,k = 3

  • t (array_like, 形状 (nt + k + 1,), 可选。) – 节点。节点的数量需要与数据点的数量以及边缘处的导数数量一致。具体来说,nt - n 必须等于 len(deriv_l) + len(deriv_r)

  • bc_type (2 元组None) –

    边界条件。默认为 None,表示自动选择边界条件。否则,它必须是一个长度为二的元组,其中第一个元素 (deriv_l) 设置在 x[0] 处的边界条件,第二个元素 (deriv_r) 设置在 x[-1] 处的边界条件。这些元素中的每一个都必须是一个可迭代的对列表 (order, value),给出在插值区间的给定边缘处的指定阶导数的值。此外,还支持以下字符串别名

    • "clamped":两端的第一个导数为零。这

      等价于 bc_type=([(1, 0.0)], [(1, 0.0)])

    • "natural":两端的第二个导数为零。这等价于 bc_type=([(2, 0.0)], [(2, 0.0)])

    • "not-a-knot" (默认):第一个和第二个分段是相同的多项式。这等价于设置 bc_type=None

    • "periodic":两端的值和前 k-1 个导数是等价的。

  • axis (int, 可选) – 插值轴。默认为 0。

  • check_finite (bool, 可选) – 是否检查输入数组只包含有限数。禁用此选项可能会提高性能,但如果输入包含无穷大或 NaNs,可能会导致问题(崩溃、无法终止)。默认为 True。

返回:

b

返回类型:

一个 BSpline 对象,次数为 k,节点为 t