回答:
マルチグリッドの背後にある主なアイデアは、投影です。私はそれについて次のように考えようとします:
かなりの精度でPDEを解きたいと思うので、たくさんの点がたくさんある非常に細かいグリッドでドメインを離散化することにしましょう(たとえば、有限差分法を使用して)。最後に、方程式系をセットアップし、それを解決する準備ができました。私はお気に入りの反復ソルバー(jacobi、gauss seidel、共役勾配など)を使用してみます。私は1日以上待って、コンピューターがまだ答えを計算しようとしていることに気づきました!!!
これらの反復法がすぐに動作しない理由は、(通常)このような方程式の大規模なシステムをセットアップすると、行列自体の固有値が1に非常に近いためです。多くの反復法の収束速度は最大の固有値に反比例するためです(27ページのブリッグのマルチグリッドチュートリアルスライド、パート1へのクリスチャンクラソンのリンクを参照)。そのため、最大固有値が1に近いほど、反復法は遅くなります。(注:これは少し単純化しすぎていますが、マルチグリッドの必要性を動機付けるのに役立ちます)。
明らかに、未知数が少ない場合(つまり、グリッドポイントの少ない粗いグリッド上)に問題を解決する方が常に高速です。しかし、もっと重要なのは、より粗いグリッドの解(または近似解)が、より細かいグリッドの問題を解決するための良い出発点です。 これは、ほとんどの(すべてではないにしても)マルチグリッドメソッドの背後にある重要な考え方です。これはなぜですか?直感的には理にかなっていますが、これを正当化する数学的に厳密な方法があります。
元の細かいグリッドの問題に適用された反復法(引数のために、ジャコビまたはガウスサイデル)のエラーのフーリエモードを見てみましょう。最初の数回の反復で、ほとんどの高周波(高度に振動する)エラーが除去されることがわかります。これは素晴らしいことですが、低周波(振動が少ない)エラーが残っており、すぐには消えません。実際、標準の反復法が迅速に収束するのを妨げるのは低周波誤差です。
粗いグリッド(たとえば、jacobiやgauss-seidelなどの反復法)で問題を解決するとき、基本的には、細かいグリッドよりもはるかに迅速に(つまり、より少ない反復で)低周波数エラーを除去できます。したがって、粗いグリッドの問題を解決する場合、より低い周波数誤差が大幅に減少したソリューションがあります。したがって、より細かいグリッドでの反復法の開始点として役立ちます。
さまざまなマルチグリッド方式がありますが、それらのほとんどは以下のいくつかのバリエーションによって動作します。
私にとって、マルチグリッド方式の最も難しい部分は、グリッド間の投影です。@ChristianClasonによって提案されたBriggsのチュートリアルは、このテーマを私よりもはるかにうまく処理します。
このサイトは、擬似コードで詳細な説明を求めるのに適した場所ではない可能性があります(FAQに記載されているように、「質問に答える本全体を想像できるなら、あまりにも多くを求めています。」)このトピックに関する古典的な本の1つ(以下にリスト)から始めて、問題がある具体的な詳細についての特定の質問に戻ってください。
Briggs、Multigrid Tutorial、SIAM、2000(スライドはこちらとこちらからダウンロードできます)これはカジュアルな情報源であり、主に楕円問題に関するマルチグリッドの原理を簡単に紹介しています。
Brandt、Multigrid Techniques、改訂版、SIAM 2011(またはpdfをダウンロード)。これは、マルチグリッドの哲学とマルチスケールモデリングの大きな発展であり、暗黙的なソルバーに関する考え方を大きく変える可能性が十分にあります。 Achi BrandtのWebサイトには、2000年のMultiscale Scientific Computationのレビューなど、さらに多くの参考文献が含まれています。
Trottenberg、Oosterlee、およびSchueller、マルチグリッド、アカデミック・プレス、2001年にはこれがより特に流体力学の文脈の中で、具体的な方法についての多くの実験や詳細など、ブラントよりも例が取り組んできました。
Hackbusch、Multigrid Methods and Applications、Springer、1985 これは、Fredholm積分演算子の「第2種のマルチグリッド」を含む厳密な収束理論を提供します。