• ベストアンサー

固有値を求めたい。

固有値って|A-λE|=0として求めますよね。 具体的に求めたいのはAが9*9の場合なのですが、 これって、λの9乗とかがでてきてしまいます・・ EXCELを使っているのですが、 このような場合の固有値の求め方を教えてください。 もしくは、固有値を求めるプログラムののっているHPがあれば教えてください。 一応、C言語ならなんとか使えます。 もしマセマティカを使わないと求まりませんと言うのなら・・ 頑張ってマセマティカでやってみます。 お願いします。

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

  • ベストアンサー
  • siegmund
  • ベストアンサー率64% (701/1090)
回答No.2

λの9次方程式を解くことになりますから,解析的には不可能です. 解析的に解けるのは4次以下の方程式であることがアーベルによって示されています. したがって,全く一般の場合(行列の要素が文字で与えられている,など) はお手上げです. ただし,行列が何らかの対称性を持っていれば, 対称性で分類して行列の次数を落とすことができます. つまり,基底を適当に線形変換することにより, 行列が,例えば 3×3,3×3,2×2,1×1,にブロック対角化できる,など. . 行列要素が数値で与えられているなら, 固有値や固有ベクトルを数値的に計算する方法はかなり発達しています. ○ 科学技術計算ハンドブック 戸川隼人著,サイエンス社 http://aurora.es.hokudai.ac.jp/yanagita/html/tips/togawa.html ○ ニューメリカルレシピ・イン・シー - C言語による数値計算のレシピ William H. Press, Saul A. Teukolsky, William, T. Vetterling, Brian P. Flannery 丹慶勝市・奥村晴彦訳 技術評論社 ○ マトリクスの数値計算 戸川 隼人 著,オーム社 など参照されてはいかがでしょうか. C言語,プログラム,行列,固有値, ぐらいのキーワードで検索しますといっぱい出てきますので, そのまま使えるCのソースがあるかもしれません. また,mathematica が使えるなら, A = {{1, -2, 3.5, -0.9, 1.2}, {2, -1, 1.4, -1.33, -0.1}, {-1.2, 3, 2.5, 6, -0.14}, {1.2, -4.3, -2.1, -0.9, 0.21}, {0.1, 2.6, -2.4, -0.8, 1.1}} とやって行列を定義し(面倒なので5×5にしました), Eigenvalues[N[A]] とやれば数値的に固有値を出してくれます. なお,mathematica に似たフリーのソフトに MuPAD というのがあります. http://momonga.t.u-tokyo.ac.jp/~paoon/OriginalDoc/MuPAD.html からたどってみてください. MuPAD は私自身は使ったことはありません.

NyaoT1980
質問者

お礼

ありがとうございます。 一応数値として求めたいので、 マセマティカでやってみようと思います。 マセマティカは学校でしか使えないんです・・ MuPADも参考にさせて頂きますね。 でも次元を下げた方がいいですね・・やっぱり。 ありがとうございました。

その他の回答 (1)

  • Nandayer
  • ベストアンサー率47% (20/42)
回答No.1

 大きい次数の行列の固有値を計算するのは、それだけで大変な問題です。  私は、数値計算のプログラムを利用する技術者ですが、次の本が重宝しています。    W.H/Press 他 著「Numerical Recipes in C 日本語版」技術評論社  もし、これからも NyaoT1980 さんがいろいろな数値計算のプログラムを利用しなければならなくなるようでしたら、購入をお勧めします。(学生さんにはちょっと高いかもしれませんが。)  また、この際 Mathematica, MATLAB などのツールの使い方に慣れておいても、損はしないと思います。いずれも学生さんが個人で購入できるようなツールではないので、研究室などで利用できるのであれば、今のうちに慣れてしまいましょう。  どちらがお薦めかというと、それは NyaoT1980 さんの今の境遇とこれからの進路によります。しかし、単にあたえられた行列の固有値を求めたいだけであれば、ツールを使うほうがラクです。

参考URL:
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=518
NyaoT1980
質問者

お礼

ありがとうございました。 大学の卒論を書く際に固有値を求めたいなーと思った次第です。 次数を落とした方がよさそうですね。 主成分分析とかをすればよいでしょうか。 頑張ってみます。 ちなみに、来年は就職なので卒論で使ったらもう使わないと思います・・

