中学理科1633649 views
数学講師2913151 views
中学社会670081 views
りんご220229 views
小学社会311570 views
小学算数1203731 views
高校化学2933198 views
教育150077 views
高校日本史191026 views
小学理科721729 views
Help
Tools

English

固有値と固有ベクトルの計算方法と意味|証明つき解説

行列 に対して をみたす でないベクトル を固有ベクトル、そのときのスカラー を固有値といいます。

行列はベクトルを別のベクトルへ移す作用ですが、そのなかで向きを変えられないベクトルがあります。それが固有ベクトルで、伸び縮みの倍率が固有値です。

以下では定義と直観から始め、計算の手順と具体例を数多く並べ、固有値の性質、対角化とその応用までを扱います。要になる主張には証明を付けます。

直観:向きが変わらないベクトル

具体例で見ます。次の行列を考えましょう。

HTML
CSS
JavaScript
<svg viewBox="0 0 700 300" xmlns="http://www.w3.org/2000/svg" style="max-width:100%;height:auto;display:block;margin:0 auto"><defs><marker id="ev-b" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#1b81e0"/></marker><marker id="ev-o" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#e0761b"/></marker></defs><line x1="75" y1="192" x2="290" y2="192" stroke="#dcdcdc" stroke-width="1"/><line x1="99" y1="209" x2="99" y2="53" stroke="#dcdcdc" stroke-width="1"/><line x1="80" y1="205" x2="232" y2="96" stroke="#c9c9c9" stroke-width="1" stroke-dasharray="5 3"/><line x1="99" y1="192" x2="266" y2="70" stroke="#e0761b" stroke-width="2.4" marker-end="url(#ev-o)"/><line x1="99" y1="192" x2="132" y2="167" stroke="#1b81e0" stroke-width="2.4" marker-end="url(#ev-b)"/><text x="144" y="181" font-size="13" fill="#1b81e0">v</text><text x="258" y="60" font-size="13" fill="#e0761b" text-anchor="end">Av</text><text x="183" y="32" font-size="13" fill="#1f1f1f" text-anchor="middle">v = (1, 1) のとき</text><text x="183" y="242" font-size="12" fill="#8a8a8a" text-anchor="middle">同じ直線の上に乗ったまま 5 倍</text><line x1="405" y1="192" x2="620" y2="192" stroke="#dcdcdc" stroke-width="1"/><line x1="429" y1="209" x2="429" y2="53" stroke="#dcdcdc" stroke-width="1"/><line x1="402" y1="192" x2="617" y2="192" stroke="#c9c9c9" stroke-width="1" stroke-dasharray="5 3"/><line x1="429" y1="192" x2="563" y2="143" stroke="#e0761b" stroke-width="2.4" marker-end="url(#ev-o)"/><line x1="429" y1="192" x2="462" y2="192" stroke="#1b81e0" stroke-width="2.4" marker-end="url(#ev-b)"/><text x="474" y="206" font-size="13" fill="#1b81e0">v</text><text x="555" y="133" font-size="13" fill="#e0761b" text-anchor="end">Av</text><text x="513" y="32" font-size="13" fill="#1f1f1f" text-anchor="middle">v = (1, 0) のとき</text><text x="513" y="242" font-size="12" fill="#8a8a8a" text-anchor="middle">直線から外れて向きが変わる</text><text x="350" y="272" font-size="12" fill="#8a8a8a" text-anchor="middle">固有ベクトルは、行列を掛けても自分の張る直線から出ません。それ以外は向きが変わります</text></svg>

に を掛けると になります。長さは 倍ですが、向きは変わりません。

に掛けると になり、こちらは向きが変わります。ほとんどのベクトルはこちら側です。

向きが変わらない特別なベクトルを探し、そのときの倍率を調べるのが、これからやることです。

固有値と固有ベクトルの定義

次正方行列 について、 と数 が

をみたすとき、 を の固有値、 を に対する固有ベクトルといいます。

という条件が要ります。 を許すと、どんな についても が成り立ってしまい、固有値という概念が意味を失います。

一方 は許されます。 の固有ベクトルとは をみたす でないベクトルのことで、 が正則でないときに現れます。

固有ベクトルは定数倍を除いて決まる

が の固有ベクトルなら、 でない定数 について も固有ベクトルです。

