scipy.integrate — Числове інтегрування

Підмодуль scipy.integrate надає процедури числового інтегрування дійснозначних функцій однієї змінної. Алгоритми не портовані з CPython scipy.integrate, а походять з еталонної реалізації на https://www.genivia.com/qthsh.html.

Numerical integration works best with float64 math enabled. With float32 math the routines still work, with reduced precision. The required error tolerance can be specified via the eps keyword argument; the default is the compile-time etolerance value (1e-14 for fp64, 1e-8 for fp32).

Функції

scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]

Інтегрування f від a до b за допомогою адаптивної квадратури Гаусса–Кронрода (G10, K21). Це рекомендований інтегратор загального призначення.

Параметри:
  • f – функція, яка приймає одне float і повертає float.

  • a – нижня межа інтегрування.

  • b – верхня межа інтегрування.

  • order – порядок інтегрування (за замовчуванням 5).

  • eps – допуск похибки (за замовчуванням etolerance).

Повертає:

двоелементний кортеж (result, error) із float, що містить значення інтеграла та оцінку похибки.

scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Інтегрування f від a до b методом Ромберга — формулою Ньютона–Котеса, що обчислює підінтегральну функцію в рівновіддалених точках. Найкраще підходить для функцій з неперервними похідними. Зауважте, що scipy.integrate.romberg є застарілим у CPython починаючи з SciPy 1.12.0; для нового коду надавайте перевагу quad().

Параметри:
  • f – функція, яка приймає одне float і повертає float.

  • a – нижня межа інтегрування.

  • b – верхня межа інтегрування.

  • steps – кількість кроків (за замовчуванням 100).

  • eps – допуск похибки (за замовчуванням etolerance).

Повертає:

значення інтеграла як float.

scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Інтегрування f від a до b за допомогою адаптивного правила Сімпсона. На відміну від scipy.integrate.simpson у CPython, ця функція приймає функцію-аргумент і самостійно вибирає крок вибірки, а не масив попередньо обчислених значень.

Параметри:
  • f – функція, яка приймає одне float і повертає float.

  • a – нижня межа інтегрування.

  • b – верхня межа інтегрування.

  • steps – кількість кроків (за замовчуванням 100).

  • eps – допуск похибки (за замовчуванням etolerance).

Повертає:

значення інтеграла як float.

scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]

Інтегрування f від a до b за допомогою сімейства квадратур тангенс-синус, синус-синус і показникова (подвійна експонента). Ця процедура підходить, коли підінтегральна функція має особливості або нескінченні похідні на кінцях інтервалу, і є єдиною в цьому підмодулі, що приймає нескінченні межі інтегрування (наприклад, -np.inf, np.inf).

Параметри:
  • f – функція, яка приймає одне float і повертає float.

  • a – нижня межа інтегрування; може бути -np.inf.

  • b – верхня межа інтегрування; може бути np.inf.

  • levels – кількість рівнів уточнення (за замовчуванням 6).

  • eps – допуск похибки (за замовчуванням etolerance).

Повертає:

двоелементний кортеж (result, error) із float, що містить значення інтеграла та оцінку похибки.