jax.numpy.trapezoid#
- jax.numpy.trapezoid(y, x=None, dx=1.0, axis=-1)[源代码]#
使用复合梯形法则沿给定轴积分。
numpy.trapezoid()
的 JAX 实现梯形法则通过求相邻数据点之间形成的梯形面积之和来近似曲线下的积分。
- 参数:
y (ArrayLike) – 要积分的数据数组。
x (类数组 | None) – 可选的采样点数组,对应于
y
值。如果未提供,则x
默认为等间距,间距由dx
给出。dx (类数组) – 当 x 为 None 时的采样点间距 (默认值:1.0)。
axis (int) – 沿其进行积分的轴 (默认值:-1)
- 返回:
通过梯形法则近似的定积分。
- 返回类型:
示例
在规则网格上积分,间距为 1.0
>>> y = jnp.array([1, 2, 3, 2, 3, 2, 1]) >>> jnp.trapezoid(y, dx=1.0) Array(13., dtype=float32)
在不规则网格上积分
>>> x = jnp.array([0, 2, 5, 7, 10, 15, 20]) >>> jnp.trapezoid(y, x) Array(43., dtype=float32)
近似计算 \(\int_0^{2\pi} \sin^2(x)dx\),其等于 \(\pi\)
>>> x = jnp.linspace(0, 2 * jnp.pi, 1000) >>> y = jnp.sin(x) ** 2 >>> result = jnp.trapezoid(y, x) >>> jnp.allclose(result, jnp.pi) Array(True, dtype=bool)