• 締切済み

大規模行列の対角化

30000×30000の対称疎行列を対角化してすべての固有値を求めたいのですが、行列要素の格納がサイズが大きすぎてできません。 そこで、メモリをあまり使わずに格納する方法がありましたら 教えて下さい。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

疎行列用の固有値計算アルゴリズムがあると思うなぁ.

関連するQ&A

  • 対称行列 対角行列

    対角行列と対角化について質問させて頂きます。 対角行列は、対角成分以外が0の正方行列です。 対称行列は、t^A=Aが成り立つ正方行列Aです。 ここで、対称行列の定理で、 ・対称行列の異なる固有値に属する固有ベクトルは直交する。 というものがあるのですが、これは対角行列にも言えるのでしょうか? 対角行列は対称行列なので言えると思いますが、 テキストに特に記載がなかったので質問させて頂きました。 以上、ご回答よろしくお願い致します。

  • 対称行列の対角化

    行列Aの固有値と固有ベクトルを求めよ。また、行列Aを対角化せよ。   (3 1 1) A=(1 2 0)   (1 0 2) っていう問題で、固有値1,2,4は出したんですけど、そこから普通に固有ベクトルを出して対角化しようとしたらうまくいきませんでした。 対称行列では何か特別な方法を使うんでしたっけ? Aは3次の正方行列です。 どなたかわかる方教えてください。

  • 実対称行列の対角化に関する理屈が正しいか判断願います。

    実対称行列の対角化に関する理屈が正しいか判断願います。 (3 3 1) (3 9 -1) (1 -1 1)の実対称行列を対角化します。 固有方程式を作り、サラス式で展開すると固有値は0と(13±√(57))/2となります。 ここまでは、数学カテゴリの回答者の皆さまに確認いただいています。 ここからが疑問です。 そもそもこの行列は実対称行列であって固有値はすべて実数である、つまり、適当な直行行列で固有値を対角成分とする対角行列に変換できることが保証されているのだから、固有値を適当に対角に並べた行列が対角行列となる。 解は 1行目((13-√(57))/2 0 0) 2行目(0 (13+√(57))/2 0) 3行目(0 0 0) となる。 という考え方はどうでしょうか? 判断をお願いします。

  • 行列の対角化について

    実対称行列A:= | 0 1 2 | | 1 1 3 | | 2 3 0 | に対し、tPAPが対角行列となるような実正則行列Pはどのように求めればよいのでしょうか? この場合は、固有値&固有ベクトルが簡単には求まらないので、簡単には対角化のための行列が求まりません。(たいていの問題では求まるんですが。) このような時は実二次形式を利用して解く、というような事は、色々見るのですが、いざやってみると行列Aの第1行第1列が"0"である事が非常に扱いづらいのです。つまり基本行変形だけで三角行列に変形できないのです。 どなたか教えていただけないでしょうか?

  • 対称行列とその対角化行列

    対称行列とその対角化行列 行列要素が複素数である行列Aが(A^T)=A(Tは転置)を満たすなら,Aは対称行列といいますか?(ネットで見る限りではA^T=Aなどという場合,行列要素は実数である場合が多いようなのですが.) 実対称行列は直交行列で対角化できて,正規行列はユニタリ行列で対角化できますが,行列要素が複素数でA^T=Aを満たすような行列はどのような行列で対角化可能なのでしょうか?普通にユニタリ行列でしょうか?それとも,要素が複素数で(U^T)U=I(単位行列)なる行列Uによってできるのでしょうか? 要素が複素数で(U^T)U=Iなる行列Uに名前はついているのでしょうか? よろしくおねがいします.

  • 行列の対角化

      ┌1 -2 -2┐ A=│1  2  2│   └(-2) 2  1┘ という行列なのですが、対角化できるのでしょうか? 何度も何度も解きなおしてるんですけど対角化できません。 Aの固有方程式の解で重解になっているものがないので対角化は・・可能ですよね? 固有値として-1、±√7が求まるのですが、±√7に対する固有空間を考えるとどうしても固有ベクトルとして成分がすべて0の(3,1)行列しか出てこなく、対角化行列が   ┌0 0 0┐ P=│1 0 0│    └(-1) 0 0┘ といったような行列になってしまうのですが、この場合P^(-1)が存在しないためP^(-1)*A*Pは存在しない事になり、Aは対角化不可能ということになってしまいますよね?? 多分どこか間違った理解をしているところがあると思います。 どなたかご教授お願いできないでしょうか?

  • 対角化行列

    三次正方行列A= (       ) | 1 1 0 | | 1 1 1 | | 0 1 1 | (       ) 書き方わからないので見にくい方いたら申し訳ありません。(左上と右下だけ0であとはすべて1です。) この行列を対角化するんですが、固有値はλ1=1, λ2=1+√2, λ3=1-√2 の三つで、それぞれの固有ベクトルってλ1で、x=[1 0 -1] λ2で、x=[1 √2 1] λ3で、x=[1 -√2 1]となったのですが、これってあってますか? (↑はそれぞれ正規化してません、対角化行列を作るときはλ2,λ3のノルムである2にλ1をあわせるようにして作りました。) 対角化行列の逆行列を求めるときにどうしてもおかしくなってしまいます。よろしくおねがいします。

  • エルミート行列の対角化の証明

    証明 エルミート行列はユニタリー行列を使って固有値を対角要素とする対角行列にでき、その固有値は実数である。 いろいろ調べたんですが、この証明ができなくて、困っています。 よろしくおねがいします。

  • 行列・対角化可能の条件は?

    行列で対角化可能の時の条件を教えて下さい。 問題で固有値、固有ベクトル、対角化可能の場合は対角化する正則行列を求めよ、とあります。 3×3行列で固有値が3つ、全て異なる場合は対角化可能。 固有値が1つ(3重解)の場合は対角化不可。 では、固有値が2つの場合は対角化可能と不可の場合がありますが、これはどのようにして見分けるのでしょうか? 例えば    -3 -2 -2 B=[ 2  1  2  ]     2  2  1  の時、固有値は1、-1(重解)ですが対角化可能です。なぜでしょうか?宜しくお願いします。

  • 大規模行列の計算

    10000*10000の大規模行列を解くプログラムを作成したいと考えています。 行列は対称行列で疎行列です。一行あたりの非零要素は10~20程度しかなく、ほとんどが零要素になっています。 メモリの関係上[10000][10000]の配列の形で確保することはまず無理でした。なのでガウスの消去法は使えないかと思います。(使えるのかもしれませんが、要素のうまい記憶方法のアルゴリズムが浮かびません) 解法として、ウェーブ・フロント法を使おうと考えたのですが、計算前の行列内の零要素で上三角行列を求める過程において非零要素となる要素については、あらかじめ記憶しておかなければなりません。しかし、零要素から非零要素に変化する要素を発見するアルゴリズムがわかりません。 その方法や、そのほかの方法で10000*10000の大規模行列を解く方法があれば教えてください!

専門家に質問してみよう