SciPy - integrate.cumulative_simpson() 方法



SciPy integrate.cumulative_simpson() 方法用于通过考虑单个点与两个相邻点之间的二次关系来计算每一对点处的坐标。

语法

以下是 SciPy integrate.cumulative_simpson() 方法的语法:-

cumulative_simpson(var1, var2)
or,
cumulative_simpson(var1, var2, sample_point)

参数

此方法接受以下参数:-

  • var1:此参数用于表示各种内置函数,如 linspace()、sin() 等。
  • var2:此参数表示简单的数学计算。
  • sample_point:此可选参数用于坐标/采样点。

返回值

此方法以两种不同的形式返回结果,分别是值列表和 matplotlib 图形。

示例 1

以下是演示 SciPy integrate.cumulative_simpson() 方法用法的一个基本示例。

from scipy import integrate
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2, 2, num=10)
y = x**2
y_int = integrate.cumulative_simpson(y, x=x, initial=0)
fig, ax = plt.subplots()
ax.plot(x, y_int, 'go', x, x**3/3 - (x[0])**3/3, 'b-')
ax.grid()
plt.show()

输出

上述代码生成以下结果:-

scipy_cumulative_simpson_one

示例 2

该程序使用 sin() 函数计算 0 到 2pi 区间上的采样(坐标)点,其中两点之间的间隔设置为 0.1。使用 cumulative_simpson() 方法后,结果被存储为列表。

import numpy as np
from scipy.integrate import cumulative_simpson

# declare y and dx values
y = np.sin(np.linspace(0, 2 * np.pi, 50))
dx = 0.1 # spacing between element of y

# operation on cumulative integral
cum_integral = cumulative_simpson(y, dx=dx)

print(cum_integral)

输出

上述代码生成以下结果:-

[ 6.41135591e-03  2.55054410e-02  5.70028694e-02  1.00353446e-01
  1.54876692e-01  2.19648187e-01  2.93630869e-01  3.75586562e-01
  4.64189453e-01  5.57968599e-01  6.55396160e-01  7.54864639e-01
  8.54744106e-01  9.53395658e-01  1.04919389e+00  1.14057569e+00
  1.22602649e+00  1.30416123e+00  1.37367525e+00  1.43345212e+00
  1.48248242e+00  1.51999138e+00  1.54533088e+00  1.55811848e+00
  1.55810972e+00  1.54533951e+00  1.51998305e+00  1.48249033e+00
  1.43344475e+00  1.37368194e+00  1.30415533e+00  1.22603152e+00
  1.14057163e+00  1.04919692e+00  9.53393703e-01  8.54744950e-01
  7.54864920e-01  6.55394758e-01  5.57971098e-01  4.64185897e-01
  3.75591116e-01  2.93625392e-01  2.19654498e-01  1.54869651e-01
  1.00361101e-01  5.69947265e-02  2.55139387e-02  6.40264306e-03
 -8.71285215e-06]
scipy_reference.htm
广告