• 締切済み

固有値を求めるためのプログラム

現在、固有値問題を数値計算するプログラムを作っています。 その際、固有値の値を変化させ、固有値方程式の値ができるだけ0に 近づくときの値を固有値としていますが、他にいい解き方ってあるの でしょうか?

みんなの回答

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

わざわざ自力で作るなら, 例えば Householder変換で三重対角化してから QR 分解とかなんとかかんとか. Strum 列から二分探索なんかもあるけどね. でも, 課題でもなければわざわざ自分で作ることもないような気がする.

dora-pon
質問者

お礼

ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「固有値問題」っていろいろなものがありそうなんですが, あなたが解こうとしている「固有値問題」はどのようなものですか?

dora-pon
質問者

補足

行列の固有値問題です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • 固有値

    この問題がまったく何を言っているのかわかりません。。固有値は|A-λE│=0の固有値方程式を解いて、固有値λを求めればいいんですよね?参考書などを見ればちょっとした計算式と言葉で書いてあるだけで詳しい解きかたが書いていません。永年行列式をサラスの公式なり余因子展開なりで展開すると、λに対する三次方程式が得られ、それを解けば固有値がわかると教えていただいたんですがそれも何を言っているのかよくわからなくて。どうかできるだけ計算過程も詳しく教えてください。お願いします。 行列Aの固有値と対角化を以下の手順で考えていこう。    0 1 0  ( 1 0 0 )    0 0 0 (1)行列Aの固有値を求めなさい。数量の検算には、固有値の和が行列Aのトレースに等しいことに注意せよ。 (2)固有値に属する固有ベクトルを求めなさい。 (3)行列Aの固有ベクトルを列ベクトルとして任意の順に並べて作った行列Pを示しなさい。

  • 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になると思うのですが,固有ベクトルの値が得られないことと何か関係があるのでしょうか? 回答よろしくお願いします.

  • 複素数の固有値の求めるプログラムについて

    現在、C言語でプログラムを組んでいるのですが、複素数からなる行列の固有値を求めるプログラムがどうしてもつくることができません。 インターネットやプログラムのパッケージなどを調べてみたのですが、実数からなる行列の固有値を求めるプログラムしか載っておらず、勉強不足によりそれを複素数の場合に拡張することもできませんでした。 もしよければ、プログラムの組み方や実数のプログラムから複素数のプログラムへの替え方のこつ、もしくは「この本に載っていたよ」など、どんな情報でもかまいませんので教えて頂けないでしょうか? すいませんがよろしくお願いします。

  • 固有値

    この問題がまったく何を言っているのかわかりません。。固有値は|A-λE│=0の固有値方程式を解いて、固有値λを求めればいいんですよね?参考書などを見れば言葉で書いてあるだけで詳しい解きかたが書いていません。どうかできるだけ計算過程も詳しく教えてください。できれば(1)と(2)だけでも結構です。お願いします。 行列Aの固有値と対角化を以下の手順で考えていこう。    0 1 0  ( 1 0 0 )    0 0 0 (1)行列Aの固有値を求めなさい。数量の検算には、固有値の和が行列Aのトレースに等しいことに注意せよ。 (2)固有値に属する固有ベクトルを求めなさい。 (3)行列Aの固有ベクトルを列ベクトルとして任意の順に並べて作った行列Pを示しなさい。 (4)行列Aはこの行列Pによって対角化可能であるかどうかどうか調べなさい。 (5)行列Pの転置行列tPを示し、行列Pとの積tPPを計算しなさい。 (6)行列Aが行列Pによって対角化可能であるならば、対角化されることを示しなさい。

  • 固有値問題・・・

    固有値問題のプログラムをつっくっていますが、固有振動数の答えの中にマイナスの値がでてきたらおかしいですか? 固有振動数は、1秒間に振動する数ですよね?それがマイナスっていうことのイメージがわかないんですが・・・ よろしくお願いします。

  • 対称行列の固有値

    次の対称行列 1 -3 2 -3 2 1 2 1 3 の固有値xを求めたいのですが、 固有方程式が x^3-6x^2-3x+42=0 となり因数分解ができません。 対称行列の固有値は必ず実数となる らしいので私の計算間違いかと思いますが、 何度計算しても同じ固有方程式になってしまいます(T T) どなた様か御指導願います。

  • 固有値 固有ベクトル

    固有値を求める場合の固有方程式について質問させて頂きます。 固有値と固有ベクトルの定義は、 n×n行列Aに対して、λ∈C,x∈C^nが Ax=λx |x≠0 を満たすとき、λをAの固有値、xをλに対するAの固有ベクトルという。 固有値を求める際の固有方程式ですが、 私の手元にある参考書では、 |λI-A|=0とあります。 web等で調べると|A-λI|=0という表記もありました。 Iは単位行列を表します。 |λI-A|=0と|A-λI|=0はどちらも正しいのでしょうか? また、なぜ等しくなるのか教えて頂けないでしょうか? 以上、ご回答よろしくお願い致します。

  • 固有値

    次の行列の固有値と固有値に属する固有ベクトルをもとめよ。 (1)(-2) (2)(-3) といゆ問題なんですが、固有値を出すと1±√-1と言う様な複素数が出てくるのですが、 固有値に複素数ってありですか??それとも計算ミスとか、問題ミスですか?? この場合答えはなんて書けばイイですか??

  • 固有値について(ずっと悩んでます;;)

    固有値、固有ベクトルを求める問題なのですが教科書を見ても固有値を出す過程が飛ばされていてわかりません。 ずっと色々なサイトを見て回ってはいるもののやはり理解できずにとても悩んでます。 お手数をかけますが、固有値を出すまでの計算式を省略せずに書いて頂けないでしょうか? 本当に困っているので優しい方がいましたらお願いします;; ( 3-λ 2  -2)  (-2  -2-λ 1) ( 1   2 -2-λ)