特定の問題に対する適切な事前調整方法を検索するとき、どのガイドラインを使用する必要がありますか?


19

大型線形システムの解の反復法を使用して、それが前処理導入することがしばしば重要である、例えば、代わりに解決、ここで左前処理システムのために使用され。通常、必要であり、元のシステムのソリューションと比較して(はるかに)効率的なソリューションまたは計算リソース(メモリストレージなど)の削減の基礎を提供する必要があります(すなわち、場合)。ただし、前提条件を選択するには、どのガイドラインを使用する必要がありますか?特定の問題に対して、実務家はどのようにこれを行いますか?Ax=bM1(Ax=b)MM1A1M=A


1
でも、方程式の一つの特定のクラスに対して、これは非常に長く、詳細な回答を必要とするでしょう...
ジャックPoulson

前提条件をどのように選択できるかについて、発見的戦略を提案することが可能であるべきです。たとえば、問題が発生した場合、実践者は適切な前提条件を見つけるために実際に何をしますか?から対角線を抽出することに基づいた基本的な対角線前処理から始めますAます。または?
アランP. Engsig-Karup

4
@MattKnepleyをチャネリングし、適切なアクションは文献検索を行うことだと言います。それが失敗する場合は、かなり大きな問題で簡単に利用できるすべてのオプションを試してください。それが失敗する場合は、物理学について深く考え、問題に対するおおよその解決策を安価に考え出す方法を考え、それを前提条件として使用します。
ジャックポールソン

@JackPoulson:この質問は、どのスパース線形システムソルバーを使用するのと似ていますか?スケーラブルな線形ソルバーを選択する方法、それは私にはトピックに思えます(ただし、広い)。あなたのコメントは基本的に答えなので、答えに変えていただけますか?
ジェフオックスベリー

私はこの質問について賞金を開始しましたが、この方法でより適切な問題や特定のクラスの問題に制限される可能性のある質問をもっと見たいと思っています。
アロンアーマディア

回答:


17

これは非常に長い治療に値するので、私はもともと答えたくありませんでした。しかし、私は確かに推奨されるアプローチの非常に簡単な概要を与えることができます:

  1. 徹底的な文献検索を実行します。
  2. それが失敗した場合、あなたがあなたの手を得ることができると理にかなっているすべての前提条件を試してください。MATLAB、PETSc、およびTrilinosは、これに適した環境です。
  3. それが失敗した場合は、問題の物理的性質を慎重に検討し、問題のわずかに変更されたバージョンでも、おおよその安価な解決策を考え出すことができるかどうかを確認する必要があります。

3の例は、ヘルムホルツのラプラシアンバージョンのシフト、およびラプラシアンによる双調和演算子の事前調整に関するXinchao Juの最近の研究です。


ありがとう!このコメントの残りの部分は、最小文字数制限を満たしています。
ジェフオックスベリー

14

他の人は、私が「モノリシック」行列と呼ぶもの、例えばラプラス方程式、ヘルムホルツ方程式などの離散化された形式、またはそれを一般化したい場合はベクトル値弾性方程式。これらのことについて、方程式が楕円の場合、マルチグリッド(代数または幾何学)が勝者であることは明らかです。 「合理的」)。

私にとって大きな啓示は、例えばストークス演算子ように、モノリシックではない問題について何をすべきかでした 約15年前に数値解析を開始したとき、人々は同じテクニックを上記のようなマトリックスに適用できると期待していたと思います。研究の方向は、マルチグリッドを直接試すか、SSORの一般化Vankaのようなポイントスムーザー)および同様の方法。しかし、これはうまく機能しないため、色あせています。

(ABBT0).

(AB0BTA1B)1
(A1~B0(BTA1B)1~)
AA1~(BTA1B)1~

マトリックスを構成する個々のブロックを操作し、個々のブロックにプリコンディショナーを再利用するというこのアイデアは、非常に強力であることが証明されており、今日の方程式のプリコンディショニングシステムの考え方が完全に変わりました。もちろん、実際の問題のほとんどは実際には方程式系であるため、これは重要です。


1
男、そう、私は賞金が欲しかった!;-)
ヴォルフガングBangerth

