線形代数双六 2 - 固有値問題と行列の対角化

11.【マス】内積の導入 **指示:**ベクトルに「長さ」と「角度」という幾何学的な概念が導入される。抽象的なベクトル空間に具体的なイメージが湧き、2マス進む。

【詳細コラム:計量を与える神の指、内積】 これまで議論してきたベクトル空間は、あくまで和とスカラー倍という代数的な構造を持つだけの、いわば「ふにゃふにゃした」空間でした。ここに「内積」という操作を導入することで、空間は初めてカチッとした幾何学的構造を持ちます。内積は、2つのベクトル u, v から一つのスカラー(実数または複素数)を対応させる演算⟨u, v⟩で、以下の性質を満たします。

  1. 対称性(またはエルミート性):u, v⟩ = ⟨v, u
  2. 線形性: ⟨cu + dv, w⟩ = c⟨u, w⟩ + d⟨v, w
  3. 正定値性:u, u⟩ ≥ 0 であり、⟨u, u⟩ = 0 ⇔ u = 0

この定義から、私たちはベクトルのノルム(長さ) ||u|| = √⟨u, u⟩ と、2つのベクトルがなす角度 cosθ = ⟨u, v⟩ / (||u|| ||v||) を定義することができます。特に、⟨u, v⟩ = 0 となるとき、2つのベクトルは直交すると言います。

ユークリッド空間における標準内積(成分ごとの積の和)が最も有名ですが、内積の定義はこれに限りません。例えば、区間[-1, 1]上の連続関数のなすベクトル空間では、⟨f, g⟩ = ∫[-1, 1] f(x)g(x) dx という積分が内積の公理を満たします。この「関数同士の内積」という考え方が、フーリエ解析やルジャンドル多項式といった直交多項式の理論の根幹をなしています。

内積は、抽象的なベクトル空間に「計量(metric)」を与え、私たちが持つ幾何学的直観を適用可能にするための、極めて重要な架け橋なのです。この強力なツールを手に入れたあなたは、さらに深く空間の構造を探求できるでしょう。


12.【マス】グラム・シュミットの直交化法 **指示:**ぐにゃりと曲がった基底から、美しく直交する正規直交基底を作り出す手法を学ぶ。計算は少し大変だが、その威力に感動。3マス進む。

【詳細コラム:空間を整える魔法、グラム・シュミット】 内積によって「直交」という概念を手に入れた我々の次なる目標は、空間を記述するのに最も都合の良い基底、すなわち、すべての基底ベクトルが互いに直交し、かつ長さが1であるような「正規直交基底」を構築することです。これを、任意の線形独立なベクトルの組から機械的に作り出すアルゴリズムが「グラム・シュミットの直交化法」です。

デンマークの数学者ヨルゲン・ペダーセン・グラムと、ドイツの数学者エルハルト・シュミットにちなんで名付けられたこの手法は、驚くほど直観的です。

  1. 最初のベクトル v₁ を選び、正規化(長さ1に)して最初の正規直交基底 u₁ を作る。
  2. 次のベクトル v₂ を取る。v₂ から、既に作った基底 u₁ の方向成分を「射影」として引き抜く。残ったベクトルは u₁ に直交しているはず。これを正規化して u₂ を作る。
  3. 3番目のベクトル v₃ から、u₁u₂ の方向成分をそれぞれ引き抜く。残ったものを正規化して u₃ とする。
  4. これを繰り返す。

このプロセスの本質は、「既に確定した方向とは直交する、新しい方向だけを取り出す」という操作の繰り返しです。正規直交基底 {uᵢ} を手に入れると、計算が劇的に簡単になります。例えば、空間内の任意のベクトル v は、v = ∑ ⟨v, uᵢuᵢ という形で、各基底成分への射影の和として非常にシンプルに分解できます。これは、フーリエ級数展開が、複雑な関数を単純な三角関数(これらは関数内積の下で直交基底をなす)の和として表現するのと全く同じ構造です。

グラム・シュミットの直交化法は、理論的な重要性はもちろん、数値計算やデータ解析(例えば主成分分析)においても、データの「本質的な軸」を見つけ出すための基礎的なアルゴリズムとして広く利用されています。


