torch.trapezoid
-
torch.trapezoid(y, x=None, *, dx=None, dim=-1) → Tensor -
Вычисляет правило трапеций вдоль
dim. По умолчанию предполагается, что расстояние между элементами равно 1, ноdxможно использовать, чтобы задать другое постоянное расстояние, аx— чтобы задать произвольное расстояние вдольdim. Следует указать только один из параметров:xилиdx.Предполагая, что
y— одномерный тензор с элементами , вычисление по умолчанию имеет видЕсли указан
dx, вычисление принимает видто есть результат фактически умножается на
dx. Если указанx, иxтакже является одномерным тензором с элементами , вычисление принимает видЕсли
xиyимеют одинаковый размер, вычисление выполняется описанным выше способом, и широковещание не требуется. Если их размеры различаются, функция выполняет широковещание следующим образом. Дляxиyфункция вычисляет разность между последовательными элементами вдоль измеренияdim. В результате создаются два тензора,x_diffиy_diff, форма которых совпадает с формой исходных тензоров, за исключением того, что длина вдоль измеренияdimуменьшается на 1. Затем эти два тензора подвергаются широковещанию для вычисления итогового результата по правилу трапеций. Подробности см. в примерах ниже.Примечание
Правило трапеций — это метод приближенного вычисления определенного интеграла функции путем усреднения левых и правых сумм Римана. Точность приближения повышается с увеличением разрешения разбиения.
- Параметры:
- Именованные аргументы:
-
-
dx (float) – постоянное расстояние между значениями. Если не указаны ни
x, ниdx, по умолчанию используется значение 1. Фактически умножает результат на это значение. - dim (int) – Измерение, вдоль которого вычисляется правило трапеций. По умолчанию используется последнее (самое внутреннее) измерение.
-
dx (float) – постоянное расстояние между значениями. Если не указаны ни
Примеры:
>>> # Computes the trapezoidal rule in 1D, spacing is implicitly 1 >>> y = torch.tensor([1, 5, 10]) >>> torch.trapezoid(y) tensor(10.5) >>> # Computes the same trapezoidal rule directly to verify >>> (1 + 10 + 10) / 2 10.5 >>> # Computes the trapezoidal rule in 1D with constant spacing of 2 >>> # NOTE: the result is the same as before, but multiplied by 2 >>> torch.trapezoid(y, dx=2) 21.0 >>> # Computes the trapezoidal rule in 1D with arbitrary spacing >>> x = torch.tensor([1, 3, 6]) >>> torch.trapezoid(y, x) 28.5 >>> # Computes the same trapezoidal rule directly to verify >>> ((3 - 1) * (1 + 5) + (6 - 3) * (5 + 10)) / 2 28.5 >>> # Computes the trapezoidal rule for each row of a 3x3 matrix >>> y = torch.arange(9).reshape(3, 3) tensor([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> torch.trapezoid(y) tensor([ 2., 8., 14.]) >>> # Computes the trapezoidal rule for each column of the matrix >>> torch.trapezoid(y, dim=0) tensor([ 6., 8., 10.]) >>> # Computes the trapezoidal rule for each row of a 3x3 ones matrix >>> # with the same arbitrary spacing >>> y = torch.ones(3, 3) >>> x = torch.tensor([1, 3, 6]) >>> torch.trapezoid(y, x) array([5., 5., 5.]) >>> # Computes the trapezoidal rule for each row of a 3x3 ones matrix >>> # with different arbitrary spacing per row >>> y = torch.ones(3, 3) >>> x = torch.tensor([[1, 2, 3], [1, 3, 5], [1, 4, 7]]) >>> torch.trapezoid(y, x) array([2., 4., 6.])
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.trapezoid.html