2番目の段落では、「しかし、これはうまく機能しないため、色あせています」。なぜうまく機能しないのか、いくつかの直観を教えてください。動作する状況はありますか?
アンドリューT.バーカー

直接マルチグリッドをシステム全体に適用してもそれほど成功しないことが証明されている理由は、よりスムーズに方程式の構造特性を保存する必要があり、それを達成するのは簡単ではないからです。たとえば、マルチグリッドをストークス方程式に適用する場合、発散のないベクトルが発散のないベクトルを与えるように、より滑らかにする必要があります。ストークスにはこのようなスムーザーがありますが、構築するのは簡単なことではなく、通常はスムーザー/ソルバーとしての品質を奪います。よりエグネラルなケースでは、プロパティを保持することがはるかに難しくなります。
ウォルフガングバンガース

Jacobi / SSOR / etcのようなものをシステムに一般化することに関して:これらのメソッドのほとんどは、行列の対角要素が非ゼロであることを必要とします。ストークスの場合は明らかにそうではありません。そのため、次の最も簡単な方法は、個々の行列の行ではなく、行のブロック、たとえば単一の頂点に関連付けられたDoFのすべての行を調べることです。これらは「ポイントスムーザー」(頂点のようにポイント)と呼ばれ、ある程度は機能しますが、問題が大きくなるとJacobi / SSORと同じパフォーマンスの低下に悩まされます。マルチグリッドのような。
ウォルフガングバンガース

マルチグリッドは、ヘルムホルツの解法では有名ではありません。これは、主に、低エネルギーの振動モードを滑らかにしたり、粗い空間で表現することが難しいためです。波線マルチグリッドに関するいくつかの作業がありましたが、定式化は非常に技術的であり、現時点では成熟した方法論ではありません。非対称システムは、この種のブロック分解を使用して解決することもできます。変数の選択に応じて(たとえば、プリミティブと保守的)、ブロックされた構造を公開するために、前提条件の内部で基底の変更が必要になる場合があります。
ジェドブラウン

13

ジャックは前提条件を見つけるための適切な手順を示しました。「何が良い前提条件になるのか?」という質問に答えてみます。操作上の定義は次のとおりです。

Ax=bM1A1

ただし、これは前提条件の設計に関する洞察を与えません。ほとんどの前提条件は、演算子スペクトルの操作に基づいています。一般に、固有値がクラスター化されると、Krylovメソッドはより速く収束します。マトリックス反復または有理型関数と線形代数を参照してください。場合によっては、前提条件の結果がほんの数個の一意の固有値であることを証明できます。たとえば、不定線形システムの前提条件に関する注意

一般的な戦略の例として、マルチグリッドがあります。SORのような緩和的前提条件(ここではスムーザー)は、エラーの高周波成分を除去します。残差が粗いグリッドに投影されると、低周波数のエラー成分が高周波数になり、SORによって再び攻撃される可能性があります。この基本的な戦略は、AMGなどのより複雑なバージョンのMGの基礎となります。一番下で、ソルバーはエラーの最低周波数を正確に解決する必要があることに注意してください。

別の戦略には、小さな部分空間で方程式を解くことが含まれます。これは、Krylovソルバーがまさに行っていることです。最も単純な形式では、これはKaczmarzメソッドまたはAdditive Schwarzメソッドです。ここでの高度な理論の歪みであるDomain Decompositionは、ドメインがかなり正確に解かれていると想定されているため、インターフェイス上のエラーのスペクトル近似に集中しています。

A


お返事ありがとうございます。どれだけ遠くまで行って実際に前提条件が大規模システムで機能するか、そしておそらくこれを実際にどのように実行できるか、または実行する必要があるかを証明する経験。これは、など、多くのシステムのために、我々は直感に頼らなければならないこと私の経験であるヒューリスティック
アランP. Engsig-カラップ

直感は行き過ぎだと思います。私が実際に見ているのは、単純なシステムの証拠です。次に、一部の変更はパラメータまたは特定の種類の変動に影響されないという引数。次に、この変動モデルの外でも機能することを示す数値実験が行われます。
マットネプリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.