• ベストアンサー

行列の固有ベクトルの解法

現在行列の固有値と固有ベクトルをもとめるプログラムを作成しています。 手順としては、入力行列をハウスホルダー法により三重対角行列に変換し、その後QR法で対角化を行い固有値を求めます。 固有ベクトルはLU分解を使用して固有値ごとに求めていこうと考えました。 現状固有値を求めるプログラムは作成できました(そして正しく求められていることも確認しました)。そして行列のLU分解を行うプログラムまで作成できたのですが、LU分解後の行列から固有ベクトルを求める方法がわかりません。 詳しく説明します Ax = λx を (A - Iλ)x = 0 として、この(A - Iλ)をLU分解しました。 すると式は LUx = 0 となり 最終的に Ux = 0 をとく問題になります。 ここで行列Uは上三角行列なので、1次の連立方程式を解くように、行列Uの右下の要素を使って計算を始めていくのですが、自分がなにか勘違いをしているのだと思うのですがこの方法で計算すると固有ベクトルが全て0になってしまいます。  行列U     x       0 | 2 3 4 5 | |x1|   =  |0| | 0 4 2 9 | |x2|   =  |0| | 0 0 7 5 | |x3|   =  |0| | 0 0 0 8 | |x4|   =  |0| このような図式になり、固有ベクトルであるxを求めていくのですが、x4から順にもとめても0にしかならないんです。 下記のサイトを参考に学んでいたんですが、この部分が分からずにいます。 http://hooktail.org/computer/index.php?KL%C5%B8%B3%AB2 どこを勘違いしているんでしょうか? アドバイスをお願いします。  

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Lの方は対角成分が全部1で、正則だから、Uが正則でなくなるはずです。 ご質問文のUは正則になってしまっていますが…。 例えば、数値計算の誤差のために、0になるべきものに、小さな≠0の値が入っていたりしませんか?

noconan
質問者

補足

すいません。単純なミスをしてしまいました。 右下の8は0です。 見間違えてしまいました・・・・・ 申し訳ないです。 とすると正則ではないですね・・・・・・

その他の回答 (2)

noname#101087
noname#101087
回答No.3

| 2 3 4 5 | |x1|   =  |0| | 0 4 2 9 | |x2|   =  |0| | 0 0 7 5 | |x3|   =  |0| | 0 0 0 0 | |x4|   =  |0| これを所与としましょう。 最下行は任意の (x1 x2 x3 x4) で成立しますから、仮に x4 = 1 とおけば、x1~x3 が求まりますね。 これ、固有ベクトルの一つじゃありませんか ?

noconan
質問者

お礼

返信ありがとうございました。 おっしゃられるとおり、X4を1にすれば1つの固有ベクトルが求まります。 自分の見間違いでこんな質問をしてしまって申し訳ありませんでしたTT

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

λ を A の固有値とすると A - λI は正則じゃないので, A - λI = LU と分解したときに L と U の少なくとも一方は正則じゃないです. 挙げられた例だと U が正則なので, 対応する L は正則でないということになります. つまり LUx = 0 から Ux = 0 が導けません.

noconan
質問者

お礼

返答ありがとうございました。 Ax=λx (A-λI)x=0 A-λI=LUとして LUx=0とかけます。 ここでUx=Cと置くと LC=0となります。 行列L     C       0 | 1 0 0 0 | |x1|   =  |0| | 3 1 0 0 | |x2|   =  |0| | 3 8 1 0 | |x3|   =  |0| | 7 2 6 1 | |x4|   =  |0| ここで通常の連立方程式を解くように計算をすると、明らかにCは0ですよね。 よって Ux=C が Ux=0と記述できると思うのですが・・・・