13.【マス】固有値・固有ベクトルの探求 **指示:**行列Aを掛けても「向きが変わらない」特別なベクトル、固有ベクトルを発見する!線形変換の「不動軸」を見つけ出した。これは大発見だ!4マス進む。

【詳細コラム:変換の本質を暴く固有値と固有ベクトル】 線形代数における最高到達点の一つが「固有値問題」です。行列Aが表す線形変換を考えたとき、ほとんどのベクトルは向きを変えられてしまいます。しかし、その中でいくつかの特別なベクトル x (≠0) は、Aを作用させても向きを変えず、ただ自身のスカラー倍(λ倍)になるだけです。 Ax = λx この関係を満たすスカラーλを固有値 (Eigenvalue)、ベクトルxを**固有ベクトル (Eigenvector)**と呼びます。“Eigen”とはドイツ語で「固有の、特有の」という意味です。

これは、線形変換Aの「本質」を捉える上で決定的に重要です。固有ベクトルは、その変換によって「伸び縮み」はするが、方向が不変であるような「軸」を示しています。そして固有値は、その軸方向の「拡大・縮小率」を表しているのです。

例えば、ある行列が表す変換が「y軸方向に2倍引き伸ばし、x軸方向はそのまま」というものだったとしましょう。このとき、y軸上のベクトル(0, y)は変換後(0, 2y)となり、Ax = 2x を満たします。つまり、固有値λ=2、固有ベクトルはy軸方向のベクトルです。同様に、x軸上のベクトル(x, 0)は変換後も(x, 0)のままであり、Ax = 1x を満たすため、固有値λ=1、固有ベクトルはx軸方向となります。

固有値問題を解くことは、この変換の「不動軸」と「その軸方向の変化率」を見つけ出すことに他なりません。これは、物理学における振動モードの解析(固有振動数)、量子力学におけるエネルギー準位の決定(エネルギー固有値)、機械学習における主成分分析(データの分散が最大になる方向=固有ベクトル)、Googleのページランクアルゴリズムなど、現代科学の至る所で核心的な役割を果たしています。あなたは今、線形代数で最も応用の広い、深遠な概念の扉を開いたのです。


14.【難所】固有多項式との格闘 **指示:**det(A - λI) = 0 という方程式を解かねば固有値は求まらない。次数が上がると解くのが困難に…。1回休み。

【詳細コラム:固有値を求めるための鍵、固有多項式】 固有値と固有ベクトルを求めるための具体的な計算は、Ax = λx という式を変形することから始まります。 Ax - λx = 0 Ax - λIx = 0 (Iは単位行列) (A - λI)x = 0

これは、ベクトルxに関する斉次連立一次方程式です。私たちは、自明な解 x=0 以外の解(非自明な解)を持つ条件を探しています。そして、その条件こそが、係数行列 (A - λI) が正則でないこと、すなわち、その行列式が0になることでした。 det(A - λI) = 0

この方程式を、行列Aの**固有多項式(特性多項式)**と呼びます。Aがn×n行列ならば、これはλに関するn次の方程式になります。この方程式の解こそが、行列Aの固有値λなのです。

2次や3次の行列であれば、この多項式を解くことは比較的容易です。しかし、行列のサイズが大きくなると、高次方程式を解くという古典的な難問に直面します。5次以上の一般代数方程式には解の公式が存在しない(アーベル-ルフィニの定理)ため、大規模な固有値問題は、実際にはQR法などの反復計算アルゴリズムを用いて近似的に解かれます。

このマスで一休みするあなたは、代数学の基本定理「複素数の範囲で考えれば、n次方程式は必ずn個の解(重解も含む)を持つ」という偉大な定理を思い出してください。これは、n×n行列は、複素数の範囲まで許せば、必ずn個の固有値を持つことを保証しています。実数の世界では固有値を持たないかもしれない回転行列でさえ、複素数の世界では必ず固有値を持つのです。


15.【ご褒美】対角化可能! **指示:**n個の線形独立な固有ベクトルが見つかった!これらを並べた行列Pを使えば、P⁻¹APが美しい対角行列になる。複雑な問題が驚くほど簡単になった!一気に5マス進む!

