Python
 Computer >> コンピューター >  >> プログラミング >> Python

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() を利用するとよいでしょう。

  1. PythonとNumPyのtrapz()メソッドで複合台形公式により軸0に沿って積分する方法

    指定した軸に沿って複合台形公式を用いて数値積分を行うには、numpy.trapz()メソッドを使用します。xが指定された場合は、その要素の並び順に従って順次積分が実行されます(要素は自動的にソートされません)。このメソッドは、台形公式によって単一の軸に沿って近似計算された、n次元配列「y」の定積分を返します。戻り値の形状は入力配列の次元によって変わります。「y」が1次元配列の場合、結果はfloat型のスカラー値となり、「y」がn次元(n > 1)の場合、結果は「n-1」次元の配列となります。主なパラメータy(第1引数):積分対象となる入力配列です。x(第2引数):yの各値に対応するサンプ

  2. 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の使用が推奨されてい