scipy.interpolate.BSpline.

integrate#

BSpline.integrate(a, b, extrapolate=None)[source]#

计算样条函数的定积分。

参数:
afloat

积分下限。

bfloat

积分上限。

extrapolatebool 或 ‘periodic’,可选

是否在基本区间 t[k] .. t[-k-1] 外进行外推,或者将样条函数在基本区间之外设为零。如果为 ‘periodic’,则使用周期性外推。如果为 None(默认),则使用 self.extrapolate

返回:
Iarray_like

样条函数在区间 [a, b] 上的定积分。

示例

在基本区间 \([0, 2]\) 上构造线性样条函数 x if x < 1 else 2 - x 并对其进行积分

>>> from scipy.interpolate import BSpline
>>> b = BSpline.basis_element([0, 1, 2])
>>> b.integrate(0, 1)
array(0.5)

如果积分限在基本区间之外,结果将由 extrapolate 参数控制

>>> b.integrate(-1, 1)
array(0.0)
>>> b.integrate(-1, 1, extrapolate=False)
array(0.5)
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.grid(True)
>>> ax.axvline(0, c='r', lw=5, alpha=0.5)  # base interval
>>> ax.axvline(2, c='r', lw=5, alpha=0.5)
>>> xx = [-1, 1, 2]
>>> ax.plot(xx, b(xx))
>>> plt.show()
../../_images/scipy-interpolate-BSpline-integrate-1.png