scipy.interpolate.

InterpolatedUnivariateSpline#

class scipy.interpolate.InterpolatedUnivariateSpline(x, y, w=None, bbox=[None, None], k=3, ext=0, check_finite=False)[source]#

给定一组数据点的一维插值样条。

将程度为 k 的样条 y = spl(x) 拟合到提供的 xy 数据。样条函数通过所有提供的数据点。 等效于 s = 0 的 UnivariateSpline

参数:
x(N,) array_like

数据点输入尺寸——必须严格递增

y(N,) array_like

输入数据点的维度

w(N,) array_like, optional

用于样条拟合的权重。必须为正数。如果为 None(默认值),则所有权重均为 1。

bbox(2,) array_like, optional

指定逼近区间的边界的 2 序列。如果为 None(默认值),bbox=[x[0], x[-1]]

kint, optional

平滑样条的度。必须为1 <= k <= 5。默认值为 k = 3,即三次样条。

extint 或 str, optional

控制结点序列定义的区间的元素的推算模式。

  • 如果 ext=0 或 ‘extrapolate’,返回推算出的值。

  • 如果 ext=1 或 ‘zeros’,返回 0

  • 如果 ext=2 或 ‘raise’,引发 ValueError

  • 如果 ext=3 of ‘const’,返回边界值。

默认值为 0。

check_finitebool, optional

是否检查输入数组仅包含有限数。禁用可能提高性能,但如果输入确实包含无穷大或 NaN,可能会导致问题(崩溃、不终止或不合理的结果)。默认值为 False。

另请参见

UnivariateSpline

平滑单变量样条,用于拟合给定的一组数据点。

LSQUnivariateSpline

用户选择的结点的样条

SmoothBivariateSpline

经过给定点的平滑双变量样条

LSQBivariateSpline

双变量样条,使用加权最小二乘拟合

splrep

一个函数,用于查找 1-D 曲线的 B 样条表示形式

splev

一个函数,用于求解 B 样条或其导数

sproot

一个函数,用于查找三次 B 样条的根

splint

一个函数,用于求解 B 样条在两个给定点之间的定积分

spalde

一个函数,用于求解 B 样条的所有导数

注释

数据点的数量必须大于样条度 k

示例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.interpolate import InterpolatedUnivariateSpline
>>> rng = np.random.default_rng()
>>> x = np.linspace(-3, 3, 50)
>>> y = np.exp(-x**2) + 0.1 * rng.standard_normal(50)
>>> spl = InterpolatedUnivariateSpline(x, y)
>>> plt.plot(x, y, 'ro', ms=5)
>>> xs = np.linspace(-3, 3, 1000)
>>> plt.plot(xs, spl(xs), 'g', lw=3, alpha=0.7)
>>> plt.show()
../../_images/scipy-interpolate-InterpolatedUnivariateSpline-1_00_00.png

请注意,spl(x)内插y

>>> spl.get_residual()
0.0

方法

__call__(x[, nu, ext])

在位置 x 求解样条(或其第 nu 阶导数)。

antiderivative([n])

构造表示此样条函数的导函数的新样条函数。

derivative([n])

构造表示此样条函数的导函数的新样条函数。

derivatives(x)

返回样条函数在点 x 处的导数。

get_coeffs()

返回样条函数的系数。

get_knots()

返回样条函数内部节点的位置。

get_residual()

返回样条函数逼近的平方残差的加权和。

integral(a, b)

返回两个给定点之间的样条函数定积分。

roots()

返回样条函数的零点。

set_smoothing_factor(s)

使用给定的平滑因子 s 并使用上次调用中找到的节点继续样条函数计算。

validate_input