Math World Lab

固有値・固有ベクトル

行列で変換しても「向きが変わらない」特別な方向

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
行列で空間を変形しても「回転せずに向きが保たれる」特別な軸が固有ベクトルである。
2
その軸に沿って長さが何倍に引き伸ばされるかを表すスケール係数が固有値である。
3
GoogleのPageRankアルゴリズム、AIの主成分分析(PCA・次元圧縮)、量子力学の基盤技術。

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

行列で空間を変形しても「回転せずに向きが保たれる」特別な軸が固有ベクトルである。

身につく武器・思考力

その軸に沿って長さが何倍に引き伸ばされるかを表すスケール係数が固有値である。

実社会・ITでの活躍現場

  • •主成分分析 (PCA) によるデータ圧縮の第一歩
  • •ITシステム・アルゴリズム実装における論理設計
  • •データ分析やシミュレーションにおける数理モデリング

Layer 1 — 直感・シミュレーター

紫の矢印 v⃗\vec{v} をドラッグして向きを変えると、行列 MM で変換した後の矢印(赤)が一緒に表示される。ほとんどの向きでは v⃗\vec{v} と Mv⃗M\vec{v} は別の方向を向くが、特定の向きにそろえると2本が同一直線上に乗る(緑になる)。それが固有ベクトルの方向。行列のスライダーも動かして色々な変換を試してみよう。

v⃗\vec{v} = (1.00, 1.00) を M=(2.01.01.02.0)M = \begin{pmatrix} 2.0 & 1.0 \\ 1.0 & 2.0 \end{pmatrix} で変換すると Mv⃗M\vec{v} = (3.00, 3.00)

緑の矢印が赤ではなく紫と同一直線上 → これは固有ベクトルの向き!固有値 λ ≈ 3.00

↑ 紫の矢印(v)をドラッグし、行列 M による変換後(赤/緑の矢印 Mv)が同じ直線上に乗る向きを探そう。それが固有ベクトルの方向。

直感チェック!ミニクイズ

行列 M をベクトル v に掛けたとき Mv = 3v になりました。このときの固有値 λ はいくつ?

Layer 2 — 定義・受験・証明

定義

正方行列 MM に対して、ゼロベクトルでないベクトル v⃗\vec{v} と、スカラー λ\lambda が

Mv⃗=λv⃗M\vec{v} = \lambda \vec{v}

を満たすとき、v⃗\vec{v} を MM の固有ベクトル(eigenvector)、λ\lambda を対応する固有値(eigenvalue)と呼ぶ。行列による変換は一般にベクトルの向きを変えてしまうが、固有ベクトルの向きだけは変換後も変わらず、長さが λ\lambda 倍されるだけになる。

公式・数理モデル

Mv⃗=λv⃗⟺det⁡(M−λI)=0M\vec{v} = \lambda \vec{v} \quad \Longleftrightarrow \quad \det(M - \lambda I) = 0

証明・導出

Mv⃗=λv⃗M\vec{v} = \lambda \vec{v} を変形すると (M−λI)v⃗=0⃗(M - \lambda I)\vec{v} = \vec{0} となる。v⃗≠0⃗\vec{v} \neq \vec{0} の解を持つためには、行列 M−λIM - \lambda I が正則(逆行列を持つ)であってはならない。なぜなら正則であれば両辺に逆行列を掛けて v⃗=0⃗\vec{v} = \vec{0} が強制されてしまうからである。

したがって固有値は

det⁡(M−λI)=0\det(M - \lambda I) = 0

という「特性方程式」の解として求められる。2×2行列 M=(abcd)M = \begin{pmatrix} a & b \\ c & d \end{pmatrix} の場合、これは λ2−(a+d)λ+(ad−bc)=0\lambda^2 - (a+d)\lambda + (ad-bc) = 0 という2次方程式になる。

押さえておきたいポイント

  • 固有ベクトルの向きは、行列変換をしても変わらない(不変方向)
  • 対称行列(M=MTM = M^T)は必ず直交する固有ベクトルを持つ — これが主成分分析(PCA)の理論的支柱
  • 固有値の絶対値の大小は、その方向にデータや変換がどれだけ「引き伸ばされるか」を表す
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

主成分分析 (PCA) によるデータ圧縮の第一歩

画像やデータセットの分散共分散行列を計算し、その固有ベクトル・固有値を求めると、「データが最もばらついている方向(=情報量が多い方向)」が分かる。固有値の大きい順に少数の固有ベクトルだけを残すことで、情報の損失を抑えながら次元を圧縮できる。これは画像圧縮や顔認識(Eigenfaces)、レコメンドエンジンの基礎技術である。

1import numpy as np
2
3# 2次元の観測データ(例: 身長と体重など、相関のある2変量)
4data = np.array([
5 [2.5, 2.4],
6 [0.5, 0.7],
7 [2.2, 2.9],
8 [1.9, 2.2],
9 [3.1, 3.0],
10 [2.3, 2.7],
11 [2.0, 1.6],
12 [1.0, 1.1],
13])
14
15# 平均を引いて中心化
16centered = data - data.mean(axis=0)
17
18# 分散共分散行列
19cov = np.cov(centered, rowvar=False)
20
21# 固有値・固有ベクトルを求める(対称行列なので eigh が数値的に安定)
22eigenvalues, eigenvectors = np.linalg.eigh(cov)
23
24# 固有値の大きい順に並べ替え
25order = np.argsort(eigenvalues)[::-1]
26eigenvalues = eigenvalues[order]
27eigenvectors = eigenvectors[:, order]
28
29# 最大固有値に対応する固有ベクトル = 第1主成分(最も情報量の多い方向)
30print("第1主成分の方向:", eigenvectors[:, 0])
31print("寄与率:", eigenvalues / eigenvalues.sum())
32
33# データをその方向に射影すれば、2次元 -> 1次元の圧縮になる
34projected = centered @ eigenvectors[:, 0]
35print("圧縮後の1次元データ:", projected)
この単元につながる学習ロードマップ

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高大学数学

特異値分解(SVD)と次元圧縮

データの「本当に重要な方向」を数値で取り出す万能の行列分解

関連度高大学数学

線形変換と基底

行列が空間をどう歪めるか──基底ベクトルの行き先がすべてを決める

関連度高高校数学

ベクトルの内積

2本の矢印の「向きの近さ」を1つの数値にする

同じレベルで次に挑戦したいトピック

同レベル推薦大学数学

フーリエ変換と周波数分解

どんなに複雑な波も、単純なサイン波の重ね合わせに分解できる

同レベル推薦大学数学

ベイズの定理(条件付き確率と事前・事後確率)

新たな情報や証拠(エビデンス)を得て「確信度」を更新する確率論

同レベル推薦大学数学

正規分布と中心極限定理

あらゆるランダムなばらつきが最終的に収束する「釣鐘型の山」

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

円の面積と円周率

半径を変えると、円周と面積はどう変わる?

工学・実践連携小学校・算数

三角形・多角形の面積

頂点を動かして、面積の公式が成り立つ理由を確かめよう

工学・実践連携小学校・算数

単位変換(長さ・面積・体積)

長さが2倍になると、面積・体積は何倍になる?

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。