関連するQ&A

  • 行列演算: 固有ベクトルの解法

    現在、対称行列の固有値、固有ベクトルを求めるプログラムを作成し、つい最近完成しました。 しかし、とても使い物にならないプログラムになってしまいました。 理由はとても遅いのです。 解法の手順として、まず固有値を求めてから固有ベクトルを求めるようと考え、入力の対称行列をHouseHolder法により三重対角行列に変換し、それをQR法により対角化してまず固有値を求めました。 固有値を求めることができたので、次に固有ベクトルを求めます。手順として、固有値ごとに入力対称行列の対角成分から固有値を減算した行列をLU分解し、連立一次方程式を解くように固有ベクトルを求めていきます。 この一連の手順で、対称行列の固有値、固有ベクトルを求めることができたのですが、とても時間がかかってしまいます。 ただし、対称行列の固有値を求めるまでの時間はとても高速です。 500×500の行列の固有値、固有ベクトルを求めるのに30分はかかってしまいますが、その中で固有値を求める時間は2秒しかかかりません。 つまり今固有値がわかっている状態で、固有ベクトルを高速に求めたいと考えています。 なにか高速に固有ベクトルを求める方法(アルゴリズム)はあるでしょうか?

  • 固有ベクトルの逆行列が存在しない?

    行列A= (0,1,1) (1,0,1) (1,1,0) の固有値と固有ベクトルを求める(ただし各固有ベクトルの最大の成分は1となるようにする) 問題なのですが, 固有値λ=-1(重解),2 と求め 固有ベクトルをそれぞれ x=(x1,x2,x3)=(1,-1/2,-1/2),(1,1,1) と求めたのですが, 対角化行列P= (1,1,1) (1,-1/2,-1/2) (1,-1/2,-1/2) の行列式が0になってしまいPの逆行列が存在しないことになってしまいます。 これはどこかで計算ミスをしているのでしょうか? それとも固有ベクトルに逆行列が存在しないことはあるのでしょうか? 自分ではこれ以上見直しても分からないので 教えてくださると助かります。

  • 固有ベクトルの作り方

    固有値から固有ベクトルを作ったとき  1 -1 1  0  0 0  0  0 0  となりました。 x=(u,v,w) とすると u-v+w=0 です。 (1) w=-u+v とすると x=c1(1,0,-1)+c2(0,1,1) (2) u=v-w  とすると x=c1(1,1,0)+c2(-1,0,1) ここから対角化の計算をしたりすると成分の違う行列になっても 問題は起きないんでしょうか?というか、違うベクトルになるこ と自体はどうなんでしょう?ご教授ください。

  • 正規行列の異なる固有値の固有ベクトルは直交する?

    Aを正規行列とすると適当な対角行列Λと適当なユニタリ行列Uが存在してU^*・A・U=Λである λとμを異なる固有値として Uの列ベクトルでありλの固有ベクトルであるベクトルが張るベクトル空間をPとし Uの列ベクトルでありμの固有ベクトルであるベクトルが張るベクトル空間をQとしたとき PとQは直交しλの固有ベクトルはPの元でありμの固有ベクトルはQの元であるから「λの固有ベクトルとμの固有ベクトルは直交する」 上の証明について質問します (1)結論は正しいですか? 正しければ (2)証明に穴はありますか? あれば (3)どのように証明したらいいでしょうか?

  • 行列の対角化 固有値を求める

    次の行列の固有値、固有ベクトルの作る行列Pを求めて、対角行列に変換せよ。 A= 7  4 -16 -6 1  12 2  2  -5 と言う問題で、 固有値を求めるとき、|A-λE|より (7-λ) 4 -16 -6 (1-λ) 12 2   2   (-5-λ) となって =(7-λ)(1-λ)(-5-λ)+(-6)*2*(-16)+2*4*12-・・・・ としてから展開すると、計算も大変で、そのあとの 因数分解もわかりません;; どうすれば、もっと簡単に固有値を求められるでしょうか? お願いします。

  • 固有値と固有ベクトルが既知のときの行列

    3次の正方行列 A について次の条件が成り立つとする. | 1| | 0| |-1| は固有値 1 の固有ベクトルである. | 1| |-1| | 0| は固有値 -1 の固有ベクトルである. |2| |0| |1| は固有値 0 の固有ベクトルである. このとき以下の問に答えよ. (1) A を求めよ. (2) A を対角化する行列 P と対角行列 P^-1AP を求めよ. (2)は固有ベクトルをPとすれば,1次独立だからPが正則となり答えが分かるのですが,(1)をどのように出すか分かりません.ご教授お願いします.

  • 3×3行列の固有値と固有ベクトル

    以下の行列Aの固有ベクトルを求めようとしているのですが,解を見つけられないでいます. 2 1 0 1 2 0 0 0 -2 計算を進めた結果,固有値λは3,1,-2となり,λ=3,1に対応する固有ベクトルはそれぞれ[1,1,0]t,[1,-1,0]tとなったのですが,λ=-2の場合で求めた固有ベクトル[1,1,k]t(kは任意の実数)がAx=λxに対応しない値になってしまいます.私の計算に何か問題があるのでしょうか? また,行列Aは対称行列なのでそれぞれの固有ベクトルの内積は0になると思うのですが,固有ベクトルの値が得られないことと何か関係があるのでしょうか? 回答よろしくお願いします.

  • 行列の固有ベクトル

    (n*n)行列の固有値、固有ベクトルを求める過程で、 固有値が重解になるものの扱い方がよくわかりません。 独立な固有ベクトルがn個求められればよいのですが、 固有ベクトルがn個存在しない場合もあるのでしょうか? また、そういう行列は対角化できないので 代わりにジョルダン標準形にする、 と考えていいのでしょうか? どなたか教えてください。よろしくお願いします。

  • 3×3の行列 固有値 固有ベクトル

    以下の添付画像の問題にとりくんでいます。 まず対角化して、その後Aのn乗をもとめようとしていますが、固有ベクトルがうまく求められません。固有値が±√3の時は問題ないのですが、√3iのとき固有ベクトルがうまくでません。 私の計算ミスですか?それとも方針が違いますか? どなたかこの問題の解き方をお教えください。

  • 行列の固有ベクトルの問題

    3X3行列T (0 1 0)        (0 0 1)       (-2 1 2) がある。 行列Tの固有ベクトルを求めよ。ただし、各固有ベクトルは、第1成分を1とするものを求めよ。 次に 3X1 行列(3)       (2)       (6) を求めたTの固有ベクトルの線形和の形で表せ。 という問題です。 私は固有ベクトルが (1)   (1)   (1) (1)   (-1)  (0.5) (1)   (1)   (1) と求まりましたが、これは       (3)       (2)       (6) を表せないのではないかと思いますが。 どこか計算ミスをしたのですか? ご指導を待っております!お願いします!