Python・NumPyのtrapz()で複合台形公式により積分する方法|サンプル点xをy値に対応させて計算
指定した軸に沿って複合台形公式(composite trapezoidal rule)で積分を行うには、NumPyの numpy.trapz() メソッドを使用します。引数 x を指定した場合、積分はその要素の並び順に沿って順番に実行されます(要素は自動的にソートされません)。このメソッドは、n次元配列である「y」を単一の軸に沿って台形公式で近似した定積分の値を返します。「y」が1次元配列の場合、結果はfloat型となり、「n」が1より大きい場合は「n-1」次元の配列が返されます。
主なパラメータ
- y(第1引数): 積分対象となる入力配列です。
- x(第2引数): yの各値に対応するサンプル点です。
xが None の場合、サンプル点は間隔 dx で等間隔に配置されているものとみなされます。デフォルトは None です。 - dx(第3引数):
xが None のときに使用されるサンプル点間の間隔です。デフォルトは 1 です。 - axis(第4引数): 積分を実行する対象の軸です。
実行手順
まず、必要なライブラリをインポートします。
import numpy as np
array() メソッドを使ってNumPy配列を作成します。ここではint型の要素を含む配列を用意しました。
arr = np.array([20, 35])
配列を表示します。
print("Our Array...\n",arr)
配列の次元数を確認します。
print("\nDimensions of our Array...\n",arr.ndim)
配列のデータ型を取得します。
print("\nDatatype of our Array object...\n",arr.dtype)
複合台形公式で積分を行うため、numpy.trapz() メソッドを使用します。ここでは、y値に対応するサンプル点として x = [55, 80] を指定しています。
print("\nResult (trapz)...\n",np.trapz(arr, x = [55, 80]))
コード例
import numpy as np
# array()メソッドでNumPy配列を作成
# int型の要素を追加
arr = np.array([20, 35])
# 配列を表示
print("Our Array...\n",arr)
# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)
# データ型を取得
print("\nDatatype of our Array object...\n",arr.dtype)
# 複合台形公式で積分するためにnumpy.trapz()メソッドを使用
print("\nResult (trapz)...\n",np.trapz(arr, x = [55, 80]))
実行結果
Our Array... [20 35] Dimensions of our Array... 1 Datatype of our Array object... int64 Result (trapz)... 687.5
この例では、サンプル点 x = [55, 80] の間隔は 25 であり、y値 [20, 35] の平均は 27.5 なので、積分結果は 25 × 27.5 = 687.5 となります。
補足
なお、NumPy 2.0 以降では np.trapz() は非推奨(deprecated)となっており、代わりに同じ機能を持つ np.trapezoid() の使用が推奨されています。古いバージョンとの互換性が必要な場合を除き、新規コードでは np.trapezoid() を利用するとよいでしょう。
-
PythonとNumPyのtrapz()メソッドで複合台形公式により軸0に沿って積分する方法
指定した軸に沿って複合台形公式を用いて数値積分を行うには、numpy.trapz()メソッドを使用します。xが指定された場合は、その要素の並び順に従って順次積分が実行されます(要素は自動的にソートされません)。このメソッドは、台形公式によって単一の軸に沿って近似計算された、n次元配列「y」の定積分を返します。戻り値の形状は入力配列の次元によって変わります。「y」が1次元配列の場合、結果はfloat型のスカラー値となり、「y」がn次元(n > 1)の場合、結果は「n-1」次元の配列となります。主なパラメータy(第1引数):積分対象となる入力配列です。x(第2引数):yの各値に対応するサンプ
-
PythonのNumPyで複合台形公式を使って軸1に沿って積分する方法
複合台形公式(composite trapezoidal rule)を使用して、指定した軸に沿って数値積分を行うには、numpy.trapz()メソッドを使用します。xが指定された場合、積分はその要素の並び順に従って実行され、要素は自動的にソートされません。このメソッドは、台形公式によって単一の軸に沿って近似したn次元配列「y」の定積分を返します。「y」が1次元配列の場合、結果はfloat型となり、「n」が1より大きい場合は「n-1」次元の配列が返されます。 なお、NumPy 2.0以降ではnp.trapzは非推奨となっており、代わりに同じ機能を持つnp.trapezoidの使用が推奨されてい