関連するQ&A

  • 行列A'Aの固有値と行列Aの固有値の関係性

    行列Aの固有値だけから、 A'Aの固有値を求める方法はありますか。 例えば、A*Aの固有値は行列Aの固有値の2乗になると思うのですが、 A'Aの場合のAの固有値とA'Aの固有値に関係性があれば知りたいです。 A'Aの行列式(A'Aの固有値の積)は、行列Aの行列式(Aの固有値の積)の2乗になることはわかりましたが、個別の固有値を知りたいです。具体的なA'Aの固有値が分からなくても、それぞれの固有値が比例するなどの関係性でも教えていただければ幸いです。 Aは下三角行列で、 A’は行列Aの逆行列です。 よろしくお願いします。

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

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

  • 固有値・固有ベクトルの求め方

    固有値・固有ベクトルの求め方 ある行列をA、単位行列をE、Aの固有値をλ、固有ベクトルをuとすると、 (λE-A)u=0 を立てて、(λE-A)が逆行列を持たないことから、λはわかりますよね?そこでλを(λE-A)u=0に代入してuを求めると教科書にあるんですが、0しか出てきません… どうしたら良いのでしょうか?他に方法があるのでしょうか?

  • 固有値 固有ベクトル

    固有値を求める場合の固有方程式について質問させて頂きます。 固有値と固有ベクトルの定義は、 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はどちらも正しいのでしょうか? また、なぜ等しくなるのか教えて頂けないでしょうか? 以上、ご回答よろしくお願い致します。

  • 行列の固有値問題について

    行列A={2,a,b 0,1,c 0,0,1}が対角化可能であるためのa,b,cに関する条件についてお尋ねします。 この行列の固有方程式の二重解である固有値1に対する固有空間の次元が2である場合に対角化可能であるということは理解できました。 しかし、これを満たすには行列E-Aのランクが3-2=1であれば良いらしいのですが、なぜこのような考え方になるのかがあまり理解できません。 この点についてのご教授をどうかよろしくお願い致します。

  • 行列固有値問題

    Aは、3×3行列で、3つの固有値のうち2つが同じ(1組が重解)で、もう一つが異なる解、つまり固有値λ1、λ2、λ3で λ1=λ2 λ3≠λ1 の場合、 Aが対称行列ではないもの具体例を示して下さい。また、その具体例の行列を対角化する行列Pも示して下さい。 この時、求める最小多項式は重解はないものとします。 つまり、(A-λ1E)(A-λ3E)=0 をみたし、 対角化した行列は、λ1=λ2、λ1≠λ3で [λ1 0 0] [0 λ2 0] [0 0 λ3] になります。 このようなAでなおかつ対称行列でないものをあげて欲しいのですが、存在しますか? 対称行列だったら、いくつか列があったのですが、そうでない具体例が知りたいのです。

  • 固有値

    次の問題で、(1)は固有方程式から解けましたが、(2)以降が解けません。 どなたか回答お願いします。 行列, ベクトルは実数成分で, ||v|| はベクトルvの大きさで、 (1) 行列 A = 3 1 1 1 3 1 1 1 5 の固有値と固有ベクトルを求めよ. ただし, 固有ベクトルは単位ベクトルで, 第一成分は非負 (2) x ∈ R3, x ≠0 ならAx ≠ 0 となることを示せ. (3) x≠ 0 のとき F(x) =Ax/||Ax|| とする. (1) で求めた固有値をλ1, λ2, λ3 (λ1≧b λ2 ≧ λ3), 対応する単位固有ベ クトルをそれぞれe1, e2, e3 とする。a1, a2, a3 ∈ R \ {0} に対し x0 = a1e1 + a2e2 + a3e3, xn+1 = F(xn) (n ≧ 0) で ベクトルの列{xn}∞ n=0 を帰納的に定義する. xn をe1, e2, e3 の一次結合とし て表示し, 係数をa1, a2, a3 で表せ. (4) (3) で与えた{xn}∞ n=0 に対し極限lim n→∞ xn が存在し, A の固有ベクトルになるこ とを示せ. というものです。あと R \ {0}の意味も分かりません。宜しくお願いします。

  • 行列A^2の固有値は、Aの各固有値の2乗ですか?

    行列A^2の固有値は、行列Aの各固有値の2乗になりますか? 証明、または、反例をお願い致します。

  • 行列の固有値・固有ベクトルの問題です

    こんにちは。 固有値、固有ベクトル(空間)の問題で分からない所があるので、教えていただきたいです。 問題は 次の線形変換T:R[x]2 → R[x]2 に対して固有値と各固有値についての固有空間を求めろ。 (1)T(f(x)) = f(1-x) (2)T(f(x)) = f(2x) +f ’(x) (1)について R[x]2の標準基{1,x,x^2}は線形変換Tでそれぞれ T(1) = 1 T(x) = 1-x T(x^2) = 1-2x-x^2 となるため、表現行列Aは A=[1 1 1; 0 -1 -2; 0 0 -1] (;ごとに行を区切って書いています) これの固有多項式を解くと、λ=-1,1 λ=-1の場合は固有空間を求めることが出来たのですが、 λ=1のとき、[E-A]の行列を簡約化すると [0 1 0; 0 0 1; 0 0 0] となり、ここからどうすればいいのかが分かりません。 (答えはc1+c2(-x+x^2)となります。) また、(2)の方も同様に行うと、 表現行列Aは A=[1 1 0; 0 2 2; 0 0 4] となり、固有値がλ=1,2,4となります。 λ=2,4の場合は自力で出来たのですが、λ=1のときに、(1)でつまずいた行列と全く同じ形になり、こちらもどうすればいいのか分かりません。  (答えはcとなります。) 長くなってしまい申し訳ないです。 どうぞ、よろしくお願いします。

  • 対称行列の固有値

    http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%AB%E3%83%9F%E3%83%BC%E3%83%88%E8%A1%8C%E5%88%97 で、エルミート行列の固有値は実数となると書いてあったので、まずは実対称行列の固有値について、これが言えるかどうかを調べてみようと証明を試みたのですが、実対称行列の固有値でさえうまく証明できそうにありません。 どなたかお知恵を貸していただけると幸いです。宜しくお願いします。