• 締切済み

固有値,固有ベクトルのいつくかの解法が紹介されている教科書

 私は,これまで固有値,固有ベクトルが当然一意的に求められる ものだと思って,断りもなく使用していましたが, それはヤコビ法で求めたものであること.また, そのほかにもいつくかの解法があることを最近知りました.  代表的なものは勉強しておきたいと思い参考書を探しましたが, マイナーな話題なのかあまり扱われておりません.  そこで質問ですが, ・固有値,固有ベクトルの解法をいくつか紹介している ・和書 ・絶版でないもの を紹介して頂けないでしょうか?  よろしくお願いします.

みんなの回答

noname#221368
noname#221368
回答No.1

 残念ながら絶版のようですが、中古はけっこう手に入るようです。また、大学の図書館には必ずあると思われます。   行列計算ソフトウェア WS、スーパーコン、並列計算機,小国力編著,丸善株式会社,平成3年.  上記書籍の中で共著になっている、ドンガラ教授は、この手の話の世界的大御所で、何冊か訳本がでています。こっちは絶版ではないと思います。

kamiyasiro
質問者

お礼

ご回答,ありがとうございます. 絶版ですね.Amazonのマーケットプレイスやヤフオクにも 出ていませんでした. 引き続き,適切な教科書があったら教えて下さい.