したがって「固有ベクトルは です」と書いても「 です」と書いても、同じことを言っています。ふつうは成分が簡単になるものを選びます。

長さを にそろえる流儀もあります。数値計算のライブラリはたいていそうします。

なぜ になるのか

定義の式を移項します。 を単位行列として、次のように書き直せます。

が固有値であるとは、この連立方程式が の解を持つことです。

同次連立方程式が自明でない解を持つのは、係数行列が正則でないときにかぎります。正則なら両辺に逆行列を掛けて しか出てこないからです。

正則でないことは、行列式が であることと同値でした。したがって が の固有値であることは、次の方程式をみたすことと同じになります。

固有ベクトルを直接探すのではなく、まず固有値を方程式の解として求める。この順序が計算の骨格になります。

固有多項式

を展開すると、 についての 次多項式になります。これを固有多項式といいます。

次方程式なので、複素数まで許せば重複を込めてちょうど 個の解を持ちます。実行列でも固有値が複素数になることがあります。

実数の範囲では解が存在しない場合もあります。あとで回転行列の例を見ます。

計算の手順

手順は 3 段階です。

まず を解いて固有値を求めます。次に各固有値 について を解き、固有ベクトルを求めます。最後にトレースと行列式で検算します。

以下、はじめに挙げた でこの手順をたどります。

計算例:固有値を求める

の行列式を計算します。

次の行列式は「たすき掛けの差」でした。

これを とおいて解きます。 と因数分解できます。

計算例: の固有ベクトル

を解きます。まず行列を作ります。

とおいて連立方程式を書きます。

2 本の式は同じことを言っています。この重複は偶然ではありません。 になるよう を選んだので、2 本が独立になりようがないのです。

なので、 と取れば固有ベクトルが得られます。

確かめます。 となり、定義をみたしています。

計算例: の固有ベクトル

同じ手順です。

2 行がまったく同じになりました。連立方程式は の 1 本だけです。

なので、 として次を得ます。

検算します。 です。

計算例:トレースと行列式で検算する

固有値が正しいかどうかは、2 つの量ですぐ確かめられます。

のトレース(対角成分の和)は で、固有値の和 と一致します。

の行列式は で、固有値の積 と一致します。

この 2 つは偶然ではなく、いつでも成り立ちます。次の節で証明します。

証明:固有値の和と積

次の場合に固有多項式を一般に展開します。次のようにおきましょう。

の係数に が、定数項に が現れました。

一方、固有値を とすれば固有多項式は と書けます。

係数を比べて結論です。

次でも同じで、固有値の和がトレース、積が行列式になります。固有多項式の の係数と定数項を見れば出ます。

計算例:対称行列

次の対称行列を調べます。トレースが 、行列式が です。

固有値は と です。和が 、積が で検算が合います。

のときの行列を書きます。

すなわち となり、固有ベクトルは です。

のときも同じです。

すなわち となり、固有ベクトルは です。

2 本の固有ベクトルの内積は で、直交しています。対称行列に特有の性質で、あとで証明します。

計算例:三角行列

次のように片側が の行列では、計算がほとんど要りません。

三角行列の行列式は対角成分の積なので、そのまま因数分解された形で出てきます。

固有値は と 、つまり対角成分そのものです。 次でも同じで、三角行列の固有値は対角成分に並んでいます。

固有ベクトルのほうは対角成分だけでは決まらず、上の の部分が効いてきます。ここは計算が要ります。

計算例:射影行列

次の行列は、平面上の点を直線 へ正射影します。

直線の上の点は動きません。 なので、固有値 の固有ベクトルが です。

直線に垂直な向きは潰れます。 なので、固有値 の固有ベクトルが です。

固有値が と だけになるのは射影行列の特徴です。 から が出るので、 は か にかぎられます。

計算例:回転行列には実の固有値がない

角 の回転を表す行列を考えます。

固有多項式を計算します。トレースは 、行列式は です。

判別式は です。 が でも でもなければ負になります。

実の固有値はありません。当たり前で、平面をぐるっと回せば、どんな向きも別の向きへ移ってしまうからです。

複素数まで広げれば という固有値が出てきます。絶対値が なのは、回転が長さを変えないことに対応します。

計算例:3 次の行列

次の 次の行列を調べます。行列式を展開してもよいのですが、構造を使うほうが速いです。

全成分が の行列を とすると です。 は「 の成分の和」を全成分に並べたベクトルになります。

