ベッセルウェイトを使用した高価な関数の放射状積分


8

積分を計算する必要があります

I=0Rf(r)Jn(znmrR)rdr

ここで、は第1種の次のベッセル関数であり、はそのゼロであり、はやや類似した実数関数です(同じではない、それは非常に複雑であり、通常で用語を伴う時には)。Jnnthznmmthf(r)JnJn2exp(Jn)

非常に高価であり、この積分は非常に多くの時間を評価しなければならない、私はそれを解決するための最良の(非常に速いが、それでもかなり正確に)数値法を探しています。現在、私は11ポイントの台形ルールを使用しています。しかし、私はClenshaw–CurtisやGauss–Kronrod(低次数)などの他の方法を調査しています。f(r)

しかし、特にハンケル変換の計算に必要なものと同様であることを考えると、そのような積分に特に適した方法があるかどうか疑問に思っています。

回答:


6

ハンケル変換では、メソッドを4つの主要なグループに分類できます。

  1. 数値求積法に基づく。
  2. フーリエベースのもの。
  3. ベッセルのサインとコサインへの漸近展開。
  4. 投影スライス法。

次のペーパーでは、これらのメソッド(メソッドのタイプ)の概要を説明しています。

この論文(p。3、Sec。4)によると:

台形規則の主な欠点は、計算効率が低いことです。...台形法は、ほとんどの場合、テストされた他のどの方法よりも信頼性が高いことがわかりました。...より効率的なアルゴリズムをテストするためのベンチマークとして役立つことがわかりました。

したがって、2つの方向が可能です。

  1. どちらかより効率的な数値求積ルールを見つけます。
  2. ハンケル変換のような方向に従ってください。

実際、この積分は次のハンケル変換と非常によく似ています。ただし、ここでは、が非常に高価であるだけでなく、振動性であり、場合によっては非常に振動性であることが、大きな複雑化として見えます。与えられた定式化では、はほとんど実際には悪い既知の特性を持つブラックボックスです。ハンケル変換を評価するための標準的な手法の多くは、が最終的に単調であるという事実を使用しています。nf(r)f r f r f(r)f(r)

そのため、高振動積分に使用されるフィロン型求積法の方向を検討します。ただし、動作についての知識を使用して機能させる必要があると思います。これは方向1に関するものです。次の参照(および次の部分の参照)は、一般的な理解に役立ちます。f(r)

方向2については、何らかの形のプロジェクションスライスメソッドを開発することをお勧めします。私は個人的に、あなたの積分のために開発されたこのタイプの準備ができた方法を知りません。

以下の参照が役立つ場合があります(Filon求積法についても)。

試してみる価値のあるもう1つの興味深いアプローチ(このホワイトペーパーに出くわしたのは、この答えを書く主な動機でした)は、メリン変換を適用することです。ただし、そもそも評価が多すぎる場合は、価値がないかもしれません。f(r)

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