Python・NumPyのtrapz()で複合台形公式により積分する方法:サンプルポイントxを指定して逆順に積分
NumPyでは、numpy.trapz()メソッドを使うことで、複合台形公式(composite trapezoidal rule)に基づいて数値積分を行うことができます。引数xが指定された場合、積分はその要素の並び順に沿って実行されます。つまり、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()メソッドを使用します。ここでは、サンプルポイントとしてx = [80, 55](降順=逆順の並び)を指定しています。
print("\nResult (trapz)...\n",np.trapz(arr, x = [80, 55]))
コード例
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)
# 複合台形公式で積分(サンプルポイントxを逆順に指定)
print("\nResult (trapz)...\n",np.trapz(arr, x = [80, 55]))
出力結果
Our Array... [20 35] Dimensions of our Array... 1 Datatype of our Array object... int64 Result (trapz)... -687.5
結果の解説
この例では、y = [20, 35]、x = [80, 55]という組み合わせで積分を行っています。台形公式による面積は「(35 + 20) / 2 × (55 − 80)」として計算され、xが降順(逆順)に並んでいるため区間幅が負になり、結果は-687.5となります。これは、trapz()がxの要素をソートせず、与えられた順序のまま積分することを示す好例です。
なお、NumPy 2.0以降ではnp.trapz()は非推奨となり、代わりに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の使用が推奨されてい