なら成分の和が なので です。したがって で、固有値 が出ます。

成分の和が のベクトル、たとえば や では です。したがって となり、固有値 です。

固有値は と (重解)で、和は 、積は です。

固有空間

固有値 に対する固有ベクトル全体に を加えた集合は、部分空間になります。これを固有空間といいます。

HTML
CSS
JavaScript
<svg viewBox="0 0 700 300" xmlns="http://www.w3.org/2000/svg" style="max-width:100%;height:auto;display:block;margin:0 auto"><defs><marker id="eig-b" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#1b81e0"/></marker><marker id="eig-o" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#e0761b"/></marker></defs><line x1="242" y1="135" x2="458" y2="135" stroke="#dcdcdc" stroke-width="1"/><line x1="350" y1="238" x2="350" y2="32" stroke="#dcdcdc" stroke-width="1"/><line x1="245" y1="234" x2="455" y2="36" stroke="#1b81e0" stroke-width="1.6" stroke-dasharray="6 4"/><line x1="298" y1="36" x2="402" y2="234" stroke="#e0761b" stroke-width="1.6" stroke-dasharray="6 4"/><line x1="350" y1="135" x2="369" y2="117" stroke="#1b81e0" stroke-width="3"/><line x1="369" y1="117" x2="443" y2="47" stroke="#1b81e0" stroke-width="2" marker-end="url(#eig-b)"/><line x1="350" y1="135" x2="370" y2="173" stroke="#e0761b" stroke-width="3"/><line x1="370" y1="173" x2="391" y2="212" stroke="#e0761b" stroke-width="2" marker-end="url(#eig-o)"/><text x="448" y="34" font-size="13" fill="#1b81e0" text-anchor="middle">λ = 5</text><text x="428" y="231" font-size="13" fill="#e0761b" text-anchor="middle">λ = 2</text><text x="482" y="98" font-size="13" fill="#1f1f1f">固有空間は原点を通る直線</text><text x="482" y="126" font-size="12" fill="#8a8a8a">青の直線の上の点は 5 倍に、</text><text x="482" y="148" font-size="12" fill="#8a8a8a">橙の直線の上の点は 2 倍に</text><text x="482" y="170" font-size="12" fill="#8a8a8a">伸びます。直線から出ません。</text><text x="350" y="278" font-size="12" fill="#8a8a8a" text-anchor="middle">2 本の固有直線が骨組みになり、そのほかのベクトルは 2 方向に分解して考えられます</text></svg>

さきほどの では、 の固有空間が直線 、 の固有空間が直線 です。

の例では、 の固有空間が平面 で、次元が になっていました。

代数的重複度と幾何的重複度

固有多項式で が何重の解になっているかを代数的重複度といいます。固有空間の次元を幾何的重複度といいます。

いつでも「幾何的重複度 代数的重複度」が成り立ちます。等号になるとはかぎりません。

この 2 つがすべての固有値で一致することが、対角化できるための条件です。 次の 2 つの例が、一致する場合としない場合を示します。

計算例:重解でも対角化できる場合

単位行列の 倍、つまり を考えます。固有多項式は なので、 の代数的重複度は です。

は零行列なので、 はすべての でみたされます。固有空間は平面全体です。

幾何的重複度も で一致しました。実際この行列はもともと対角行列です。

計算例:重解で対角化できない場合

次の行列を考えます。三角行列なので固有値は対角成分の で、代数的重複度は です。

固有空間を求めます。

は を意味します。固有空間は直線 だけで、次元は です。

幾何的重複度 が代数的重複度 より小さくなりました。固有ベクトルが 本そろわないので、この行列は対角化できません。

実際 で、 は固有ベクトルではありません。 軸方向だけが保たれ、それ以外は少しずつ横へずらされる、という作用をしています。

証明:相異なる固有値の固有ベクトルは 1 次独立

とし、それぞれの固有ベクトルを とします。

とおきましょう。両辺に を掛けます。

もとの式を 倍したものを引きます。

かつ なので です。これをもとの式に戻すと となり、 から です。

3 個以上でも同じ筋で、帰納法により示せます。したがって 次行列が相異なる 個の固有値を持てば、固有ベクトルが 本そろい、対角化できます。

と の固有値

の両辺に を掛けると です。繰り返せば次を得ます。

