積分を数値的に反復することはいつ有利ですか?


8

ある場合には(n+1)の形の次元積分は 通常1は、ドメイン全体にわたって多次元統合ライブラリを使用してこれを評価するであろう [ 0 1 ] のn + 1

[0,1]n+1f(x,y)dnxdy,
[0,1]n+1

しかし、1次元の求積法を使用して積分を個別に実行し、多次元積分ライブラリを使用して他のn座標で被積分関数を評価することが理にかなっている条件はありますか? [ 0 1 ] nは G X yn

[0,1]ng(x)dnx,g(x)=01f(x,y)dy.

これは、たとえば、yの関数として特に滑らかであるがxの関数としては滑らかでない場合に意味があります。しかし、この場合、正確にどれほどスムーズでなければならないのでしょうか。1-d求積法の評価点が多すぎると「無駄」になるため、ほとんど意味がないと思いますが、これが常に当てはまるとは思いません。これは、高次元の統合方法の設計によって保証されますか?fyx

自分の場合、ブラックボックスであるが、に区分平滑Y、およびキンクの未知量を有しにジャンプX未知の位置で、かつnは極めて高い(N 4)の積分にxが有しています特に多くの次元のために何かを行うために。yの積分は、のような通常の方法で実行できます。この例では、関数はyで十分滑らかであり、ほとんど機能しているように見えますが、繰り返しの積分は最終的に30倍遅くなるため、アプローチが誤っているのではないかと思います。fyxnn4xyquadgky

これが文献のどこですでに議論されているかを知っているなら、それも役に立ちます。

例。 (これが簡単ではない理由です)私が本当に興味を持っているものとは異なり、非常に滑らかな「簡単な」積分を考えてみましょう: 被積分関数で ナイーブ n次元モンテカルロを実行するか、または積分された被積分関数でナイーブn 1 次元モンテカルロを x 1について一度積分すると、 g x 2 n= e a1 / a(ここで a = x 2x n)。

[0,1]nex1x2xndnx=F({1,,1}n{2,,2}n|1).
n(n1)x1g(x2:n)=(ea1)/aa=x2xn

いくつかの代数で、Iは、の分散と計算次元Nが MC推定値である-POINT 0.00244 N - 1、及びそれが0.00167 N - 1のための4の次元積分G Aによって分散低減のため、1.5の係数。(n=5)N0.00244N10.00167N14g1.5

これは、わずかな分散の減少です。これは、倍のサンプルポイントを使用することで打ち消され、内部被積分関数の評価が1.5倍以上遅くなる可能性があるという事実によって相殺されます。上記の関数g = 1 e a/ a1.5倍以上遅い場合、これは計算時間を固定したまま、正味の精度の損失を表します。1.51.5g=(1ea)/a1.5

介して積分するための決定論的ルールを検討する場合、おそらく同じ種類のトレードオフが適用されます。モンテカルロ法を使用すると、この分析を一般的な場合よりもはるかに簡単に行うことができます。これは、yを介して積分すると、非常に単純な分散低減手法のように機能するためです。しかし、私は決定論的手法に非常に興味を持っています。これは、簡単に分析することができなかった方法です。xy


2
各次元で異なる求積ルールを使用できますか?以来平滑であり、Yは、存在下位直交少ない滑らかな寸法に沿ってより高次の直交を使用することができます。求積点と重みは、1-Dルールのテンソル積によって構築されます。これにより、関数評価の総数が大幅に削減されます。fy
タイラーオルセン

2
@TylerOlsenいいえ、でもそれが問題です...(確かに、スムーズな次元の高次の規則であり、他の方法ではありませんか?)QMCまたはスパースグリッドで多くの非スムーズな次元を処理するのに十分なほど関数が難しい場合、またはアダプティブリファインメントなどを使用したルールのテンソル積など、他の次元のエラーによってでの積分の高精度が浪費されていませんか?では、評価を無駄にせずにn + 1 次元のルールを使用しないのはなぜでしょうか。しかし、ここで正しい一般原則が何であるかはわかりませんので、誰かが何かを知っているかどうかを尋ねています。y(n+1)
Kirill

