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’.
Примечания
Изображение [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