固有ベクトルは同じまま、固有値だけが 乗になります。

が正則なら です。 の両辺に を掛けて で割ると、逆行列の固有値がわかります。

多項式 についても が成り立ちます。行列の式を、固有ベクトルの上ではただの数の式に落とせる、というのが固有値の効きどころです。

証明:対称行列の固有値は実数

を実対称行列とし、()とします。ここでは と が複素数の可能性を許します。

を掛けます。左辺は 、右辺は です。

一方、 が実対称なので の共役転置を取ると、それ自身に戻ります。

の量が自分の共役に等しいので、これは実数です。 も実数なので、商である も実数になります。

証明:対称行列の固有ベクトルは直交する

を実対称行列、 をその固有値、 を対応する固有ベクトルとします。

内積 を 2 通りに評価します。 が対称なので が成り立ちます。

左辺は 、右辺は です。移項します。

なので 、つまり直交します。

さきほどの対称行列 の固有ベクトル と が直交していたのは、この定理の帰結です。

対角化

固有ベクトルを列に並べた行列を 、固有値を対角に並べた行列を とします。

の第 列は なので、 が成り立ちます。

が正則、つまり固有ベクトルが 1 次独立にそろえば、両辺に を掛けられます。

これを対角化といいます。 の列の順序と の対角成分の順序は、そろえておく必要があります。

対角化は座標の取り替え

HTML
CSS
JavaScript
<svg viewBox="0 0 700 280" xmlns="http://www.w3.org/2000/svg" style="max-width:100%;height:auto;display:block;margin:0 auto"><defs><marker id="dg" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#9a9a9a"/></marker></defs><rect x="90" y="56" width="190" height="62" rx="4" fill="#ffffff" stroke="#c9c9c9" stroke-width="1.5"/><text x="185" y="82" font-size="14" fill="#1f1f1f" text-anchor="middle">もとの座標</text><text x="185" y="102" font-size="11" fill="#8a8a8a" text-anchor="middle">x を並べた成分</text><rect x="420" y="56" width="190" height="62" rx="4" fill="#ffffff" stroke="#c9c9c9" stroke-width="1.5"/><text x="515" y="82" font-size="14" fill="#1f1f1f" text-anchor="middle">もとの座標</text><text x="515" y="102" font-size="11" fill="#8a8a8a" text-anchor="middle">Ax を並べた成分</text><rect x="90" y="182" width="190" height="62" rx="4" fill="#ffffff" stroke="#1b81e0" stroke-width="1.5"/><text x="185" y="208" font-size="14" fill="#1f1f1f" text-anchor="middle">固有ベクトルの座標</text><text x="185" y="228" font-size="11" fill="#8a8a8a" text-anchor="middle">P⁻¹x</text><rect x="420" y="182" width="190" height="62" rx="4" fill="#ffffff" stroke="#1b81e0" stroke-width="1.5"/><text x="515" y="208" font-size="14" fill="#1f1f1f" text-anchor="middle">固有ベクトルの座標</text><text x="515" y="228" font-size="11" fill="#8a8a8a" text-anchor="middle">DP⁻¹x</text><line x1="288" y1="87" x2="412" y2="87" stroke="#9a9a9a" stroke-width="1.5" marker-end="url(#dg)"/><text x="350" y="78" font-size="13" fill="#1f1f1f" text-anchor="middle">A を掛ける</text><line x1="288" y1="213" x2="412" y2="213" stroke="#1b81e0" stroke-width="1.5" marker-end="url(#dg)"/><text x="350" y="204" font-size="13" fill="#1b81e0" text-anchor="middle">D を掛ける(成分ごとに λ 倍)</text><line x1="185" y1="176" x2="185" y2="124" stroke="#9a9a9a" stroke-width="1.5" marker-end="url(#dg)"/><text x="176" y="154" font-size="12" fill="#8a8a8a" text-anchor="end">P</text><line x1="515" y1="124" x2="515" y2="176" stroke="#9a9a9a" stroke-width="1.5" marker-end="url(#dg)"/><text x="524" y="154" font-size="12" fill="#8a8a8a">P⁻¹</text><text x="350" y="266" font-size="12" fill="#8a8a8a" text-anchor="middle">固有ベクトルを座標軸に取り直すと、行列を掛ける操作が「成分ごとの定数倍」になります</text></svg>

