CGを使用して


11

共役勾配(CG)メソッドを使用して、巨大なスパース正定行列Aのを解いています。解析中に生成された情報を使用して、Aの行列式を計算することは可能ですか?Ax=bAA


行列式を計算したいのはなぜですか?とにかく、このような結果は、巨大なマトリックスのアンダーフローまたはオーバーフローのいずれかになります。条件数を計算するように頼まれたらもっと慈善的になりますが、決定要因に時間を浪費しないでください!

おそらく既にご存じでしょうが、共役勾配プロセス中のリッツ値は行列の固有値に収束し、これから行列式の簡単な推定値を導き出すことができます。
— shuhalo

回答:


10

スパース行列の行列式の計算は、通常、直接解くのと同じくらい高価であり、私はCGが計算に大いに役立つだろうと懐疑的です。ためにCGを実行することが可能であろう(反復AがであるN × Nの全スペクトルのための情報を生成するために)Aを、そしてその後に固有値の積として決定因子を計算するが、これは両方の遅いであろうと数値的に不安定。nAn×nA

マトリックスのスパース直接コレスキー分解を計算することをお勧めします。たとえば、。ここで、Lは低三角形です。次に、 det (A )= det (L )det (L H)= | det (L )| 2、 ここでdet (L )は、三角行列の固有値が対角線に沿っているため、単純に下三角行列Lの対角要素の積です。A=LLHL

det(A)=det(L)det(LH)=|det(L)|2,
det(L)L

一般的な非特異行列の場合には、旋回LU分解を使用しなければならない、と言う、Pは順列行列であり、その結果 DET (A )= DET (P - 1)⋅ DET (L )⋅ DET (U )。 以来、Pは順列行列であり、DET (P )= ± 1、及び、建設によって、LPA=LUP

det(A)=det(P−1)⋅det(L)⋅det(U).
Pdet(P)=±1L通常、すべて1の対角線を持ちます。これは、を意味します。あなたは、このように計算することができるDET (A )として± DET (U )と再び三角行列の行列式は、単にその対角線エントリの生成物であることを認識する。したがって、行列式を計算するコストは、基本的に因数分解のコストです。det(L)=1det(A)±det(U)

A106x106

@ManuelSchmidt有限要素型の離散化から生じるそのサイズのスパース行列は、通常、(たとえば)マルチフロント法で簡単に因数分解できます。行列がHPDの場合、コレスキー分解を使用する必要があることに同意します(上記の議論の一般化は明らかです)。
— ジャックポールソン

迅速な回答と返信をありがとう。残念なことに、行列には​​特殊な構造がありません(簡単な因数分解が可能になります)。
— マヌエルシュミット

2
なぜ行列の行列式を計算する必要があるのか​​興味があります。最高固有値と最低固有値は十分ではありませんか?
— ジャックポールソン

これは、正規化定数だけでなく、複雑な確率分布関数の一部です。分布はファクタリングできることを知っています(そして、それが現時点でやっていることです)が、モデル化する大量のデータがあり、各ファクタは巨大になります。
— マヌエルシュミット

6

ABdimA≪dimBdimB=∞

BABABdetAdetBAB

detA=∏j=1…dimAλi(A)≈∏j=1…dimAλi(B)∏j=dimA+1…dimBλi(B)
BAdimB=∞detAdetB

かなり大きな行列式の計算を伴う、本当に美しく実用的なアルゴリズムがいくつかあることがわかりました。チェックアウトwww-m3.ma.tum.de/foswiki/pub/M3/Allgemeines/...
— マットKnepley

2

(再び)決定要因がなぜ、どのように悪であるかを理解することなく、演算子が簡単に因数分解できないか、行列としてまったく利用できないか、その決定要因を本当に推定する必要があると仮定しましょう。

AA

本のセクション6.7.3を厳密にたどることにより、CGの標準実装でこの決定要因の推定がどのように発生するかをリバースエンジニアリングできます。


2

det(A)=∏i=1nαk−1,
αk=rkTrkpkTApkrk≠0∀k=1,…,nRrkPpk
pk=−rk+∑i=1k−1γiri.
det(P)=(−1)ndet(R)rkpkA
∏k=1nαk=∏k=1nrkTrkpkTApk=det(RTR)det(PTAP)=det(RTR)det(A)det(PTP)=(det(A))−1.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.