【詳細コラム:行列をシンプルにする究極の技、対角化】 固有値問題の最大の恩恵の一つが「行列の対角化」です。もし、n×n行列Aがn個の線形独立な固有ベクトル p₁, p₂, …, pₙ を持つならば、奇跡が起こります。

これらの固有ベクトルを列ベクトルとして並べた行列を P = [p₁ p₂pₙ] とします。Pは正則行列になります。このPとその逆行列P⁻¹を使って、Aを「挟み込む」ように P⁻¹AP を計算すると、その結果は、対角成分に固有値 λ₁, λ₂, …, λₙ が並んだ非常に美しい対角行列Dになるのです。 D = P⁻¹AP = diag(λ₁, λ₂, …, λₙ)

これは、9番のマスで学んだ「表現行列」の考え方を応用したものです。つまり、標準基底で見たときの表現行列Aを、固有ベクトルを基底とした座標系で見たときの表現行列Dに変換しているのです。固有ベクトルを座標軸に取れば、その変換は各軸方向の単純な「伸び縮み」として記述できる、というわけです。

対角化の威力は、行列のべき乗計算で絶大な効果を発揮します。Aのk乗を計算したいとき、Aᵏ = A・A・…・A を直接計算するのは大変です。しかし、A = PDP⁻¹ と変形すれば、 Aᵏ = (PDP⁻¹)(PDP⁻¹) … (PDP⁻¹) = PD(P⁻¹P)D(P⁻¹…)P⁻¹ = PDᵏP⁻¹ となります。対角行列のべき乗 Dᵏ は、各対角成分をk乗するだけなので計算は一瞬です。 Dᵏ = diag(λ₁ᵏ, λ₂ᵏ, …, λₙᵏ)

この性質は、マルコフ連鎖における状態の推移、微分方程式の解、フィボナッチ数列の一般項の導出など、未来の状態を予測する多くの問題で決定的な役割を果たします。対角化は、複雑な線形システムのダイナミクスを、独立した単純な動きの重ね合わせとして分解するための、最も強力な解析手法なのです。


16.【落とし穴】ジョルダン標準形の迷宮 指示:固有値が重解を持ち、線形独立な固有ベクトルがn個見つからなかった!対角化できない…。より複雑な「ジョルダン標準形」の世界に迷い込む。難解さに3マス戻る。

【詳細コラム:対角化の夢破れて、ジョルダン標準形】 すべての行列が対角化できるわけではありません。その条件である「n個の線形独立な固有ベクトルの存在」が満たされない場合があるからです。これは、固有多項式が重解を持つときにしばしば起こります。

例えば、行列 A = [[1, 1], [0, 1]] を考えましょう。固有値は det(A-λI) = (1-λ)² = 0 より λ=1 の重解です。しかし、固有ベクトルを求めると、(A-I)x=0 から [[0,1],[0,0]]x=0 となり、x₂=0 を満たすベクトル、すなわち (c, 0) の形のものしか見つかりません。つまり、固有空間の次元が1しかなく、2つの線形独立な固有ベクトルを見つけることができません。

このような対角化不可能な行列に対して、フランスの数学者カミーユ・ジョルダンは、「対角化に最も近い形」であるジョルダン標準形を導入しました。これは、対角成分に固有値を並べ、そのすぐ右上の成分(上対角)に1がいくつか現れるブロック(ジョルダン細胞)を対角線上に並べた形です。 J = [[λ, 1, 0], [0, λ, 1], [0, 0, λ]] (ジョルダン細胞の例)

ジョルダン標準形は、任意の複素行列が必ず相似変形で到達できる「標準形」であり、その行列が持つ線形変換の構造を完全に分類します。対角化可能な行列は、すべてのジョルダン細胞のサイズが1×1である特別な場合に相当します。この理論は、常微分方程式系の解の挙動を厳密に分析する際などに不可欠ですが、その構成は非常に難解です。このマスで後退するのは、線形代数の世界の深淵、その一筋縄ではいかない側面を垣間見た証拠です。


(第四章に続く)