第12章 線形代数の最小限
章間ナビゲーション
- 前: 第11章 数論・代数の基礎
- 次: 第13章 並行性と形式モデルの入口
- 章別マップ: 章間リンクマップ
- 用語確認: 用語索引 / 記号索引
- 到達判定: 章末確認チェック
この章で使う記号
| 記号 | 意味 |
|---|---|
x ∈ F^n |
体 F 上の n 次元ベクトル |
A ∈ F^{m×n} |
m × n 行列 |
Ax = b |
連立一次方程式 |
rank(A) |
行列 A のランク |
I |
単位行列 |
F_2 |
2元体 |
G / H |
生成行列 / 検査行列として使われることが多い記号 |
d(x,y) |
Hamming距離などの距離 |
この章で解消する詰まりどころ
情報理論、符号理論、並行計算、機械学習に近い章では、行列やベクトルが道具として出てきます。
Ax = b
rank(A)
Gx
Hx = 0
x' = x + Cv
この章では、線形代数を網羅しません。理論計算機科学で式を読むために必要な、ベクトル、行列、線形写像、ランク、連立一次方程式、有限体上の計算を最小限扱います。
本体教科書で使う箇所
- 情報理論: 線形符号、生成行列、検査行列、Hamming距離。
- 並行計算: Petriネットの接続行列、状態方程式。
- 確率・マルコフモデル: 遷移行列。
- アルゴリズム: ガウス消去法、線形独立性、ランク。
1. ベクトル
ベクトルは、数を並べたものです。
x = (x_1, x_2, ..., x_n)
列ベクトルとして書くこともあります。
x = [x_1
x_2
...
x_n]
n 個の成分を持つ実ベクトル全体を R^n と書きます。F_2 上なら F_2^n と書きます。
2. ベクトル演算
同じ長さのベクトル同士は加算できます。
(1,2,3) + (4,5,6) = (5,7,9)
スカラー倍もできます。
3(1,2,3) = (3,6,9)
F_2 上では、計算は mod 2 で行います。
(1,0,1) + (1,1,0) = (0,1,1) over F_2
なぜなら 1+1 ≡ 0 (mod 2) だからです。
3. 行列
行列は、数を長方形に並べたものです。
A = [1 2 3
4 5 6]
この行列は2行3列なので、2×3 行列です。
一般に m×n 行列 A は、n 次元ベクトルを m 次元ベクトルへ写すものとして読めます。
A: R^n -> R^m
4. 行列とベクトルの積
m×n 行列 A と n 次元ベクトル x の積 Ax は、m 次元ベクトルです。
例:
A = [1 2
3 4]
x = [5
6]
Ax = [1・5 + 2・6
3・5 + 4・6]
= [17
39]
列数とベクトルの次元が一致する必要があります。
5. 行列積
A が m×n、B が n×k のとき、AB は m×k 行列です。
行列積は一般に可換ではありません。
AB = BA
とは限りません。そもそも片方しか定義できない場合もあります。
6. 単位行列と逆行列
単位行列 I は、ベクトルを変えない行列です。
Ix = x
正方行列 A に対して、
AB = BA = I
を満たす行列 B が存在するとき、B を A の逆行列と呼びます。
B = A^{-1}
すべての正方行列が逆行列を持つわけではありません。
7. 線形結合
ベクトル v_1, ..., v_k とスカラー a_1, ..., a_k に対して、
a_1 v_1 + a_2 v_2 + ... + a_k v_k
を線形結合と呼びます。
例:
2(1,0) + 3(0,1) = (2,3)
8. span
ベクトル集合 S = {v_1, ..., v_k} の線形結合全体を、S の span と呼びます。
span(S) = { a_1v_1 + ... + a_kv_k | a_i はスカラー }
span は「そのベクトルたちで作れる範囲」です。
9. 線形独立
ベクトル v_1, ..., v_k が線形独立であるとは、
a_1v_1 + ... + a_kv_k = 0
を満たすのが、すべて a_i=0 の場合だけであることです。
そうでない場合、線形従属です。
直観的には、線形独立とは「どのベクトルも他のベクトルの組み合わせでは作れない」ことです。
10. 基底と次元
ベクトル空間 V の基底とは、次を満たすベクトル集合です。
V全体を span する。- 線形独立である。
基底に含まれるベクトルの数を次元と呼びます。
例: R^2 の標準基底。
e_1 = (1,0)
e_2 = (0,1)
任意の (x,y) は、
(x,y) = x e_1 + y e_2
と一意に書けます。
11. 線形写像
関数 T: V -> W が線形写像であるとは、次を満たすことです。
T(u+v) = T(u) + T(v)
T(cv) = cT(v)
行列による写像 x -> Ax は線形写像です。
理論計算機科学では、符号化、状態遷移、制約条件、連立方程式を線形写像として扱うことがあります。
12. ランク
行列 A のランク rank(A) は、列ベクトルが張る空間の次元です。行空間の次元として定義しても同じ値になります。
直観的には、行列の中に含まれる独立な情報の数です。
例:
A = [1 2
2 4]
2行目は1行目の2倍なので、独立な行は1本だけです。
rank(A) = 1
13. 連立一次方程式
連立一次方程式は、行列を使って
Ax = b
と書けます。
例:
x + 2y = 5
3x + 4y = 11
は、
[1 2] [x] = [5]
[3 4] [y] [11]
です。
14. ガウス消去法
ガウス消去法は、行基本変形によって連立一次方程式を解く方法です。
許される操作:
- 2つの行を入れ替える。
- 行を0でないスカラー倍する。
- ある行に別の行のスカラー倍を加える。
これらの操作は、解集合を変えません。
15. 核と像
線形写像 T: V -> W に対して、核と像を定義します。
ker(T) = { v∈V | T(v)=0 }
im(T) = { T(v) | v∈V }
行列 A に対しては、
ker(A) = { x | Ax=0 }
im(A) = { Ax | x はベクトル }
です。
核は「0に潰れる入力」、像は「到達できる出力」です。
16. F_2 上の線形代数
符号理論では、ビット列を F_2 上のベクトルとして扱います。
F_2 = {0,1}
加算と乗算は mod 2 です。
| 演算 | 結果 |
|---|---|
0+0 |
0 |
0+1 |
1 |
1+0 |
1 |
1+1 |
0 |
1・1 |
1 |
F_2 上では、加算は XOR と同じです。
17. 線形符号の入口
線形符号では、メッセージ u を行列 G で符号語 c に写します。
c = uG
G を生成行列と呼びます。
符号語であるかを検査する行列 H を検査行列と呼びます。
Hc^T = 0
この式は「c が符号空間に属している」という線形制約を表します。
18. Hamming距離
同じ長さの2つのビット列が異なる位置の数を Hamming 距離と呼びます。
例:
x = 10110
y = 10011
異なる位置は3番目と5番目なので、
d(x,y) = 2
符号理論では、符号語同士の最小 Hamming 距離が、誤り検出・訂正能力に関係します。
19. Petriネットと接続行列への入口
並行計算で Petriネットを扱うと、状態をベクトル、遷移を行列で表すことがあります。
m' = m + Cx
ここで、
m: 現在のマーキング、つまり各場所のトークン数ベクトル。C: 接続行列。x: 発火回数ベクトル。m': 遷移後のマーキング。
この式を読むには、行列とベクトルの積、ベクトル加算、成分ごとの非負制約が分かれば十分です。
20. よくある誤り
誤り1: 行列積を成分ごとの積と考える
行列積は、行と列の内積で定義されます。成分ごとの積ではありません。
誤り2: AB=BA と考える
行列積は一般に可換ではありません。
誤り3: 実数上の直観を F_2 にそのまま持ち込む
F_2 では 1+1=0 です。符号理論ではこの違いが本質的です。
誤り4: ランクを行数や列数そのものと考える
ランクは独立な行または列の数です。行数・列数の最大値以下ですが、常に一致するわけではありません。
21. 章末確認
次を説明できれば、この章の目的は達成です。
m×n行列とn次元ベクトルの積の意味を説明できる。- 線形結合、span、線形独立を説明できる。
- ランクを「独立な情報の数」として説明できる。
Ax=bを連立一次方程式として読める。F_2上で1+1=0と計算できる。- 生成行列、検査行列の役割を説明できる。
- Petriネットの状態方程式を行列式として読める。
次に読む章
- 通常ルート: 第13章 並行性と形式モデルの入口
- 演習: Extended 演習
- 解答: 演習解答
- 図表: 関連図表
- 実装確認: Python実装ノート
- 全体導線: 学習チェックリスト