線形代数を学び始めるとまず登場するのが「行列」です。
「行列って何のために存在するの?」「行列演算のルールはどう覚えるの?」「表現行列やker・imとの関係は?」と戸惑う方も多いでしょう。
本記事では、行列の基本・主な演算・線形変換との関係・表現行列・ker・imまで、具体例を交えてわかりやすく解説していきます。
行列をしっかりと理解することが線形代数の理解への近道ですので、ぜひ最後までご覧ください。
行列とは?基本的な意味と構造
それではまず、行列の基本的な意味と構造について解説していきます。
行列(matrix)とは、数を縦横に格子状に並べた配列のことです。
m行n列の行列を「m×n行列」と呼び、(i, j) 成分は「i行目・j列目の要素」を指します。
【2×3行列の例】
A = [[a₁₁, a₁₂, a₁₃],
[a₂₁, a₂₂, a₂₃]]
(2行・3列の行列)
正方行列とは行数と列数が等しい(m = n の)行列で、線形代数では特に重要な役割を持ちます。
行列は線形変換を表現するツールとして、数学・物理・工学・データサイエンスで広く使われます。
行列の主な種類
行列にはさまざまな種類があり、それぞれ重要な性質を持ちます。
| 種類 | 定義 | 特徴 |
|---|---|---|
| 正方行列 | 行数 = 列数 | 行列式・固有値が定義できる |
| 対角行列 | 対角以外がゼロ | 計算が簡単 |
| 単位行列 I | 対角が全て1の対角行列 | AI = IA = A(乗算の単位元) |
| 転置行列 Aᵀ | 行と列を入れ替えた行列 | (Aᵀ)ᵀ = A |
| 対称行列 | A = Aᵀ | 固有値が実数、直交対角化可能 |
| 正則行列 | 逆行列が存在する行列 | det(A) ≠ 0 |
| 零行列 | 全成分が0 | 加法の単位元 |
これらの種類と性質を理解することが、行列計算を正確に行うための基礎となります。
行列の基本演算:加法・スカラー倍・積
行列の主な演算は加法・スカラー倍・積の3つです。
加法は同じサイズの行列同士で成分ごとに足し算します。
スカラー倍はすべての成分をスカラーで掛け算します。
行列の積 AB では、A の行数と B の列数が等しくなければなりません。
【行列の積(2×2の例)】
A = [[1, 2], [3, 4]], B = [[5, 6], [7, 8]]
AB[1,1] = 1×5 + 2×7 = 19
AB[1,2] = 1×6 + 2×8 = 22
AB[2,1] = 3×5 + 4×7 = 43
AB[2,2] = 3×6 + 4×8 = 50
AB = [[19, 22], [43, 50]]
行列の積では AB ≠ BA(非可換性)が一般に成り立つことに注意が必要です。
逆行列の意味と求め方
正方行列 A に対して、AB = BA = I(単位行列)を満たす行列 B を A の逆行列と呼び、A⁻¹ と表します。
2×2行列 A = [[a, b], [c, d]] の逆行列は次のとおりです。
【2×2行列の逆行列の公式】
A⁻¹ = (1 / det(A)) × [[d, -b], [-c, a]]
det(A) = ad – bc ≠ 0 であることが条件
逆行列が存在しない行列(det = 0)を「特異行列」または「退化行列」と呼びます。
逆行列は連立一次方程式を解く際に非常に有用ですが、数値計算では安定性の観点からガウス消去法が好まれることも多いでしょう。
行列と線形変換の関係
続いては、行列と線形変換の関係について確認していきます。
線形代数の根本的な理解のために、「行列 = 線形変換の表現」という見方が非常に重要です。
線形変換を行列で表す(表現行列)
任意の線形変換は行列によって表現できます。
具体的には、基底ベクトルが変換によってどのベクトルに移るかを並べると表現行列が得られます。
【回転行列(θ度の回転)の表現行列】
R(θ) = [[cos θ, -sin θ],
[sin θ, cos θ]]
e₁ = (1, 0) → (cos θ, sin θ)
e₂ = (0, 1) → (-sin θ, cos θ)
このように、基底ベクトルの変換先を列に並べることで表現行列が構成できます。
表現行列は「基底の選び方」によって変わるため、同じ線形変換でも異なる表現行列を持つことがあります。
ker(核)と行列の関係
行列 A の ker(核)とは、Ax = 0 を満たすベクトル x の全体です。
ker(A) は連立一次方程式 Ax = 0 の解空間に相当します。
ker(A) の次元は「自由変数の個数」に等しく、行の階段形を求めることで計算できます。
ker が {0} のみ(dim(ker) = 0)であれば行列は単射的(逆写像が存在)となります。
im(像)と行列の関係
行列 A の im(像)とは、Ax の形で表されるすべてのベクトルの集合です。
im(A) は A の列ベクトルの線形結合全体、つまり「列空間(column space)」と一致します。
dim(im(A)) = rank(A) という関係があり、行基本変形後のピボットの個数で求められます。
im(A) = ℝᵐ(全体)であれば行列は全射的となり、Ax = b が任意の b に対して解を持ちます。
行列計算の応用
続いては、行列計算の具体的な応用を確認していきます。
連立一次方程式と行列(再掲・深堀り)
行列の最も基本的な応用が連立一次方程式の解法です。
Ax = b の形に変換し、拡大係数行列 [A|b] に対してガウス消去法(行基本変形)を適用します。
解の存在条件は rank(A) = rank([A|b]) であり、解の一意性は rank(A) = n(変数の個数)です。
これらの条件を理解することで、連立方程式の解の構造を完全に把握することができます。
行列の指数関数とその応用
行列の累乗を無限に足し合わせることで「行列の指数関数(matrix exponential)」が定義されます。
行列の指数関数は常微分方程式系の解を表す際に非常に重要な役割を持ちます。
dx/dt = Ax という線形微分方程式の解は x(t) = e^{At}x(0) と表せます。
固有値分解を使えば e^{At} を効率的に計算でき、制御理論・量子力学・人口動態モデルなどに応用されます。
NumPyによる行列計算の実践
Pythonのnumpyを使えば、行列演算を簡単に実行できます。
【NumPyによる行列演算の例】
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A @ B) # 行列の積
print(np.linalg.inv(A)) # 逆行列
print(np.linalg.det(A)) # 行列式
vals, vecs = np.linalg.eig(A) # 固有値・固有ベクトル
NumPyの @ 演算子で行列の積、np.linalg モジュールで逆行列・行列式・固有値が計算できます。
NumPyを活用することで、線形代数の計算を素早く正確に実行できるでしょう。
まとめ
本記事では、行列の基本・種類・演算・逆行列・線形変換との関係・表現行列・ker・im・NumPyによる実践まで幅広く解説しました。
行列は数を格子状に並べた配列であり、線形変換を表現するツールとして線形代数の中心的な存在です。
行列の積・逆行列・det・rank・ker・imはすべて密接に関連しており、連立方程式の解の構造や線形変換の性質を理解するための重要な概念です。
行列をしっかりと理解することが、線形代数を深く学ぶための最重要の基礎となるでしょう。
本記事の内容を参考に、実際に手を動かして行列計算を練習してみてください。