自然界で発生する多くの偏微分方程式、特に強い非線形性または異方性を伴う場合、適切な前提条件の選択は、反復法が急速に収束するか、ゆっくり収束するか、まったく収束しないかに大きな影響を与えます。高速で効果的な前処理を行うことが知られている問題の例には、マルチグリッド法が頻繁に高速収束を達成する強楕円型偏微分方程式が含まれます。収束を評価するために使用できる多くのテストがあります。ここでは、PETScの機能を例として使用します。これは、線形(および非線形方程式)のスパースシステムを反復的に解決するための、おそらく最も古く最も成熟したライブラリであるためです。
PETScは、KSPMonitorと呼ばれるオブジェクトを使用して、反復ソルバーの進行状況を監視し、ソルバーが収束したか発散したかを判断します。モニターは、4つの異なる基準を使用して、停止するかどうかを決定します。ここでの議論の詳細は、KSPGetConvergedReason()のマニュアルページに記載されています。
x
Ax=b
x^r^
(P−1(Ax−b))
r^=P−1(Ax^−b)
(AP−1Px=b)
r^=Ax^−b
収束基準
- atol
∥r^∥≤atol
- 相対許容誤差-相対許容誤差基準は、残差のノルムが定義済み定数係数で右側のノルムよりも小さい場合に満たされ:rtol
∥r^∥≤rtol⋅∥b∥
- その他の基準 -小さなステップ長または負の曲率の検出により、反復解も収束する可能性があります。
発散基準
最大反復 -ソルバーが実行できる反復の数は、最大反復によって制限されます。反復の最大数に達したときに他の基準のいずれも満たされていない場合、モニターは分岐して戻ります。
残差NaN-いずれかの時点で残差がNaNに評価される場合、ソルバーは発散として戻ります。
残差ノルムの発散任意の時点で残差のノルムが所定の一定の倍右側のノルムよりも大きい場合に発散としてモニタ戻る:
dtol
∥r^∥≥dtol⋅∥b∥
ソルバーの内訳 Krylovメソッド自体は、特異行列または前提条件を検出した場合に発散を示すことができます。