jax.numpy.trapezoid#
- jax.numpy.trapezoid(y, x=None, dx=1.0, axis=-1)[原始碼]#
使用複合梯形法則沿給定軸積分。
JAX 實作的
numpy.trapezoid()
梯形法則透過加總相鄰資料點之間形成的梯形面積,來近似曲線下的積分。
- 參數:
y (ArrayLike) – 要積分的資料陣列。
x (ArrayLike | None) – 對應於
y
值的取樣點可選陣列。如果未提供,x
預設為等間距,間距由dx
給定。dx (ArrayLike) – 當 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)