大規模線形システムの反復法が実際に収束的であることを確立する方法は?


11

計算科学では、直接法または反復法などのいくつかの(効率的な)手段で解く必要のある大きな線形システムに遭遇することがよくあります。後者に注目した場合、大規模な線形システムを解くための反復法が実際に収束的であることをどのように確立できますか?

試行錯誤分析(cf. なぜ私の反復線形ソルバーが収束しないのか?)を行い、証明による収束を保証するか、音響経験ベース(例えば、CGやGMRESなどのKrylov部分空間法)を持つ反復法に依存できることは明らかです。それぞれ対称および非対称システムの場合)。

しかし、実際に収束を確立するために何ができるでしょうか?そして何が行われますか?


1
いい質問です!「収束を確立する」と言うとき、「解決策が収束していることを確立する」という意味ですか、それとも「収束が起こることを確立する」という意味ですか?たとえば、PETSc KSPオブジェクトには、収束をテストするためのいくつかのデフォルトのテクニックがあります(エラーのノルムは減少し、最大反復回数)。これはあなたが探している答えの一種ですか?
アロンアーマディア

@aron:両方の問題に対処する回答を見るのは面白いと思います。
アランP. Engsig-Karup

回答:


6

自然界で発生する多くの偏微分方程式、特に強い非線形性または異方性を伴う場合、適切な前提条件の選択は、反復法が急速に収束するか、ゆっくり収束するか、まったく収束しないかに大きな影響を与えます。高速で効果的な前処理を行うことが知られている問題の例には、マルチグリッド法が頻繁に高速収束を達成する強楕円型偏微分方程式が含まれます。収束を評価するために使用できる多くのテストがあります。ここでは、PETScの機能を例として使用します。これは、線形(および非線形方程式)のスパースシステムを反復的に解決するための、おそらく最も古く最も成熟したライブラリであるためです。

PETScは、KSPMonitorと呼ばれるオブジェクトを使用して、反復ソルバーの進行状況を監視し、ソルバーが収束したか発散したかを判断します。モニターは、4つの異なる基準を使用して、停止するかどうかを決定します。ここでの議論の詳細は、KSPGetConvergedReason()のマニュアルページに記載されています。

x

Ax=b

x^r^
  1. (P1(Axb))

    r^=P1(Ax^b)
  2. (AP1Px=b)

    r^=Ax^b

収束基準

  1. atol
    r^atol
  2. 相対許容誤差-相対許容誤差基準は、残差のノルムが定義済み定数係数で右側のノルムよりも小さい場合に満たされ:rtol
    r^rtolb
  3. その他の基準 -小さなステップ長または負の曲率の検出により、反復解も収束する可能性があります。

発散基準

  1. 最大反復 -ソルバーが実行できる反復の数は、最大反復によって制限されます。反復の最大数に達したときに他の基準のいずれも満たされていない場合、モニターは分岐して戻ります。

  2. 残差NaN-いずれかの時点で残差がNaNに評価される場合、ソルバーは発散として戻ります。

  3. 残差ノルムの発散任意の時点で残差のノルムが所定の一定の倍右側のノルムよりも大きい場合に発散としてモニタ戻る: dtol

    r^dtolb
  4. ソルバーの内訳 Krylovメソッド自体は、特異行列または前提条件を検出した場合に発散を示すことができます。

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