- ベストアンサー
逆行列の高速解法
C言語を用いて逆行列を計算するアルゴリズムのうち, 計算時間が短いプログラム例を教えていただけませんでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
数値計算のアルゴリズムはどれもメリットとデメリットがあります。問題にしている行列はどのような行列か教えて下さい。専門家からの回答もつきやすくなりますよ。
その他の回答 (4)
- iykm
- ベストアンサー率22% (5/22)
回答No.5
#4です。GOTO BLAS というものもあり、2割ほど高速なようです。
- iykm
- ベストアンサー率22% (5/22)
回答No.4
既存のライブラリを使うのが、高速なように思います。 LAPACK, CLAPACK, LAPACK++の何れかに、さらにATLASによるBLASのチューニングを 行えば、自作のプログラムより一桁近く速くなるように思います。
質問者
お礼
ありがとうございます. 参考にさせていただきます.
- ElectricGamo
- ベストアンサー率62% (137/220)
回答No.3
一般に連立一時方程式を解く際には逆行列を経由すると精度が落ちたり計算時間もかかります。行列が疎行列か密行列かで適したアルゴリズムが違うのですが、どれぐらいの次元のどんな成分の行列を何回ぐらい解かれるでしょうか?それはタイムクリティカルな部分の演算ですか?
質問者
お礼
ご返答ありがとうございました. 疎行列とは0要素の多い行列という意味だとしますと, 疎行列ではないようです. 行列の次数は最大で8です. 演算は下の御礼に記したものです. ただし,実時間制御にもちいるため, 精度よりも高速性を重視しております.
- 2718281828
- ベストアンサー率36% (66/181)
回答No.2
#1です。 勝手に固有値問題と勘違いしてしまいました。済みません。とりあえずLU分解で良いんじゃないですか?
質問者
お礼
抱えている問題は, X={(I-A)^(-1)}*(I+A) Y={(I-A)^(-1)}*B A:正方,B:非正方 です.やはりLU分解の方法が最速でしょうか?
お礼
ありがとうございます. 引き続き参考にさせていただきました.