線形代数 · 第16回 · 動画4 · インタラクティブ教材

グラム・シュミット法がひそかに上三角行列を作る理由

I重要な公式

公式 名称 説明
A=QRA = QR QR 分解 QQ は正規直交な列をもち、RR は上三角行列
rij=qi⊤ajr_{ij} = \mathbf{q}_i^\top \mathbf{a}_j RR の成分 Q の ii 列目と A の jj 列目の内積
R=Q⊤AR = Q^\top A 直接求める公式 Q⊤Q=IQ^\top Q = I から導かれる
Q−1=Q⊤Q^{-1} = Q^\top 正規直交な列による逆行列 正規直交性の力

II可視化1 — R を1列ずつ埋める

A=[110101011]A = \begin{bmatrix} 1 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} について、グラム・シュミット法の各ステップは AA の列を1本ずつ正規直交な q\mathbf{q} 基底で書き直し、RR の列をちょうど1列埋めます。

III可視化2 — 対角線より下に 0 が現れる理由

グラム・シュミット法は必ず q2⊥span⁡{a1}\mathbf{q}_2 \perp \operatorname{span}\{\mathbf{a}_1\} となるように作るので、どんなベクトルの組でも r21=q2⊤a1=0r_{21} = \mathbf{q}_2^\top \mathbf{a}_1 = 0 です。

💡 a1\mathbf{a}_1 と a2\mathbf{a}_2 が同じ直線上に並ぶと、r22=0r_{22} = 0 となり、グラム・シュミット法は破綻します。列は一次独立でなければなりません。

IV可視化3 — R はいつでも上三角行列

一次独立な列をもつ行列なら、どれでも A=QRA = QR から上三角の RR が得られます。対角線より下の 0 は、直交性によって保証されています。

💡 同じことを R=Q⊤AR = Q^\top A とも書けます。Q⊤Q=IQ^\top Q = I だからです。QQ さえわかれば、グラム・シュミット法をやり直す必要はありません。

V確認クイズ

問1

QR 分解 A=QRA = QR において、成分 rijr_{ij}(ii 行目、jj 列目にある RR の成分)は何に等しいですか?

✅ 正解です! R の各成分は、Q の列と A の列の内積です。

❌ 惜しい! R=Q⊤AR = Q^\top A が個々の成分について何を教えてくれるかを考えましょう。ii 行目、jj 列目にある RR の成分は qi⊤aj\mathbf{q}_i^\top \mathbf{a}_j です。

解答を見る

解答:

RR の各成分は次のように計算されます。 rij=qi⊤ajr_{ij} = \mathbf{q}_i^\top \mathbf{a}_j

これは、ii 列目を QQ から、jj 列目を AA からとった2つの列の内積です。

このことは R=Q⊤AR = Q^\top A から直接わかります。(i,j)(i,j) 成分をとると、Q⊤AQ^\top A では qi⊤aj\mathbf{q}_i^\top \mathbf{a}_j になるからです。

問2

QR 分解で r21=q2⊤a1=0r_{21} = \mathbf{q}_2^\top \mathbf{a}_1 = 0 となるのはなぜですか?

✅ 正解です! この 0 は、グラム・シュミット法の直交化によって強制されたものです。偶然ではなく、作り方そのものから来ています。

❌ 惜しい! この 0 は約束事でも偶然でもありません。グラム・シュミット法が、各 q ベクトルをそれより前の列が張る空間に垂直になるように作ることの結果です。

解答を見る

解答:

グラム・シュミット法は、q2\mathbf{q}_2 を作るときに、a2\mathbf{a}_2 から q1\mathbf{q}_1 への射影を引きます。 v2=a2−(q1⊤a2) q1\mathbf{v}_2 = \mathbf{a}_2 - (\mathbf{q}_1^\top \mathbf{a}_2)\,\mathbf{q}_1

