Spec-Zone.ru › NumPy 1.21

numpy.trapz

numpy.trapz(y, x=None, dx=1.0, axis=- 1)[source]

Вычисление интеграла по заданной оси с помощью составного метода трапеций.

Если x предоставлен, интегрирование происходит последовательно по его элементам — они не сортируются.

Вычисление интеграла y (x) вдоль каждого одномерного среза по заданной оси, вычисляется \(\int y(x) dx\). При указании x, происходит интегрирование вдоль параметрической кривой, вычисляется \(\int_t y(t) dt = \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt\).

Параметры
yarray_like

Входной массив для интегрирования.

xarray_like, необязательно

Точки выборки, соответствующие значениям y. Если x равно None, точки выборки предполагаются равномерно распределёнными с шагом dx. По умолчанию None.

dxскаляр, необязательно

Шаг между точками выборки, когда x равно None. По умолчанию 1.

axisint, необязательно

Ось, по которой выполняется интегрирование.

Возвращает
trapzfloat или ndarray

Определённый интеграл ‘y’ = n-мерного массива, приближённый вдоль одной оси методом трапеций. Если ‘y’ является одномерным массивом, результат — float. Если ‘n’ больше 1, результат — массив размерности ‘n-1’.

См. также

sum, cumsum

Примечания

Изображение [2] иллюстрирует метод трапеций — значения по оси y берутся из массива y, по умолчанию расстояния между точками по оси x равны 1.0, альтернативно они могут быть заданы массивом x или скалярной величиной dx. Возвращаемое значение равно суммарной площади под красными линиями.

Ссылки

1

Страница Википедии: https://en.wikipedia.org/wiki/Trapezoidal_rule

2

Иллюстрационное изображение: https://en.wikipedia.org/wiki/File:Composite_trapezoidal_rule_illustration.png

Примеры

>>> np.trapz([1,2,3])
4.0
>>> np.trapz([1,2,3], x=[4,6,8])
8.0
>>> np.trapz([1,2,3], dx=2)
8.0

Использование убывающего x соответствует интегрированию в обратном порядке:

>>> np.trapz([1,2,3], x=[8,6,4])  
-8.0

В более общем случае x используется для интегрирования вдоль параметрической кривой. Это находит площадь круга, учитывая, что мы повторяем образец, который закрывает кривую:

>>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
>>> np.trapz(np.cos(theta), x=np.sin(theta))
3.141571941375841
>>> a = np.arange(6).reshape(2, 3)
>>> a
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.trapz(a, axis=0)
array([1.5, 2.5, 3.5])
>>> np.trapz(a, axis=1)
array([2.,  8.])

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.trapz.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API