Scipy-integrate
SciPy-統合
関数を分析的に統合できない場合、または分析的に統合するのが非常に困難な場合は、一般に数値積分法を使用します。 SciPyには、数値積分を実行するための多数のルーチンがあります。 それらのほとんどは同じ scipy.integrate ライブラリにあります。 次の表に、一般的に使用される関数を示します。
Sr No. | Function & Description |
---|---|
1 |
quad 単一の統合 |
2 |
dblquad 二重統合 |
3 |
tplquad トリプルインテグレーション |
4 |
nquad n-fold複数統合 |
5 |
fixed_quad ガウス求積法、次数n |
6 |
quadrature 公差に対するガウス求積法 |
7 |
romberg ロンバーグ統合 |
8 |
trapz 台形規則 |
9 |
cumtrapz 積分を累積的に計算する台形規則 |
10 |
simps シンプソンのルール |
11 |
romb ロンバーグ統合 |
12 |
polyint 分析多項式積分(NumPy) |
13 |
poly1d polyint(NumPy)のヘルパー関数 |
単一積分
Quad機能は、SciPyの統合機能の主力製品です。 数値積分は quadrature と呼ばれることもあるため、その名前が付けられています。 通常、aからbまでの特定の固定範囲で関数_f(x)_の単積分を実行するためのデフォルトの選択です。
\ int _ \ {a} ^ \ {b} f(x)dx
quadの一般的な形式は* scipy.integrate.quad(f、a、b)*です。ここで、「f」は統合する関数の名前です。 一方、「a」と「b」はそれぞれ下限と上限です。 0と1の範囲で積分されたガウス関数の例を見てみましょう。
最初に関数を定義する必要があります→$ f(x)= e ^ \ {-x ^ 2} $、これはラムダ式を使用して実行でき、その関数でquadメソッドを呼び出します。
上記のプログラムは、次の出力を生成します。
quad関数は2つの値を返します。最初の数値は積分値で、2番目の値は積分値の絶対誤差の推定値です。
注意-quadは最初の引数として関数を必要とするため、引数としてexpを直接渡すことはできません。 Quad関数は、正および負の無限大を制限として受け入れます。 Quad関数は、exp、sin、cosなどの単一変数の標準の定義済みNumPy関数を統合できます。
複数の積分
ダブルおよびトリプル統合のメカニズムは、関数 dblquad、tplquad および nquad にまとめられています。 これらの関数は、それぞれ4つまたは6つの引数を統合します。 すべての内部積分の限界は、関数として定義する必要があります。
二重積分
例として、二重積分法を実行してみましょう。
\ int _ \ {0} ^ \ {1/2} dy \ int _ \ {0} ^ \ {\ sqrt \ {1-4y ^ 2}} 16xy \:dx
ラムダ式を使用して、関数f、g、およびhを定義します。 多くの場合gとhが定数であっても、下限についてはここで行ったように、関数として定義する必要があることに注意してください。
上記のプログラムは、次の出力を生成します。
上記のルーチンに加えて、scipy.integrateには、n倍の多重統合を実行するnquadや、さまざまな統合アルゴリズムを実装する他のルーチンなど、他の多くの統合ルーチンがあります。 ただし、quadおよびdblquadは、数値積分に対するほとんどのニーズを満たします。