小さい線形システムの数値的に安定な陽解


11

不均一な線形システムがあります

Ax=b

ここで、実数であり、N × NのマトリクスN 4Aのヌル空間はゼロ次元であることが保証されているため、方程式には一意の逆x = A 1 bがあります。結果はODEの右側に入りますが、これは適応法を使用して解決する予定であるため、Aおよびbの要素のわずかな変動に対して解が滑らかであることが重要です。この要件と小さな次元性のために、A 1 bの明示的な公式を実装すると考えました。An×nn4Ax=A1bAbA1b。要素は正確にゼロでも、まったく異なる値でもかまいません。私の質問は、これがあなたにとって理にかなっているか、そしてこれに対する既知の安定した表現があるかどうかです。x86システム用にCでコーディングしています。


私はそれが非常に遅くなることを知っていますが、ここに私の提案があります:完全なピボットによるガウス消去が安定していることが知られているので、小さなサイズのアルゴリズムをハードコーディングすることは理にかなっています。連続したピボットを選択する方法があるため、ピボットは問題を複雑にし、n 2つの異なる式のセットにつながります。交換する必要のあるものを交換し、ケースの数を1 2 + 2 2 + n 2に減らすことにより、この複雑さを軽減できます。(n!)2(n!)212+22+n2
イヴ・ダウスト

回答:


6

明示的な式を実装する前に、「それだけの価値はありますか?」という質問を自問します。

  • 古典的なガウス消去法を使用するBLAS + LAPACKに簡単にリンクできる一方で、これらの明示的な式を記述、デバッグ、検証するのに時間を費やす価値はありますか?
  • 安定性を期待していますか?反対に、明示的な式(Cramerの規則のような)をプログラミングすると、安定性が向上するとは思わない。
  • 速度を上げることを期待していますか?すでにプログラム全体のプロファイルを作成しましたか?hese 4x4システムの解決に費やす時間は何分ですか?
  • 1年後にモデルを改善し、4つではなく5つの方程式が必要になる確率はどのくらいですか?

私のアドバイス:最初にBLAS / LAPACKの組み合わせを使用し、それが機能するかどうかを確認し、プログラム全体のプロファイルを作成し、生徒に明示的な式(ここでは皮肉なこと)を実装してもらい、速度と堅牢性を比較します。


一般的な1x1、2x2、3x3、4x4のマトリックスをCAS(Maple for me)に入力して反転させるだけなので、実装にかかる労力は約15分です。明示的な(Cに似た)結果を返します(Cramerのルールに基づいていると思われます)。2番目のポイントはまさに私の懸念です。結果には、マトリックス要素の高次積があります。明らかに、これは異なる用語の「ほぼキャンセル」によるエラーを引き起こす可能性があります。しかし、問題は、これが発生しない形式で結果を書き込むことができるかどうかです。この場所では、速度は重要ではありません。
highsciguy

6

O(n3)

AAdet(A)0xbxA

A

n=2

私は、BLAS + LAPACKを使用してODEソルブでGEPPを実行する際の問題は、暗黙的なODEメソッドで使用される有限差分であることを期待しています。私は、人々が右側の評価の一部として線形プログラムを解いたことを知っています、そして彼らはそう単純に(線形プログラムの解決を右側に差し込んで、シンプレックスアルゴリズムを呼び出して)、彼らの精度を大いに減らしました計算された解決策問題を解決するためにかかった時間大幅に増加しました。私の研究室では、このような問題をはるかに効率的かつ正確に解決する方法を見つけました。彼の出版物がまだリリースされているかどうかを確認する必要があります。GEPPまたはCramerのルールを使用するかどうかに関係なく、同様の問題が発生する可能性があります。

問題の分析的なヤコビ行列を計算できる方法がある場合は、数値の頭痛を軽減するためにそれを行うことをお勧めします。評価は有限差分近似よりも安価で、おそらくより正確です。必要に応じて、逆行列の導関数の式をここで見つけることができます。逆行列の導関数の評価は、少なくとも2つまたは3つの線形システムの解を必要とするように見えますが、すべて同じ行列と異なる右辺で行われるため、単一の線形システムよりも大幅に高価になることはありません。解決する。

そして、計算されたソリューションを既知のパラメーター値を持つソリューションと比較する方法があれば、そうすることで、これらの数値的な落とし穴のいずれかが発生したかどうかを診断できます。


ここでスムーズに書くとき、有限の精度で評価されたときにも滑らかである、つまり安定しているということですか?GertVdEの回答に対する私のコメントも参照してください。ほぼ特異な行列を除外できると思います(そのような場合、私の物理的な問題の分析を再定式化する必要があると思います)。
-highsciguy

1
Adet(A)0

nA

-2

それが役立つかどうかはわかりませんが、安定したソリューションについて話すときは、近似方法について話しているだけだと思います。物事を明示的に計算する場合、安定性には意味がありません。つまり、安定性を獲得するには、近似解を受け入れなければならないということです。


5
安定性に関しては、浮動小数点近似(丸め、キャンセルなど)はすべてカウントされます。答えの式を持っている場合でも、有限精度の計算で正確に計算できるかどうかを判断する必要があります。
ビル・バース

他の人が見ているように、この答えは否定的ではないと思います。もちろん、安定性の問題は明示的な結果にも存在します。しかし、ctNGUYENは、少量の拡張などの近似解を実際に正確に表現できる完全な明示的結果よりも正確にできると言いたかっただけだと思います。ある意味では、式が常に安定するように、このような難しいケースを扱う明示的な解決策を求めます。
highsciguy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.