まず第一に、被積分関数をブラックボックスとして使用するオールラウンドな求積ルーチンが必要な場合は、自問する必要があります。もしそうなら、適応性が被積分関数の「困難な」スポットをキャッチすることを望んでいる適応求積法に行くしかありません。そして、それがPiessensらの理由の1つです。適応スキームで適用される適度な次数のガウス・クロンロッド規則(このタイプの規則を使用すると、同じ関数評価を使用して積分の近似値と近似誤差の推定値を計算できます)必要な許容範囲に達するまで、最大エラー)。Wynn-epsilonアルゴリズムは、収束の加速を可能にし、通常、エンドポイントの特異点がある場合に役立ちます。
ただし、被積分関数の「形式」または「型」がわかっている場合は、必要な精度に合わせて計算コストを制限できるように、必要なものに合わせてメソッドを調整できます。それで、あなたが見る必要があるもの:
被積分関数:
- 滑らかさ:直交多項式族の多項式で近似できます(そうであれば、ガウス求積法はうまくいきます)
- 特異点:積分は、端点特異点のみの積分に分割できます(そうであれば、各サブ区間でIMTルールまたは二重指数関数求積法が適切です)
- 評価のための計算コストは?
- 被積分関数を計算できますか?または、限られたポイントごとのデータのみが利用可能ですか?
- 高度に振動する被積分関数:レビン型のメソッドを探します。
| x−c |- αcα
積分間隔:有限、半無限、または無限。半無限または無限の間隔の場合、変数変換によってそれらを有限の間隔に縮小できますか?そうでない場合、ラゲールまたはエルミート多項式をガウス求積法で使用できます。
一般的な求積法の実際のフローシートのリファレンスはありませんが、QUADPACKブック(Netlibのマンページではなく、実際のブック)には、評価する積分に基づいて適切なルーチンを選択するためのフローシートがあります。この本は、Piessens et al。によって行われたアルゴリズムの選択についても説明しています。さまざまなルーチン用。
低次元の積分では、通常、ネストされた1次元の求積法が使用されます。2次元積分(立体)の特殊なケースでは、統合ドメインのさまざまなケースに対する統合ルールが存在します。R. Coolsは、cubature数式の百科事典で多数のルールを収集しており、Cubpackパッケージの主な著者です。高次元積分の場合、通常はモンテカルロ型の方法に頼ります。ただし、妥当な精度を得るには、通常、非常に多数の被積分関数評価が必要です。低次元積分の場合、求積法/求積法/入れ子求積法のような近似法は、これらの確率的方法よりも性能が優れていることがよくあります。
一般的な興味深い参照:
- Quadpack、Piessens、Robert; de Doncker-Kapenga、エリーゼ; ユーバーフーバー、クリストフ・W。Kahaner、David(1983)。QUADPACK:自動統合のためのサブルーチンパッケージ。スプリンガー出版。ISBN 978-3-540-12553-2
- 数値積分の方法:第2版、Ph。DavisおよびPh。Rabinowitz、2007年、Dover Books on Mathematics、ISBN 978-0486453392