関連するQ&A

  • 固有値問題の解法について

    固有値問題を解くプログラムを作りたいと考えています。 対象とする行列は「実対称行列(正方行列)」で、251次の 行列を考えており、この行列の固有値、固有ベクトルを 求めたいです。そこで、現在調べたところ、ヤコビ法、 QR法などがあるのですが、どの方法がより高速に求められる でしょうか。ご教示願いたいと思います。また、上記の方法 よりも高速に求められる解法などありましたら、教えて頂き たいです。宜しくお願いします。

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

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

  • 固有値と固有ベクトル・重解を解に持つ場合の解法

    以前質問させていただいたのですが、教科書に固有値が重解の場合の固有ベクトルを求める解法が省かれていて理解できませんでした。 問題はこんな感じです。 2×2行列式A A= |1 -1| |4 -3| の固有値と固有ベクトルを求めよ。 (自分の解法) まず 与式= |1-t -1| |4 -3-t| サラスの方法で展開し、 (1-t)(-3-t) - (-1)・4 =t^2 + 2t 1 =(t+1)^2 となるので固有値をλ1,λ2として、 λ1=-1,λ2=-1 (ここまではできたのですが、解が重解になってしまいました。固有ベクトルを求める方法ができなくてこまってます。) 固有値λ1=λ2=-1より、求めるベクトルをx=t[x1,x2]とすると A= |1-(-1) -1 | |4 -3-(-1)| = |2 -1| |4 -2| よって 2x1-x2 = 0 4x1-2x2 = 0 この二つは同一方程式より、x1 = 2x2 任意の定数αをもちいてx1 = αとすれば、 x = αt[1,2] しかし、答えには、 x1 = αt[1,2] x2 = βt[1,2] + αt[0,-1] とありました。なぜなでしょう? 参考にしたページなんかを載せてくれるとありがたいです。 ちなみにこんな問題もありました。 A= |0 0 1| |0 1 0| |-1 3 2| これは固有値がすべて1になる場合です。 これも解法がのってませんでした。

  • 固有ベクトルのプログラムによる求め方で困っています!!!

    固有ベクトルの求め方について質問です。 主成分分析をするため、 ヤコビ法やパワー法をプログラム化して 固有値・固有ベクトルを求めました。 すると、第2,3主成分あたりから、 固有ベクトルの符号が逆になってしまうのです。 例えば、正解は「-4.5」の時、 「4.5」のように、 値は同じなのですが、 符号が逆転してしまいます。 プログラムは既に完成されたのを コピーしているので、 プログラムが変ということはないと思います(自分でも中身をチェック済み)。 ちなみに固有値は完璧です。 符号が逆転するという問題は、 どのように解決したらよろしいでしょうか。 分かる方、ぜひ教えてください!!

  • 固有ベクトルの求め方!

    B= | 4 -3| |-1 2| の大きい方の固有値に対する固有ベクトルを求めよという問題がありまして、 僕の解答は(3,-1)となったのですが、解答には(-3,1)と載っておりました。 どちらでも大丈夫なのでしょうか。 参考書の解答を見ると、途中経過を λ=5に属する固有ベクトルv=(x1,x2)を求める。 Bv=5vより | 4 -3| |x1| |x1| |-1 2| |x2| = 5|x2| これより、 4x1-3x2=5x1 -x1+2x2=5x2 ↓ -x1+-3x2=0 -x1+-3x2=o 解を求めると、x1=-3t x2=t ゆえにλ=5に属する固有ベクトルは (-3t, t)=t(-3,1) となっておりました。 僕の解法は、 |λ-4 3| | 1 λ-2| のλに5を代入いたしまして、 x+3y=0となるので、 そこから適当にx=3 y=-1と定めて、 固有ベクトルを(3,-1)と求めました。 参考書の解法である、tに置くやり方の意味も分かりません。 ご教授頂きますようよろしくお願い致します。

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

    現在行列の固有値と固有ベクトルをもとめるプログラムを作成しています。 手順としては、入力行列をハウスホルダー法により三重対角行列に変換し、その後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 どこを勘違いしているんでしょうか? アドバイスをお願いします。  

  • なぜ固有値・固有ベクトルが関係するのか?

    大学初級の線形代数を勉強しています。 対角化するのに、なぜ固有値・固有ベクトルが関係するのでしょうか? 参考書を読んでもよくわからず・・・。解説してほしいです、よろしくお願いいたします!

  • 固有値が重解の行列Aの不動直線の求め方

    お世話になります。よろしくお願いします。 ___________________ 行列A=(a b)の固有値が重解αを持つ時      (c d) 一次変換Aの不動直線を求めたいのですが。 (固有値αの固有ベクトルを<u>とします。) ___________________ 固有値が重解の場合の不動直線の求め方は なかなか本に載ってなくて困っています。 どのように考えればよいでしょうか? 勉強のためにいろいろな方針、解法を募集しますので ご協力よろしくお願いします。

  • scilab ヤコビ法について、errorがでます

    ヤコビ法で固有値、固有ベクトルを求めるプログラムを色々調べながら作っていたのですが、errorが出てしまい手詰まりになりました。あまり、scilab自体詳しくなく、多々間違いがあるかもしれませんが、学校でどうしても必要なため、どうか、解答の方をよろしくお願いします。 //初期化 A=[2 1 3;1 0 1;3 1 0] Pinf=eye(3,3) //ヤコビ法:Aの対角成分が固有値、 Pinfの行ベクトルが固有ベクトルになる for i=1:21, i if abs(A(1,2))>abs(A(1,3)) then theta=atan(2*A(1,2))/(A(1,2)-A(1,3))/2 P=[cos(theta),sin(theta);-sin(theta),cos(theta)]; elseif abs(A(1,3))>abs(A(2,3)) then theta=atan(2*A(1,3))/(A(1,3)-A(2,3))/2 P=[cos(theta),sin(theta);-sin(theta),cos(theta)]; else theta=atan(2*A(2,3)/(A(2,3)-A(1,2)))/2 P=[cos(theta),sin(theta);-sin(theta),cos(theta)]; end Pinf=P*Pinf A=P*A*P' ,end 現在、下から4行目のendを入れなければ、end または 「else が抜けています...」とerrorが出てしまい、また、endを入れると、その下の Pinf=P*Pinf の所で、「一貫性がない掛け算です。」とerrorがでます。 以上が、現在困っている状況になります。 よろしくおねがいします。

  • インバータの変調法、特に空間ベクトル変調について

    インバータの変調法、特に空間ベクトル変調についての質問です。 現在、空間ベクトル変調について勉強しているのですが、空間ベクトル変調は三角波比較法とは異なり、「三相量を一括で扱うことができる」ということを知りました。 そこで、質問なのですが、三相量を一括で制御することで得られるメリットとは何でしょうか。 また、上の質問とは別ですが、参考書に「三角波比較法は小形制御用CPUの発達により衰退し、空間ベクトル変調法が主流になっている。空間ベクトル変調によりシステムや回転機の制御を便利なものとする」との記述もありました。なぜ小型CPUが発達すると三角波比較法は衰退するのか、空間ベクトル変調により制御がどのように便利になるのかが理解できませんので、お答えいただけたらと思います。