これで v2\mathbf{v}_2(したがって q2=v2/∥v2∥\mathbf{q}_2 = \mathbf{v}_2/\|\mathbf{v}_2\| も)は span{a1}\text{span}\{\mathbf{a}_1\} に垂直になります。

a1∈span{a1}\mathbf{a}_1 \in \text{span}\{\mathbf{a}_1\} なので、q2⊤a1=0\mathbf{q}_2^\top \mathbf{a}_1 = 0 となります。

一般には、i>ji > j のとき qi⊥span{a1,…,ai−1}\mathbf{q}_i \perp \text{span}\{\mathbf{a}_1, \ldots, \mathbf{a}_{i-1}\} であり、aj\mathbf{a}_j はその張る空間の中にある(j<ij < i だから)ので、rij=qi⊤aj=0r_{ij} = \mathbf{q}_i^\top \mathbf{a}_j = 0 です。

この 0 は約束事ではなく、作り方によって強制されたものです。

問3

正しいか誤りか:AA が正方行列で、QQ が A=QRA = QR に現れる正規直交な列をもつ行列ならば、Q−1=Q⊤Q^{-1} = Q^\top である。

✅ 正解です! 正規直交な列から Q⊤Q=IQ^\top Q = I が成り立つので、Q−1=Q⊤Q^{-1} = Q^\top です。これが正規直交性の力です!

❌ 惜しい! QQ は正規直交な列をもつので Q⊤Q=IQ^\top Q = I であり、Q−1=Q⊤Q^{-1} = Q^\top となります。

解答を見る

解答:正しい

QQ は正規直交な列をもつので、Q⊤Q=IQ^\top Q = I です。

正方行列なら、これは Q−1=Q⊤Q^{-1} = Q^\top を意味します。

これが QR 分解をとりわけ強力にしているところです。

  • QQ の逆行列は計算するまでもありません。転置するだけです!
  • これにより、R=Q⊤AR = Q^\top A が A=QRA = QR から直接得られます。 A=QR  ⟹  Q⊤A=Q⊤QR=IR=RA = QR \;\Longrightarrow\; Q^\top A = Q^\top QR = IR = R

LU 分解では、L−1L^{-1} を求めるのに実際の計算が必要なのと比べてみましょう。

問4

QR 分解を使って最小二乗問題 Ax≈bA\mathbf{x} \approx \mathbf{b} を解くとき、実際に解くのはどの連立方程式ですか?

✅ 正解です! QR 分解は最小二乗法を簡単な後退代入に変え、数値的に危うい A⊤AA^\top A を避けてくれます。

❌ あと一歩! ただし、それは QR 分解を使う方法ではありません。 正規方程式でも解けますが、数値的に不安定です。QR 分解の要点は、A⊤AA^\top A を作らずに済ませることです! 代わりに解くのは Rx=Q⊤bR\mathbf{x} = Q^\top \mathbf{b} です。

❌ 惜しい! A=QRA = QR から出発し、両辺に Q⊤Q^\top を掛け、Q⊤Q=IQ^\top Q = I を使って Rx=Q⊤bR\mathbf{x} = Q^\top \mathbf{b} を導きましょう。

解答を見る

解答:

Ax≈bA\mathbf{x} \approx \mathbf{b} から出発し、A=QRA = QR とします。

  1. 代入する:QRx≈bQR\mathbf{x} \approx \mathbf{b}
  2. 左から Q⊤Q^\top を掛ける:Q⊤QRx=Q⊤bQ^\top QR\mathbf{x} = Q^\top \mathbf{b}
  3. Q⊤Q=IQ^\top Q = I なので:Rx=Q⊤bR\mathbf{x} = Q^\top \mathbf{b}

RR は上三角行列なので、後退代入で解けます。速く、数値的にも安定です。

正規方程式 A⊤Ax=A⊤bA^\top A\mathbf{x} = A^\top \mathbf{b} でも解けますが、A⊤AA^\top A を作ると数値誤差が増幅されます。QR 分解はこれを完全に避けられるので、実際の計算ではこちらが好まれます。

正解数:0 / 4