Учебники

SciPy — Интеграция

Когда функция не может быть интегрирована аналитически или очень трудно интегрироваться аналитически, обычно обращаются к методам численного интегрирования. SciPy имеет ряд процедур для выполнения числовой интеграции. Большинство из них находятся в одной библиотеке scipy.integrate . В следующей таблице перечислены некоторые часто используемые функции.

Ср № Описание функции
1

квад

Одиночная интеграция

2

dblquad

Двойная интеграция

3

tplquad

Тройная интеграция

4

nquad

n- кратная множественная интеграция

5

fixed_quad

Гауссовская квадратура, порядок n

6

квадратура

Гауссовская квадратура к толерантности

7

Ромберга

Интеграция Ромберга

8

trapz

Трапециевидное правило

9

cumtrapz

Трапециевидное правило для кумулятивного вычисления интеграла

10

импсон

Правило Симпсона

11

ROMB

Интеграция Ромберга

12

polyint

Аналитическая полиномиальная интеграция (NumPy)

13

poly1d

Вспомогательная функция для полиинт (NumPy)

квад

Одиночная интеграция

dblquad

Двойная интеграция

tplquad

Тройная интеграция

nquad

n- кратная множественная интеграция

fixed_quad

Гауссовская квадратура, порядок n

квадратура

Гауссовская квадратура к толерантности

Ромберга

Интеграция Ромберга

trapz

Трапециевидное правило

cumtrapz

Трапециевидное правило для кумулятивного вычисления интеграла

импсон

Правило Симпсона

ROMB

Интеграция Ромберга

polyint

Аналитическая полиномиальная интеграция (NumPy)

poly1d

Вспомогательная функция для полиинт (NumPy)

Единственные Интегралы

Функция Quad является рабочей лошадкой интеграционных функций SciPy. Численное интегрирование иногда называют квадратурным , отсюда и название. Обычно это выбор по умолчанию для выполнения одиночных интегралов функции f (x) в заданном фиксированном диапазоне от a до b.

 intbaf(x)dx

Общая форма quad — это scipy.integrate.quad (f, a, b) , где «f» — это имя интегрируемой функции. Принимая во внимание, что «a» и «b» являются нижним и верхним пределами соответственно. Давайте рассмотрим пример функции Гаусса, интегрированной в диапазоне от 0 до 1.

Сначала нам нужно определить функцию → f(x)=ex2, это можно сделать с помощью лямбда-выражения, а затем вызвать метод quad для этой функции.

import scipy.integrate
from numpy import exp
f= lambda x:exp(-x**2)
i = scipy.integrate.quad(f, 0, 1)
print i

Вышеуказанная программа сгенерирует следующий вывод.

(0.7468241328124271, 8.291413475940725e-15)

Функция quad возвращает два значения, в которых первое число является значением интеграла, а второе значение является оценкой абсолютной ошибки в значении интеграла.

Примечание. Поскольку quad требует функции в качестве первого аргумента, мы не можем напрямую передать exp в качестве аргумента. Функция Quad принимает положительную и отрицательную бесконечность в качестве пределов. Функция Quad может интегрировать стандартные предопределенные функции NumPy одной переменной, такой как exp, sin и cos.

Множественные интегралы

Механика двойной и тройной интеграции была включена в функции dblquad, tplquad и nquad . Эти функции объединяют четыре или шесть аргументов соответственно. Пределы всех внутренних интегралов должны быть определены как функции.

Двойные интегралы

Общая форма dblquad — это scipy.integrate.dblquad (func, a, b, gfun, hfun). Где func — это имя интегрируемой функции, a и b — это нижний и верхний пределы переменной x соответственно, а gfun и hfun — это имена функций, которые определяют нижний и верхний пределы. переменной у.

В качестве примера приведем метод двойного интеграла.

 int1/20dy int sqrt14y2016xydx

Мы определяем функции f, g и h, используя лямбда-выражения. Обратите внимание, что даже если g и h являются константами, как они могут быть во многих случаях, они должны быть определены как функции, как мы сделали здесь для нижнего предела.

import scipy.integrate
from numpy import exp
from math import sqrt
f = lambda x, y : 16*x*y
g = lambda x : 0
h = lambda y : sqrt(1-4*y**2)
i = scipy.integrate.dblquad(f, 0, 0.5, g, h)
print i

Вышеуказанная программа сгенерирует следующий вывод.

(0.5, 1.7092350012594845e-14)

В дополнение к подпрограммам, описанным выше, scipy.integrate имеет ряд других подпрограмм интеграции, включая nquad, который выполняет n-кратную множественную интеграцию, а также другие подпрограммы, которые реализуют различные алгоритмы интеграции. Тем не менее, quad и dblquad удовлетворят большинство наших потребностей в числовой интеграции.