固有ベクトルを新しい座標軸に取ると、 を掛ける操作は「各成分を 倍する」だけになります。

が新しい座標へ移す操作、 がそこでの伸縮、 がもとの座標へ戻す操作です。 という式は、この 3 段階をそのまま書いたものになります。

対角化できる行列は、適切な座標から見れば「軸方向の伸縮」でしかない、ということです。

計算例:対角化してみる

はじめの を対角化します。固有値は 、固有ベクトルは と でした。

なので は正則です。逆行列を求めます。

を確かめます。 の第 1 列は 、第 2 列は です。

計算例: を求める

対角化のいちばん直接的な使い道です。 から、間の が次々に消えます。

は対角成分を 乗するだけです。前の節の と を入れて計算します。

を入れるともとに戻ります。

でも確かめます。 を 2 回掛けた結果と一致しました。

計算例:フィボナッチ数列

漸化式 を行列で書きます。

この行列を とおくと、 回掛けたものが数列の一般項を与えます。固有値を求めましょう。トレースが 、行列式が です。

大きいほうが黄金比 、小さいほうが です。対角化して整理すると、有名な式が出ます。

ビネの式といいます。 を入れると になり、実際 を計算した行列の成分と一致します。

整数だけの数列の一般項に、無理数が 2 つ現れる。それでも打ち消し合って整数に戻るのが、この式の見どころです。

長い目で見た振る舞いを決めるのは最大の固有値

なので、 が大きいところでは の項が無視できます。

隣り合う項の比が黄金比に近づくのは、これが理由です。

一般に、絶対値が最大の固有値が長期的な振る舞いを支配します。すべての固有値の絶対値が より小さければ 、 より大きいものがあれば発散します。

マルコフ連鎖の定常分布、人口動態のモデル、力学系の安定性の判定は、どれもこの原理の上に立っています。

固有値と固有ベクトルの意味

ここまでの計算をまとめ直します。

そもそも行列はベクトルを別のベクトルに変換する「作用」でした。その中に、向きを変えられないベクトルがあるということですね。

そのとおりです。行列 を固有ベクトルに作用させると、スカラー 倍になるだけで向きは変わりません。

固有値は、その固有ベクトルが行列でどれだけ伸びるかを表す数です。固有値が なら長さは 倍、 なら長さはそのままで向きが反転します。

対角化できる行列は、固有ベクトルの方向を軸に取れば、ただの伸縮に見えます。複雑に見える行列の作用を、いくつかの方向の伸び縮みに分解する。 これが固有値と固有ベクトルの役目です。

応用:振動のモードと主成分分析

物体の振動を線型近似すると、行列の固有値問題になります。固有ベクトルが振動の型(モード)、固有値が振動数の 2 乗に対応します。

建物の耐震設計で「1 次モード」「2 次モード」と呼ばれるものが、まさに固有ベクトルです。

データ解析では、共分散行列の固有ベクトルがばらつきの大きい方向を与えます。これが主成分分析です。

共分散行列は対称なので、固有値は実数で固有ベクトルは直交します。前に証明した性質が、そのまま「主成分どうしが直交する」という結論になっています。

よくある誤り

を固有ベクトルに含める。定義から除きます。 のほうは許されます
固有ベクトルが 1 つに決まると思う。定数倍の分だけ自由度があります
を と書いてしまう。行列式は線型ではありません
実行列なら固有値も実数だと思う。回転行列には実の固有値がありません
重解なら対角化できないと思う。 のように対角化できる場合もあります
固有ベクトルが 本そろわないのに を作ろうとする。 が正則になりません
の列と の対角成分の順序をずらす。同じ固有値どうしを対応させます
対称行列でないのに固有ベクトルの直交を仮定する。直交が保証されるのは対称行列です

参考文献

MIT OpenCourseWare, 18.06 Linear Algebra
Georgia Tech, Interactive Linear Algebra: Eigenvectors
Paul's Online Notes, Eigenvalues and Eigenvectors
LibreTexts, Eigenvalues and Eigenvectors
Wolfram MathWorld: Eigenvalue
行列を掛けても向きが変わらないベクトルが固有ベクトル、そのときの倍率が固有値である。定義と直観から始め、行列式の方程式を解く手順、対称行列や三角行列や回転行列などの計算例、固有値の和と積、対角化とその応用までを証明つきで解説する。