正定対称行列の逆行列とその行列式を計算する最速のアルゴリズムは何ですか?


10

正定対称行列が与えられた場合、逆行列とその行列式を計算するための最速のアルゴリズムは何ですか?私が興味を持っている問題については、行列の次元は30以下です。

  1. 高い精度とスピードが本当に必要です。(数百万行列が実行されます)
  2. 行列式が必要です。各計算では、iverse行列の要素が1つだけ必要です。ありがとう!

何百万ものそのような行列を反転させる必要がありますか?それ以外の場合、速度は問題になりません。
Wolfgang Bangerth、2015年

わかりやすくするために、タイトルと質問を編集しました。エラーがあった場合はお知らせください。
Geoff Oxberry、2015年

@Wolfgang Bangerthはい、速度を考慮する必要があります。
注文

1
逆行列のどの要素が必要か知っていますか?それともランダムなエントリですか?
Memming

2
@Ordersコメントと編集は矛盾しているようです。逆の要素が1つ必要ですか、それともすべて必要ですか?
フェデリコポローニ2016年

回答:


12

私が興味を持っている問題については、行列の次元は30以下です。

WolfgangBangerthが指摘するように、これらの行列(数百万、数十億)が大量にある場合を除いて、行列の反転のパフォーマンスは通常問題になりません。

正定対称行列が与えられた場合、逆行列とその行列式を計算するための最速のアルゴリズムは何ですか?

速度が問題になる場合は、次の質問に答えてください。

  • 本当に全体の逆が必要ですか?(多くのアプリケーションは明示的な逆を形成する必要はありません。)
  • 本当に行列式が必要ですか?(決定要因は一般的ではありませんが、計算科学では前例のない話ではありません。)
  • 高精度にする必要がありますか?(精度の低いアルゴリズムは高速になる傾向があります。)
  • 確率的近似で十分でしょうか?(確率的アルゴリズムはより高速になる傾向があります。)

A=LLTdet(A)=i=1nlii2det(A1)=i=1nlii2

Annn3/3(1)実際に多数の行列を因数分解する必要がある場合、(2)因数分解が実際にアプリケーションの制限ステップである場合、および(3)ランダム化されたアルゴリズムの使用で発生したエラーが許容できる。マトリックスはおそらく小さすぎてスパースアルゴリズムに価値がないので、より高速なアルゴリズムの他の唯一の機会は、追加のマトリックス構造(たとえば、バンド)を必要とするか、問題構造を利用する(たとえば、アルゴリズムを巧妙に再構築して、逆行列またはその行列式を計算する必要が長くなります)。効率的な行列式アルゴリズムは、おおよそ線形システムを定数係数内で解くコストです。そのため、線形システムに使用されるのと同じ引数が行列式の計算にも適用されます。


B=A1bijjBjbijbnn=lnn2b11ここで、完全な前後の置換を計算する必要があります。
Stefano M

@StefanoMさらに良いことに、計算が始まる前に行列を並べ替えて、常に最良の状態になるようにすることができます。
フェデリコポローニ2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.