三角形でコンパクトにサポートされている関数の数値積分


10

タイトルが示唆しているように、三角形でコンパクトにサポートされている関数(ウェンドランドの5次多項式)の積分を計算しようとしています。関数の中心が3次元空間のどこかにあることに注意してください。この関数を任意の小さな三角形に統合します()。私は現在、Dunavant、1985(p = 19)によって記述された統合を使用しています。area<(radius/4)22

ただし、これらの求積法のルールは、コンパクトにサポートされる問題には適していないようです。これは私が統合場合という事実によって支持されて三角形を用いて離散化された平面上(半径1の円の内側に1関数ように)、私の(正規化)結果の間であります1.001および0.897。f(r)=[r1]

だから私の質問は、この種の問題に特化した求積法が存在するのですか?低次の複合統合ルールはうまく機能しますか?

残念ながら、このルーチンは私のコードでは本当に重要なので、精度は非常に重要です。一方、この統合を1回のタイムステップで「数回」行う必要があるため、計算コストが高すぎないようにする必要があります。統合自体をシリアルで実行するため、並列化は問題になりません。

回答ありがとうございます。

EDIT:Wendlandの五次多項式によって与えられるα=21W(q)=[q2]αh3(1q2)4(2q+1)α=2116πq=rr0hr0R3

EDIT2:が2次元の三角形の場合、を計算します。したがって、が0より小さくなることはありません。積分は 2次元表面上の表面積分であることに注意してくださいΔΔω(r)drω(r)=W(rr0h)qWR3

EDIT3:1次元(線)の問題の分析ソリューションがあります。2次元(三角形)の1つを計算することも可能です。


統合しようとしている機能の詳細をもう少し教えてください。それは単なる多項式ですか?または区分的多項式?
Pedro

要求に応じて編集。
Azrael3000 2012年

回答:


4

関数は内では滑らかですが、(平面内では)固定次数ではないため、両方の次元で単純な適応スキーム、たとえばRomberg法を使用した台形ルールを使用することをお勧めします。q2

つまり、三角形が頂点、およびによって定義されており、からまでの線に沿って積分するルーチンがある場合は、次のようにすることができます(Matlab表記):xyzR3romb(f,a,b)fab

int = romb( @(xi) romb( W , xi , y+(z-y)*(xi-x)./(z-x) ) , x , z );

ではromb、固定数のポイントを使用しないでください。ただし、連続する2つの対角線の差が必要な許容誤差を下回るまで、テーブルを拡大していきます。関数は滑らかであるため、これは適切な誤差の見積もりになるはずです。

三角形の一部が領域の外にある場合は、上記のコードで積分の制限を適宜調整してみてください。W(q)

これは問題を解決するための最も計算効率の高い方法ではないかもしれませんが、適応性により、固定次数のルールよりもはるかに堅牢になります。


関数はを除いてどこでもsmmoth です。この辺りがトラブルの原因です。q=0
アーノルドノイマイヤー2012年

ああ、2つの1-D問題に分解することは、まったく悪い考えではありません。まだ言っていないことがあるからです。1次元の分析ソリューションがあるので、内部の部屋を分析関数に置き換えることができます。私はそのショットをすでに+1します
Azrael3000

@ArnoldNeumaier、ごめんなさい、どうしてそうなるのかわかりません。説明してもらえますか?
Pedro、

関数として滑らかが、の滑らか関数であり、および統合が上である限り、私は質問を理解して、。したがって、複合関数は非平滑関数です。qqrrr
Arnold Neumaier

1
@ペドロ私はそれを実装し、それは魅力のように動作します。今日、実際に分析ソリューションも見つけました。ただし、これは、一般的なケースを再構築するために使用できる特別な場合のみです。つまり、ドメインの分解を行う必要があります。Rombergは約4ステップで収束するので、分析式を使用するよりも高速になると思います。ウィキペディアによると、有理多項式を使用すると、Rombergよりもさらに優れた結果が得られます。あなたは私の次の論文の謝辞であなたの名前を見つけるでしょう:)乾杯。
Azrael3000 2012年

2

立方体のルールの概要については、「R。クールズ、立方体の数式の百科事典J.複雑さ、19:445-453、2003」を参照してください。固定規則を使用すると、一部の規則が多項式を正確に統合するという利点があります(ガウス求積法が1次元で行うように)。

Coolsは、数値3次構造のソフトウェアパッケージであるCUBPACKの主要な作者の1人でもあります。


ここでの問題は、関数が多項式でですが、は空間座標の非線形関数です。関数は、基底関数のエッジまで滑らかですが、軸に沿っている場合を除いて、多項式ではありません。qq
ペドロ

これは正しいペドロです。
Azrael3000 2012年

ああ大丈夫。私の間違い。ごめんなさい。
GertVdE 2012年

2

統合ルールは、関数が局所的に低次多項式で近似されていることを前提としています。あなたの問題はコンパクトなサポートとは何の関係もありません。コンパクトにサポートされた動径基底関数は、サポート境界で滑らかであり、滑らかさの次数までの求積法を問題なく使用できます。(高次の規則は役に立たないため、次数5の多項式を正確に積分する規則はおそらく使用しないでください。)

あなたの場合、不正確さは、が含まれていない場合でも、近くの三角形の場合、良好な多項式近似性の仮定が失敗するという事実にます。r0r0

Wの関数として滑らかであるが、の滑らか関数で限界で無限大となる勾配で、。積分は超えており、複合関数は非平滑関数です。qqrrr0rr

三角形が含まれていない場合は、関数があるが、これは近くに非常に迅速に高い派生成長するにつれて解決しない、および高次の方法は、したがって、非常に大規模な高次の導関数に比例するのエラーを!r0Cinfr0

簡単な解決策は、各三角形TをN_T個のサブ三角形に分割することです。あなたは取ることができます遠くから、およびに近い。所定の直径とからの距離の三角形が必要な精度に達するために、がどのくらい大きくなければならないかをオフラインで把握できます。さらに、近い低次の数式のみを使用する必要があります。NT=1r0NT1r0NTr0r0

三角形上で積分するが、は3次元なので、三角形は明らかにます。r0R3

したがって、より速い解決策は、積分を三角形の座標の関数として表にします(1つの頂点が軸上にあるように2次元の平面に回転させ、2 番目の頂点が頂点はその上にあります)。この集計は、線形または二次補間を十分正確にするために十分に詳細でなければなりません。ただし、最初に概説した遅い方法を使用して、このテーブルを作成できます。x y xr0=0xyx

問題を取り除く別の方法は、ではなく多項式であるコンパクトにサポートされた動径基底関数を使用することです。これはどこでもスムーズで、簡単に統合できます。 qq2q


ちょっと誤解があると思います。質問の説明を更新しました。実際には、積分ではが0未満になることはありません。また、は必ずしも三角形に含まれているとは限りません。r 0qr0
Azrael3000 2012年

あなたの新しい追加は私には意味がありません。もしそのようにでなければなりません。または、 2D三角形に統合しますか?が三角形の中にあるとは思いませんでした。私は私の答えに少しだけ詳細を追加しました。 R R 3 R 0r0R3rR3r0
Arnold Neumaier

はい、 2D三角形に統合するのは正しいことです。R3
Azrael3000 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.