つまり@TylerOlsen、それは何らかの形でどれだけ依存するべきで簡単に、それは上の機能を統合することである(非常に簡単に使用できる1その後、-d nは -dが、非常に難しい-使用N + 1 -d)。しかし、良いガイド、またはしきい値は何ですか?y1n(n+1)
キリル

ああ、ごめんなさい。頭をひっくり返した。私はここで良い経験則を知っているとは言えないので、他の誰かがこれを採用しなければならないでしょう。
タイラーオルセン

回答:


4

明確化:私の答えは、このような確定的エラー制御を備えた適応統合ルーチン向けに特別に書かれています。これは、スパースグリッドおよびモンテカルロベースの統合ルーチンでは問題になります。これらのエラー制御は、以下で説明する方法では実行されません。

自動ブラックボックス、テンソル積ベースの統合ルーチンの大きなコストは、2つの側面からのエラー制御です。

  1. 無駄な機能評価。すべての適応積分は、低次のルールまたは粗いパーティション分割を使用して被積分関数とエラーを推定し、エラー要件が満たされるまで、次第に高次のルールまたは細かいパーティションでこれを繰り返します。ネストされた統合ルールにより、前のステップで行われた作業の一部を再利用できますが、多くの場合すべてではありません。
  2. 関数の評価を節約するために、ガウスクロンロッドやニュートンコートなどの高度にネストされたルールが適応型統合コードでよく使用されます。ネストされた求積法は、最適な求積法であり、固定された求積順で特定のクラスの関数に対して最適な規則(Gauss-LegendreやClenshaw Curtisなど)よりも精度がかなり低くなります。言い換えると、ネストされたルールは関数評価の使用効率を低下させます。

エラー制御に関連した非効率寸法は、全体にわたって半解析的処理を用いて除去することができるYを。仮定し、F X Yを(すなわちだけ区分的に滑らかではない)平滑化されたY。保証するために 、最適な求積ルールを自由に選択し、求積次数rの事前境界を導出できますR Σの K = 1 wのk個の F X Y 、K- [ 0 1 ] Fyyf(x,y)yr 使用、のリプシッツ定数言う F X Y のyすべてのためのXを。可変誤差制御の半分析的処理では、 xに関する関数として直交次数 rを変化させることさえできます。

|k=1rwkf(x,yk)[0,1]f(x,y)dy|ϵfor all x[0,1]n,
f(x,y)yxrxϵさらに効率を向上させます。

数値ステップを最適な半分析ステップに置き換えると、外部積分ルーチンの効率が向上します。n次元積分の中心にあることを考えると、g xg(x)n非常に完全に統合にわたって拡大されるであろう。g(x)

場合に同様の議論が成立するようにのみ区分的に滑らかで、最適な直交ルールは、限り区分セグメントの境界が知られているように開発することができます。境界が知られていない場合でも、ヒューリスティックな方法では、Clenshaw-Curtisは区分的に滑らかな関数を非常にうまく処理できます。f(x,y)

適用例を示すために、この正確な問題は、この論文の体積対体積の特異積分の評価で私に生じ、私の扱いは上記で提案されたものと同様です。経験則として、問題をブラックボックス統合ルーチンに渡す前に、分析引数を使用してできるだけ多くの次元を削除することを常にお勧めします。


y

私の主張は、確定的エラー制御を備えた適応メソッドを想定している場合、いくつかの次元を閉じた形(または半閉じた形)で評価すると、数値的に行われる避けられないステップが排除されるということです。しかし、あなたの(優れた)例は、決定論的適応法がそもそも使用されない例です。
Richard Zhang

標準の決定論的適応メソッド、たとえばab-initio.mit.edu/wiki/index.php/Cubatureを使用したとしたら、完全に要素を高速化しないと非常に驚かされるでしょう。半分析的に次元の1つ。
Richard Zhang

あなたが提案する方法でCubatureを正確に使用すると(これは完全に合理的な提案です)、質問の最初の段階で「30倍遅い」という数値が得られたので、驚いた(そのため質問です)。モンテカルロの例は分析しやすいものとしてのみ意味しましたが、実際には決定論的手法にもっと興味があります。
キリル2015年

n+1(n+1)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.