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()