서로 수직이고 길이가 1인 기저(정규직교 기저)를 쓰면 좌표 계산이 내적 한 번으로 끝납니다. 이 장에서는 아무 기저나 정규직교 기저로 바꾸는 그람–슈미트 과정과, 그것을 행렬로 기록한 QR 분해를 다룹니다. 수치 계산에서 오차를 줄이는 표준 도구이고, 푸리에 해석의 사인·코사인 기저도 같은 성질을 씁니다.
14.1 좋은 기저
질문. 13장의 사영 공식 p = A ( A T A ) − 1 A T b \mathbf{p} = A(A^TA)^{-1}A^T\mathbf{b} p = A ( A T A ) − 1 A T b 에는 역행렬이 들어 있어 계산이 번거롭습니다. 기저를 잘 고르면 A T A A^TA A T A 가 I I I 가 되어 역행렬이 사라지지 않을까요? 그런 기저는 언제나 만들 수 있을까요?
모눈종이를 생각합시다. 표준 모눈종이는 가로선과 세로선이 직각이고 간격이 1입니다. 3장의 기울어진 모눈종이도 좌표를 주지만, 좌표를 읽으려면 연립방정식을 풀어야 했습니다. 직각이고 간격이 1인 모눈종이에서는 좌표를 내적 한 번으로 읽을 수 있습니다. 이 장의 주제는 그런 모눈종이, 즉 정규직교 기저입니다.
14.2 정규직교 벡터와 직교행렬
정의 14.1 (정규직교). 벡터 q 1 , … , q k \mathbf{q}_1, \ldots, \mathbf{q}_k q 1 , … , q k 가 서로 수직이고 모두 길이가 1이면, 즉
q i T q j = { 1 ( i = j ) 0 ( i ≠ j ) \mathbf{q}_i^T\mathbf{q}_j = \begin{cases} 1 & (i = j) \\ 0 & (i \ne j) \end{cases} q i T q j = { 1 0 ( i = j ) ( i = j )
이면 정규직교 (orthonormal)라 합니다. 이들을 열로 하는 행렬 Q Q Q 에 대해 이 조건은 Q T Q = I Q^TQ = I Q T Q = I 입니다(문제 5.11).
정리 14.2 (정규직교 벡터는 독립입니다). 정규직교 벡터들은 일차독립입니다.
증명. c 1 q 1 + ⋯ + c k q k = 0 c_1\mathbf{q}_1 + \cdots + c_k\mathbf{q}_k = \mathbf{0} c 1 q 1 + ⋯ + c k q k = 0 의 양변에 q j T \mathbf{q}_j^T q j T 를 곱하면 q j T q i \mathbf{q}_j^T\mathbf{q}_i q j T q i 중 i = j i = j i = j 인 항만 남아 c j = 0 c_j = 0 c j = 0 입니다. ■
정의 14.3 (직교행렬). 정사각행렬 Q Q Q 가 Q T Q = I Q^TQ = I Q T Q = I 를 만족하면 직교행렬 (orthogonal matrix)이라 합니다. 이때 Q − 1 = Q T Q^{-1} = Q^T Q − 1 = Q T 입니다.
이름은 “직교행렬”이지만 열들이 정규직교여야 합니다. 역사적인 이름이라 어쩔 수 없습니다. 정사각행렬에서 Q T Q = I Q^TQ = I Q T Q = I 이면 정리 9.6 에 의해 Q Q T = I QQ^T = I Q Q T = I 도 성립하므로, 행들도 정규직교입니다.
예제 14.4.
회전 R θ R_\theta R θ : 두 열 ( cos θ , sin θ ) (\cos\theta, \sin\theta) ( cos θ , sin θ ) , ( − sin θ , cos θ ) (-\sin\theta, \cos\theta) ( − sin θ , cos θ ) 는 길이 1이고 수직입니다.
치환행렬: 열이 표준기저벡터를 섞은 것입니다(문제 9.4).
반사 H = I − 2 u u T H = I - 2\mathbf{u}\mathbf{u}^T H = I − 2 u u T (∥ u ∥ = 1 \lVert \mathbf{u} \rVert = 1 ∥ u ∥ = 1 ): u \mathbf{u} u 에 수직인 평면에 대한 거울 반사. H T H = ( I − 2 u u T ) 2 = I − 4 u u T + 4 u ( u T u ) u T = I H^TH = (I - 2\mathbf{u}\mathbf{u}^T)^2 = I - 4\mathbf{u}\mathbf{u}^T + 4\mathbf{u}(\mathbf{u}^T\mathbf{u})\mathbf{u}^T = I H T H = ( I − 2 u u T ) 2 = I − 4 u u T + 4 u ( u T u ) u T = I . 이것을 하우스홀더 반사 (Householder reflection)라 하며 30장의 수치 계산에서 핵심 도구입니다.
정리 14.5 (직교행렬은 길이와 각을 보존합니다). Q T Q = I Q^TQ = I Q T Q = I 이면 모든 x , y \mathbf{x}, \mathbf{y} x , y 에 대해
( Q x ) T ( Q y ) = x T y , ∥ Q x ∥ = ∥ x ∥ . (Q\mathbf{x})^T(Q\mathbf{y}) = \mathbf{x}^T\mathbf{y}, \qquad \lVert Q\mathbf{x} \rVert = \lVert \mathbf{x} \rVert. ( Q x ) T ( Q y ) = x T y , ∥ Q x ∥ = ∥ x ∥ .
증명. ( Q x ) T ( Q y ) = x T Q T Q y = x T y (Q\mathbf{x})^T(Q\mathbf{y}) = \mathbf{x}^TQ^TQ\mathbf{y} = \mathbf{x}^T\mathbf{y} ( Q x ) T ( Q y ) = x T Q T Q y = x T y . y = x \mathbf{y} = \mathbf{x} y = x 로 놓으면 둘째 식. ■
직교행렬은 공간을 찌그러뜨리지 않고 통째로 돌리거나 뒤집는 변환입니다. 길이도 각도도 그대로입니다. 6장의 말로는 det Q = ± 1 \det Q = \pm1 det Q = ± 1 입니다(문제 14.3). 컴퓨터 계산에서 직교행렬을 좋아하는 이유도 이것입니다. 곱해도 숫자가 커지거나 작아지지 않으므로 오차가 불어나지 않습니다.
▶ 문제 14.1–14.4
14.3 정규직교 기저에서의 사영과 좌표
A A A 대신 정규직교인 열을 가진 Q Q Q 를 쓰면 Q T Q = I Q^TQ = I Q T Q = I 이므로 13장의 공식이 단순해집니다.
x ^ = Q T b , p = Q Q T b = ∑ i = 1 k ( q i T b ) q i , P = Q Q T . \hat{\mathbf{x}} = Q^T\mathbf{b}, \qquad \mathbf{p} = QQ^T\mathbf{b} = \sum_{i=1}^k (\mathbf{q}_i^T\mathbf{b})\,\mathbf{q}_i, \qquad P = QQ^T. x ^ = Q T b , p = Q Q T b = i = 1 ∑ k ( q i T b ) q i , P = Q Q T .
연립방정식을 풀 필요가 없습니다. 각 방향으로의 성분은 그 방향과의 내적 한 번으로 구해집니다. 사영은 각 직선 위로의 사영을 따로따로 구해 더한 것입니다. 기저가 수직이라 서로 간섭하지 않기 때문입니다.
특히 q 1 , … , q n \mathbf{q}_1, \ldots, \mathbf{q}_n q 1 , … , q n 이 R n \mathbb{R}^n R n 의 정규직교 기저이면 P = Q Q T = I P = QQ^T = I P = Q Q T = I 이므로
x = ( q 1 T x ) q 1 + ( q 2 T x ) q 2 + ⋯ + ( q n T x ) q n . \mathbf{x} = (\mathbf{q}_1^T\mathbf{x})\mathbf{q}_1 + (\mathbf{q}_2^T\mathbf{x})\mathbf{q}_2 + \cdots + (\mathbf{q}_n^T\mathbf{x})\mathbf{q}_n. x = ( q 1 T x ) q 1 + ( q 2 T x ) q 2 + ⋯ + ( q n T x ) q n .
모든 벡터는 각 기저 방향으로의 사영의 합입니다. 좌표가 내적입니다.
예제 14.6. q 1 = 1 2 ( 1 , 1 ) \mathbf{q}_1 = \frac{1}{\sqrt2}(1, 1) q 1 = 2 1 ( 1 , 1 ) , q 2 = 1 2 ( 1 , − 1 ) \mathbf{q}_2 = \frac{1}{\sqrt2}(1, -1) q 2 = 2 1 ( 1 , − 1 ) 이면 x = ( 5 , 1 ) \mathbf{x} = (5, 1) x = ( 5 , 1 ) 의 좌표는 q 1 T x = 6 2 \mathbf{q}_1^T\mathbf{x} = \frac{6}{\sqrt2} q 1 T x = 2 6 , q 2 T x = 4 2 \mathbf{q}_2^T\mathbf{x} = \frac{4}{\sqrt2} q 2 T x = 2 4 입니다. 3장에서 연립방정식으로 풀었던 문제(문제 3.2)가 내적 두 번으로 끝났습니다.
기저를 돌린 각과 벡터 x를 바꾸면 좌표 c₁ = q₁ᵀx, c₂ = q₂ᵀx와 두 사영이 바뀝니다 이 위젯은 JavaScript가 필요합니다
직관. 이 공식은 푸리에 급수의 원형입니다. 함수를 sin k x \sin kx sin k x , cos k x \cos kx cos k x 의 합으로 쓰는 푸리에 급수에서 각 계수는 함수와 sin k x \sin kx sin k x 의 “내적”(적분)으로 구합니다. sin k x \sin kx sin k x 들이 서로 “수직”이기 때문입니다. 25장에서 함수 공간의 내적을 정의하면 이것이 정확히 같은 이야기임을 보게 됩니다.
▶ 문제 14.5–14.6
14.4 그람–슈미트 과정
질문. 독립인 벡터 a , b , c \mathbf{a}, \mathbf{b}, \mathbf{c} a , b , c 가 주어졌습니다. 같은 공간을 span하는 정규직교 벡터를 어떻게 만들까요?
그림 14.1. b \mathbf{b} b 에서 A A A 방향 성분 p \mathbf{p} p 를 빼면 A A A 에 수직인 B B B 가 남습니다.
아이디어는 그림 14.1 하나로 요약됩니다. 각 벡터에서 이미 만든 방향들의 성분을 빼면 수직인 부분이 남습니다.
정의 14.7 (그람–슈미트 과정). 독립인 a 1 , … , a n \mathbf{a}_1, \ldots, \mathbf{a}_n a 1 , … , a n 에 대해 차례로
A 1 = a 1 , A 2 = a 2 − A 1 T a 2 A 1 T A 1 A 1 , A 3 = a 3 − A 1 T a 3 A 1 T A 1 A 1 − A 2 T a 3 A 2 T A 2 A 2 , ⋮ \begin{aligned}
\mathbf{A}_1 &= \mathbf{a}_1, \\
\mathbf{A}_2 &= \mathbf{a}_2 - \frac{\mathbf{A}_1^T\mathbf{a}_2}{\mathbf{A}_1^T\mathbf{A}_1}\mathbf{A}_1, \\
\mathbf{A}_3 &= \mathbf{a}_3 - \frac{\mathbf{A}_1^T\mathbf{a}_3}{\mathbf{A}_1^T\mathbf{A}_1}\mathbf{A}_1 - \frac{\mathbf{A}_2^T\mathbf{a}_3}{\mathbf{A}_2^T\mathbf{A}_2}\mathbf{A}_2, \\
&\ \ \vdots
\end{aligned} A 1 A 2 A 3 = a 1 , = a 2 − A 1 T A 1 A 1 T a 2 A 1 , = a 3 − A 1 T A 1 A 1 T a 3 A 1 − A 2 T A 2 A 2 T a 3 A 2 , ⋮
를 만들고, 마지막에 q i = A i / ∥ A i ∥ \mathbf{q}_i = \mathbf{A}_i / \lVert \mathbf{A}_i \rVert q i = A i / ∥ A i ∥ 로 정규화합니다. 이 과정을 그람–슈미트 과정 (Gram–Schmidt process)이라 합니다.
정리 14.8 (그람–슈미트의 결과). 위의 과정에서
A 1 , … , A n \mathbf{A}_1, \ldots, \mathbf{A}_n A 1 , … , A n 은 서로 수직이고 모두 0 \mathbf{0} 0 이 아닙니다.
각 k k k 에 대해 span { q 1 , … , q k } = span { a 1 , … , a k } \operatorname{span}\{\mathbf{q}_1, \ldots, \mathbf{q}_k\} = \operatorname{span}\{\mathbf{a}_1, \ldots, \mathbf{a}_k\} span { q 1 , … , q k } = span { a 1 , … , a k } .
증명. k k k 에 대한 귀납법. A 1 , … , A k − 1 \mathbf{A}_1, \ldots, \mathbf{A}_{k-1} A 1 , … , A k − 1 이 서로 수직이고 span { A 1 , … , A k − 1 } = span { a 1 , … , a k − 1 } \operatorname{span}\{\mathbf{A}_1, \ldots, \mathbf{A}_{k-1}\} = \operatorname{span}\{\mathbf{a}_1, \ldots, \mathbf{a}_{k-1}\} span { A 1 , … , A k − 1 } = span { a 1 , … , a k − 1 } 이라 합시다. j < k j < k j < k 에 대해
A j T A k = A j T a k − ∑ i < k A i T a k A i T A i A j T A i = A j T a k − A j T a k A j T A j A j T A j = 0. \mathbf{A}_j^T\mathbf{A}_k = \mathbf{A}_j^T\mathbf{a}_k - \sum_{i < k}\frac{\mathbf{A}_i^T\mathbf{a}_k}{\mathbf{A}_i^T\mathbf{A}_i}\mathbf{A}_j^T\mathbf{A}_i = \mathbf{A}_j^T\mathbf{a}_k - \frac{\mathbf{A}_j^T\mathbf{a}_k}{\mathbf{A}_j^T\mathbf{A}_j}\mathbf{A}_j^T\mathbf{A}_j = 0. A j T A k = A j T a k − i < k ∑ A i T A i A i T a k A j T A i = A j T a k − A j T A j A j T a k A j T A j = 0.
(합에서 i = j i = j i = j 인 항만 남습니다.) A k \mathbf{A}_k A k 는 a k \mathbf{a}_k a k 에서 span { a 1 , … , a k − 1 } \operatorname{span}\{\mathbf{a}_1, \ldots, \mathbf{a}_{k-1}\} span { a 1 , … , a k − 1 } 의 원소를 뺀 것이므로, A k = 0 \mathbf{A}_k = \mathbf{0} A k = 0 이면 a k \mathbf{a}_k a k 가 앞의 벡터들의 일차결합이 되어 독립성에 모순입니다. 또 A k ∈ span { a 1 , … , a k } \mathbf{A}_k \in \operatorname{span}\{\mathbf{a}_1, \ldots, \mathbf{a}_k\} A k ∈ span { a 1 , … , a k } 이고 a k ∈ span { A 1 , … , A k } \mathbf{a}_k \in \operatorname{span}\{\mathbf{A}_1, \ldots, \mathbf{A}_k\} a k ∈ span { A 1 , … , A k } 이므로 span이 같습니다. ■
a와 b의 각도와 길이를 바꾸면 사영 p와, a에 수직인 B = b − p, 정규화한 q₁, q₂가 바뀝니다 이 위젯은 JavaScript가 필요합니다
예제 14.9. a = ( 1 , − 1 , 0 ) \mathbf{a} = (1, -1, 0) a = ( 1 , − 1 , 0 ) , b = ( 2 , 0 , − 2 ) \mathbf{b} = (2, 0, -2) b = ( 2 , 0 , − 2 ) , c = ( 3 , − 3 , 3 ) \mathbf{c} = (3, -3, 3) c = ( 3 , − 3 , 3 ) .
A = a = ( 1 , − 1 , 0 ) A = \mathbf{a} = (1, -1, 0) A = a = ( 1 , − 1 , 0 ) .
A T b = 2 A^T\mathbf{b} = 2 A T b = 2 , A T A = 2 A^TA = 2 A T A = 2 이므로 B = b − A = ( 1 , 1 , − 2 ) B = \mathbf{b} - A = (1, 1, -2) B = b − A = ( 1 , 1 , − 2 ) . 확인: A T B = 0 A^TB = 0 A T B = 0 .
A T c = 6 A^T\mathbf{c} = 6 A T c = 6 이므로 A A A 성분은 3 A 3A 3 A . B T c = 3 − 3 − 6 = − 6 B^T\mathbf{c} = 3 - 3 - 6 = -6 B T c = 3 − 3 − 6 = − 6 , B T B = 6 B^TB = 6 B T B = 6 이므로 B B B 성분은 − B -B − B .
C = c − 3 A + B = ( 3 , − 3 , 3 ) − ( 3 , − 3 , 0 ) + ( 1 , 1 , − 2 ) = ( 1 , 1 , 1 ) . C = \mathbf{c} - 3A + B = (3, -3, 3) - (3, -3, 0) + (1, 1, -2) = (1, 1, 1). C = c − 3 A + B = ( 3 , − 3 , 3 ) − ( 3 , − 3 , 0 ) + ( 1 , 1 , − 2 ) = ( 1 , 1 , 1 ) .
정규화하면
q 1 = 1 2 ( 1 , − 1 , 0 ) , q 2 = 1 6 ( 1 , 1 , − 2 ) , q 3 = 1 3 ( 1 , 1 , 1 ) . \mathbf{q}_1 = \tfrac{1}{\sqrt2}(1, -1, 0), \qquad \mathbf{q}_2 = \tfrac{1}{\sqrt6}(1, 1, -2), \qquad \mathbf{q}_3 = \tfrac{1}{\sqrt3}(1, 1, 1). q 1 = 2 1 ( 1 , − 1 , 0 ) , q 2 = 6 1 ( 1 , 1 , − 2 ) , q 3 = 3 1 ( 1 , 1 , 1 ) .
계산할 때의 요령: 정규화는 맨 마지막에 합니다. 중간에 \sqrt{\ } 를 들고 다니면 계산이 지저분해집니다. A i A_i A i 끼리만 수직이면 되므로, 중간에 A i A_i A i 를 편한 상수배로 바꿔도 됩니다.
▶ 문제 14.7–14.9
14.5 A = QR
8장의 소거를 A = L U A = LU A = LU 로 기록했듯이, 그람–슈미트를 행렬 분해로 기록할 수 있습니다. 정리 14.8 (2)에 의해 a k ∈ span { q 1 , … , q k } \mathbf{a}_k \in \operatorname{span}\{\mathbf{q}_1, \ldots, \mathbf{q}_k\} a k ∈ span { q 1 , … , q k } 이므로
a k = ( q 1 T a k ) q 1 + ⋯ + ( q k T a k ) q k . \mathbf{a}_k = (\mathbf{q}_1^T\mathbf{a}_k)\mathbf{q}_1 + \cdots + (\mathbf{q}_k^T\mathbf{a}_k)\mathbf{q}_k. a k = ( q 1 T a k ) q 1 + ⋯ + ( q k T a k ) q k .
a k \mathbf{a}_k a k 에는 q k + 1 \mathbf{q}_{k+1} q k + 1 이후의 성분이 없습니다. 행렬로 쓰면
정리 14.10 (QR 분해). 열이 독립인 m × n m \times n m × n 행렬 A A A 는
A = Q R , [ a 1 ⋯ a n ] = [ q 1 ⋯ q n ] [ q 1 T a 1 q 1 T a 2 ⋯ q 1 T a n 0 q 2 T a 2 ⋯ q 2 T a n ⋮ ⋱ ⋮ 0 0 ⋯ q n T a n ] A = QR, \qquad \begin{bmatrix} \mathbf{a}_1 & \cdots & \mathbf{a}_n \end{bmatrix} = \begin{bmatrix} \mathbf{q}_1 & \cdots & \mathbf{q}_n \end{bmatrix}\begin{bmatrix} \mathbf{q}_1^T\mathbf{a}_1 & \mathbf{q}_1^T\mathbf{a}_2 & \cdots & \mathbf{q}_1^T\mathbf{a}_n \\ 0 & \mathbf{q}_2^T\mathbf{a}_2 & \cdots & \mathbf{q}_2^T\mathbf{a}_n \\ \vdots & & \ddots & \vdots \\ 0 & 0 & \cdots & \mathbf{q}_n^T\mathbf{a}_n \end{bmatrix} A = QR , [ a 1 ⋯ a n ] = [ q 1 ⋯ q n ] q 1 T a 1 0 ⋮ 0 q 1 T a 2 q 2 T a 2 0 ⋯ ⋯ ⋱ ⋯ q 1 T a n q 2 T a n ⋮ q n T a n
로 쓸 수 있습니다. Q Q Q 는 정규직교인 열을 가진 m × n m \times n m × n 행렬, R = Q T A R = Q^TA R = Q T A 는 대각성분이 양수인 n × n n \times n n × n 위삼각행렬입니다.
대각성분 q k T a k = ∥ A k ∥ > 0 \mathbf{q}_k^T\mathbf{a}_k = \lVert \mathbf{A}_k \rVert > 0 q k T a k = ∥ A k ∥ > 0 입니다(a k \mathbf{a}_k a k 의 q k \mathbf{q}_k q k 성분은 정확히 A k \mathbf{A}_k A k 의 길이).
예제 14.11. 예제 14.9의 처음 두 벡터로 A = [ 1 2 − 1 0 0 − 2 ] A = \begin{bmatrix} 1 & 2 \\ -1 & 0 \\ 0 & -2 \end{bmatrix} A = 1 − 1 0 2 0 − 2 를 분해합시다. q 1 T a 1 = 2 \mathbf{q}_1^T\mathbf{a}_1 = \sqrt2 q 1 T a 1 = 2 , q 1 T a 2 = 2 2 = 2 \mathbf{q}_1^T\mathbf{a}_2 = \frac{2}{\sqrt2} = \sqrt2 q 1 T a 2 = 2 2 = 2 , q 2 T a 2 = 2 + 0 + 4 6 = 6 \mathbf{q}_2^T\mathbf{a}_2 = \frac{2 + 0 + 4}{\sqrt6} = \sqrt6 q 2 T a 2 = 6 2 + 0 + 4 = 6 이므로
[ 1 2 − 1 0 0 − 2 ] = [ 1 2 1 6 − 1 2 1 6 0 − 2 6 ] [ 2 2 0 6 ] . \begin{bmatrix} 1 & 2 \\ -1 & 0 \\ 0 & -2 \end{bmatrix} = \begin{bmatrix} \frac{1}{\sqrt2} & \frac{1}{\sqrt6} \\ -\frac{1}{\sqrt2} & \frac{1}{\sqrt6} \\ 0 & -\frac{2}{\sqrt6} \end{bmatrix}\begin{bmatrix} \sqrt2 & \sqrt2 \\ 0 & \sqrt6 \end{bmatrix}. 1 − 1 0 2 0 − 2 = 2 1 − 2 1 0 6 1 6 1 − 6 2 [ 2 0 2 6 ] .
14.5.1 QR로 최소제곱 풀기
정규방정식 A T A x ^ = A T b A^TA\hat{\mathbf{x}} = A^T\mathbf{b} A T A x ^ = A T b 에 A = Q R A = QR A = QR 을 넣으면 Q T Q = I Q^TQ = I Q T Q = I 이므로
R T R x ^ = R T Q T b ⟹ R x ^ = Q T b . R^TR\hat{\mathbf{x}} = R^TQ^T\mathbf{b} \implies R\hat{\mathbf{x}} = Q^T\mathbf{b}. R T R x ^ = R T Q T b ⟹ R x ^ = Q T b .
(R T R^T R T 는 가역이므로 지웠습니다.) R R R 이 위삼각이라 후진대입으로 끝납니다. A T A A^TA A T A 를 만들지 않으므로 수치 오차에도 강합니다. 실제 프로그램이 최소제곱을 푸는 방법이 이것입니다. 30장에서 Q R QR QR 은 고윳값을 계산하는 QR 알고리즘의 바탕이 됩니다.
▶ 문제 14.10–14.12
쓰이는 곳. QR 분해는 최소제곱 문제를 안정적으로 풀고 고윳값을 구하는(QR 알고리즘) 표준 도구입니다. 신경망 가중치를 직교행렬로 초기화하는 방법도 이 장의 내용을 씁니다.
이 장의 요약
정규직교: q i T q j = δ i j \mathbf{q}_i^T\mathbf{q}_j = \delta_{ij} q i T q j = δ ij , 즉 Q T Q = I Q^TQ = I Q T Q = I . 정규직교 벡터는 독립입니다.
정사각인 Q Q Q 가 Q T Q = I Q^TQ = I Q T Q = I 이면 직교행렬, Q − 1 = Q T Q^{-1} = Q^T Q − 1 = Q T . 길이와 각을 보존합니다(회전, 반사, 치환).
정규직교 기저에서 좌표는 내적: x = ∑ ( q i T x ) q i \mathbf{x} = \sum (\mathbf{q}_i^T\mathbf{x})\mathbf{q}_i x = ∑ ( q i T x ) q i . 사영 P = Q Q T P = QQ^T P = Q Q T .
그람–슈미트: 각 벡터에서 앞의 방향 성분을 빼고, 마지막에 정규화.
A = Q R A = QR A = QR , R = Q T A R = Q^TA R = Q T A 는 위삼각. 최소제곱은 R x ^ = Q T b R\hat{\mathbf{x}} = Q^T\mathbf{b} R x ^ = Q T b .
문제
14.1 [계산] · 확인 문제
다음 행렬의 열이 정규직교인지, 직교만 하는지(길이가 1이 아닌지), 둘 다 아닌지 판정합니다. 표에는 “정규직교”, “직교”, “둘 다 아님” 중 하나를 적습니다.
(a) 1 3 [ 2 2 − 1 2 − 1 2 − 1 2 2 ] (b) [ 1 1 1 − 1 ] (c) [ 0.6 0.8 0.8 − 0.6 ] \text{(a)}\ \frac13\begin{bmatrix} 2 & 2 & -1 \\ 2 & -1 & 2 \\ -1 & 2 & 2 \end{bmatrix} \qquad \text{(b)}\ \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} \qquad \text{(c)}\ \begin{bmatrix} 0.6 & 0.8 \\ 0.8 & -0.6 \end{bmatrix} (a) 3 1 2 2 − 1 2 − 1 2 − 1 2 2 (b) [ 1 1 1 − 1 ] (c) [ 0.6 0.8 0.8 − 0.6 ]
정답 풀이 (a) 각 열의 길이 1 3 4 + 4 + 1 = 1 \frac13\sqrt{4 + 4 + 1} = 1 3 1 4 + 4 + 1 = 1 , 열끼리 내적 1 9 ( 4 − 2 − 2 ) = 0 \frac19(4 - 2 - 2) = 0 9 1 ( 4 − 2 − 2 ) = 0 등. 정규직교(직교행렬).
(b) 수직이지만 길이가 2 \sqrt2 2 . 직교만 합니다. 1 2 \frac{1}{\sqrt2} 2 1 을 곱하면 직교행렬.
(c) 길이 0.36 + 0.64 = 1 \sqrt{0.36 + 0.64} = 1 0.36 + 0.64 = 1 , 내적 0.48 − 0.48 = 0 0.48 - 0.48 = 0 0.48 − 0.48 = 0 . 정규직교.
14.2 [계산]
문제 14.1(a)의 행렬 Q Q Q 의 역행렬을 구합니다. (c)는 어떤 변환일까요?
풀이 Q − 1 = Q T Q^{-1} = Q^T Q − 1 = Q T . (a)는 대칭이므로 Q − 1 = Q Q^{-1} = Q Q − 1 = Q 자신. (c)는 det = − 1 \det = -1 det = − 1 인 직교행렬로 반사입니다(직선 y = 1 2 x y = \frac12x y = 2 1 x 에 대한 반사; ( 2 , 1 ) (2, 1) ( 2 , 1 ) 이 고유벡터, 고윳값 1).
14.3 [증명]
직교행렬 Q Q Q 에 대해 det Q = ± 1 \det Q = \pm1 det Q = ± 1 임을 보입니다. (det A T = det A \det A^T = \det A det A T = det A 와 det ( A B ) = det A det B \det(AB) = \det A\det B det ( A B ) = det A det B 를 써도 됩니다. n × n n \times n n × n 에 대한 증명은 15장에 있습니다.)
풀이 1 = det I = det ( Q T Q ) = det Q T det Q = ( det Q ) 2 1 = \det I = \det(Q^TQ) = \det Q^T\det Q = (\det Q)^2 1 = det I = det ( Q T Q ) = det Q T det Q = ( det Q ) 2 .
14.4 [증명]
(a) 두 직교행렬의 곱은 직교행렬임을 보입니다. (b) ∥ u ∥ = 1 \lVert \mathbf{u} \rVert = 1 ∥ u ∥ = 1 이고 H = I − 2 u u T H = I - 2\mathbf{u}\mathbf{u}^T H = I − 2 u u T 이면 H u = − u H\mathbf{u} = -\mathbf{u} H u = − u 이고, v ⊥ u \mathbf{v} \perp \mathbf{u} v ⊥ u 이면 H v = v H\mathbf{v} = \mathbf{v} H v = v 임을 보입니다. 그림으로 설명합니다.
풀이 (a) ( Q 1 Q 2 ) T ( Q 1 Q 2 ) = Q 2 T Q 1 T Q 1 Q 2 = Q 2 T Q 2 = I (Q_1Q_2)^T(Q_1Q_2) = Q_2^TQ_1^TQ_1Q_2 = Q_2^TQ_2 = I ( Q 1 Q 2 ) T ( Q 1 Q 2 ) = Q 2 T Q 1 T Q 1 Q 2 = Q 2 T Q 2 = I .
(b) H u = u − 2 u ( u T u ) = − u H\mathbf{u} = \mathbf{u} - 2\mathbf{u}(\mathbf{u}^T\mathbf{u}) = -\mathbf{u} H u = u − 2 u ( u T u ) = − u . H v = v − 2 u ( u T v ) = v H\mathbf{v} = \mathbf{v} - 2\mathbf{u}(\mathbf{u}^T\mathbf{v}) = \mathbf{v} H v = v − 2 u ( u T v ) = v . 그림: u \mathbf{u} u 에 수직인 평면(거울)은 그대로, u \mathbf{u} u 방향은 뒤집힙니다.
14.5 [계산] · 확인 문제
문제 14.1(a)의 세 열을 q 1 , q 2 , q 3 \mathbf{q}_1, \mathbf{q}_2, \mathbf{q}_3 q 1 , q 2 , q 3 이라 합시다. x = ( 3 , 0 , 3 ) \mathbf{x} = (3, 0, 3) x = ( 3 , 0 , 3 ) 의 좌표를 내적으로 구하고, x = ∑ c i q i \mathbf{x} = \sum c_i\mathbf{q}_i x = ∑ c i q i 를 확인합니다.
c 1 c_1 c 1
c 2 c_2 c 2
c 3 c_3 c 3
[?]
[?]
[?]
정답 풀이 q 1 T x = 1 3 ( 6 + 0 − 3 ) = 1 \mathbf{q}_1^T\mathbf{x} = \frac13(6 + 0 - 3) = 1 q 1 T x = 3 1 ( 6 + 0 − 3 ) = 1 , q 2 T x = 1 3 ( 6 + 0 + 6 ) = 4 \mathbf{q}_2^T\mathbf{x} = \frac13(6 + 0 + 6) = 4 q 2 T x = 3 1 ( 6 + 0 + 6 ) = 4 , q 3 T x = 1 3 ( − 3 + 0 + 6 ) = 1 \mathbf{q}_3^T\mathbf{x} = \frac13(-3 + 0 + 6) = 1 q 3 T x = 3 1 ( − 3 + 0 + 6 ) = 1 . q 1 + 4 q 2 + q 3 = 1 3 ( 9 , 0 , 9 ) = ( 3 , 0 , 3 ) \mathbf{q}_1 + 4\mathbf{q}_2 + \mathbf{q}_3 = \frac13(9, 0, 9) = (3, 0, 3) q 1 + 4 q 2 + q 3 = 3 1 ( 9 , 0 , 9 ) = ( 3 , 0 , 3 ) .
14.6 [계산] · 확인 문제
q 1 = 1 2 ( 1 , − 1 , 0 ) \mathbf{q}_1 = \frac{1}{\sqrt2}(1, -1, 0) q 1 = 2 1 ( 1 , − 1 , 0 ) , q 2 = 1 6 ( 1 , 1 , − 2 ) \mathbf{q}_2 = \frac{1}{\sqrt6}(1, 1, -2) q 2 = 6 1 ( 1 , 1 , − 2 ) 가 span하는 평면 위로 b = ( 1 , 2 , 3 ) \mathbf{b} = (1, 2, 3) b = ( 1 , 2 , 3 ) 을 사영합니다. 오차 e \mathbf{e} e 는 어느 방향일까요?
첫째
둘째
셋째
p \mathbf{p} p
[?]
[?]
[?]
e \mathbf{e} e
[?]
[?]
[?]
정답 풀이 q 1 T b = − 1 2 \mathbf{q}_1^T\mathbf{b} = -\frac{1}{\sqrt2} q 1 T b = − 2 1 , 성분 ( − 1 2 , 1 2 , 0 ) (-\frac12, \frac12, 0) ( − 2 1 , 2 1 , 0 ) . q 2 T b = − 3 6 \mathbf{q}_2^T\mathbf{b} = \frac{-3}{\sqrt6} q 2 T b = 6 − 3 , 성분 ( − 1 2 , − 1 2 , 1 ) (-\frac12, -\frac12, 1) ( − 2 1 , − 2 1 , 1 ) . p = ( − 1 , 0 , 1 ) \mathbf{p} = (-1, 0, 1) p = ( − 1 , 0 , 1 ) , e = ( 2 , 2 , 2 ) \mathbf{e} = (2, 2, 2) e = ( 2 , 2 , 2 ) , ( 1 , 1 , 1 ) (1, 1, 1) ( 1 , 1 , 1 ) 방향(평면의 법선).
14.7 [계산]
( 1 , 1 , 0 ) (1, 1, 0) ( 1 , 1 , 0 ) , ( 1 , 0 , 1 ) (1, 0, 1) ( 1 , 0 , 1 ) 에 그람–슈미트를 적용해 정규직교 벡터를 만듭니다.
풀이 A = ( 1 , 1 , 0 ) A = (1, 1, 0) A = ( 1 , 1 , 0 ) . B = ( 1 , 0 , 1 ) − 1 2 ( 1 , 1 , 0 ) = ( 1 2 , − 1 2 , 1 ) B = (1, 0, 1) - \frac12(1, 1, 0) = (\frac12, -\frac12, 1) B = ( 1 , 0 , 1 ) − 2 1 ( 1 , 1 , 0 ) = ( 2 1 , − 2 1 , 1 ) , 2배 하여 ( 1 , − 1 , 2 ) (1, -1, 2) ( 1 , − 1 , 2 ) . q 1 = 1 2 ( 1 , 1 , 0 ) \mathbf{q}_1 = \frac{1}{\sqrt2}(1, 1, 0) q 1 = 2 1 ( 1 , 1 , 0 ) , q 2 = 1 6 ( 1 , − 1 , 2 ) \mathbf{q}_2 = \frac{1}{\sqrt6}(1, -1, 2) q 2 = 6 1 ( 1 , − 1 , 2 ) .
14.8 [계산]
R 4 \mathbb{R}^4 R 4 의 ( 1 , 1 , 1 , 1 ) (1, 1, 1, 1) ( 1 , 1 , 1 , 1 ) , ( 0 , 1 , 1 , 1 ) (0, 1, 1, 1) ( 0 , 1 , 1 , 1 ) , ( 0 , 0 , 1 , 1 ) (0, 0, 1, 1) ( 0 , 0 , 1 , 1 ) 에 그람–슈미트를 적용합니다(정규화 전의 A , B , C A, B, C A , B , C 까지만 구해도 됩니다). 서로 수직인지 확인합니다.
풀이 A = ( 1 , 1 , 1 , 1 ) A = (1, 1, 1, 1) A = ( 1 , 1 , 1 , 1 ) . B = ( 0 , 1 , 1 , 1 ) − 3 4 A = 1 4 ( − 3 , 1 , 1 , 1 ) B = (0, 1, 1, 1) - \frac34A = \frac14(-3, 1, 1, 1) B = ( 0 , 1 , 1 , 1 ) − 4 3 A = 4 1 ( − 3 , 1 , 1 , 1 ) , ( − 3 , 1 , 1 , 1 ) (-3, 1, 1, 1) ( − 3 , 1 , 1 , 1 ) 로 바꿉니다. C = ( 0 , 0 , 1 , 1 ) − 2 4 A − 2 12 ( − 3 , 1 , 1 , 1 ) = ( 0 , − 2 3 , 1 3 , 1 3 ) C = (0, 0, 1, 1) - \frac24A - \frac{2}{12}(-3, 1, 1, 1) = (0, -\frac23, \frac13, \frac13) C = ( 0 , 0 , 1 , 1 ) − 4 2 A − 12 2 ( − 3 , 1 , 1 , 1 ) = ( 0 , − 3 2 , 3 1 , 3 1 ) , ( 0 , − 2 , 1 , 1 ) (0, -2, 1, 1) ( 0 , − 2 , 1 , 1 ) 로 바꿉니다. A T B = 0 A^TB = 0 A T B = 0 , A T C = 0 A^TC = 0 A T C = 0 , B T C = − 2 + 1 + 1 = 0 B^TC = -2 + 1 + 1 = 0 B T C = − 2 + 1 + 1 = 0 .
14.9 [증명]
a 3 ∈ span { a 1 , a 2 } \mathbf{a}_3 \in \operatorname{span}\{\mathbf{a}_1, \mathbf{a}_2\} a 3 ∈ span { a 1 , a 2 } (a 1 , a 2 \mathbf{a}_1, \mathbf{a}_2 a 1 , a 2 는 독립)이면 그람–슈미트에서 A 3 = 0 \mathbf{A}_3 = \mathbf{0} A 3 = 0 이 됨을 보입니다.
풀이 span { A 1 , A 2 } = span { a 1 , a 2 } ∋ a 3 \operatorname{span}\{\mathbf{A}_1, \mathbf{A}_2\} = \operatorname{span}\{\mathbf{a}_1, \mathbf{a}_2\} \ni \mathbf{a}_3 span { A 1 , A 2 } = span { a 1 , a 2 } ∋ a 3 . A 3 \mathbf{A}_3 A 3 는 a 3 \mathbf{a}_3 a 3 에서 이 평면 위로의 사영(14.3절, 수직인 기저에 대한 성분의 합)을 뺀 것이고, a 3 \mathbf{a}_3 a 3 이 평면 위에 있으면 사영이 자기 자신이므로 A 3 = 0 \mathbf{A}_3 = \mathbf{0} A 3 = 0 .
14.10 [계산] · 확인 문제
A = [ 1 1 1 0 0 1 ] A = \begin{bmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 1 \end{bmatrix} A = 1 1 0 1 0 1 의 Q R QR QR 분해를 구합니다. (문제 14.7을 씁니다.) 표에는 R R R 의 성분을 소수 셋째 자리까지 적습니다.
1열
2열
1행
[?]
[?]
2행
0
[?]
정답 풀이 R = [ q 1 T a 1 q 1 T a 2 0 q 2 T a 2 ] = [ 2 1 2 0 3 6 ] R = \begin{bmatrix} \mathbf{q}_1^T\mathbf{a}_1 & \mathbf{q}_1^T\mathbf{a}_2 \\ 0 & \mathbf{q}_2^T\mathbf{a}_2 \end{bmatrix} = \begin{bmatrix} \sqrt2 & \frac{1}{\sqrt2} \\ 0 & \frac{3}{\sqrt6} \end{bmatrix} R = [ q 1 T a 1 0 q 1 T a 2 q 2 T a 2 ] = [ 2 0 2 1 6 3 ] , Q = [ q 1 q 2 ] Q = \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 \end{bmatrix} Q = [ q 1 q 2 ] (문제 14.7).
14.11 [계산] · 확인 문제
문제 14.10의 Q R QR QR 을 써서 A x = ( 2 , 3 , 4 ) A\mathbf{x} = (2, 3, 4) A x = ( 2 , 3 , 4 ) 의 최소제곱 해를 R x ^ = Q T b R\hat{\mathbf{x}} = Q^T\mathbf{b} R x ^ = Q T b 로 구합니다. 문제 13.9의 답과 비교합니다.
x ^ 1 \hat{x}_1 x ^ 1
x ^ 2 \hat{x}_2 x ^ 2
[?]
[?]
정답 풀이 Q T b = ( 5 2 , 2 − 3 + 8 6 ) = ( 5 2 , 7 6 ) Q^T\mathbf{b} = \left(\frac{5}{\sqrt2}, \frac{2 - 3 + 8}{\sqrt6}\right) = \left(\frac{5}{\sqrt2}, \frac{7}{\sqrt6}\right) Q T b = ( 2 5 , 6 2 − 3 + 8 ) = ( 2 5 , 6 7 ) . 둘째 식 3 6 x ^ 2 = 7 6 \frac{3}{\sqrt6}\hat{x}_2 = \frac{7}{\sqrt6} 6 3 x ^ 2 = 6 7 에서 x ^ 2 = 7 3 \hat{x}_2 = \frac73 x ^ 2 = 3 7 . 첫째 식 2 x ^ 1 + 1 2 x ^ 2 = 5 2 \sqrt2\hat{x}_1 + \frac{1}{\sqrt2}\hat{x}_2 = \frac{5}{\sqrt2} 2 x ^ 1 + 2 1 x ^ 2 = 2 5 에서 2 x ^ 1 + 7 3 = 5 2\hat{x}_1 + \frac73 = 5 2 x ^ 1 + 3 7 = 5 , x ^ 1 = 4 3 \hat{x}_1 = \frac43 x ^ 1 = 3 4 . 13.9와 같습니다.
14.12 [도전]
(a) 직교행렬의 실수 고윳값은 ± 1 \pm1 ± 1 뿐임을 보입니다. (b) 2 × 2 2 \times 2 2 × 2 직교행렬은 회전 [ cos θ − sin θ sin θ cos θ ] \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} [ cos θ sin θ − sin θ cos θ ] 또는 반사 [ cos θ sin θ sin θ − cos θ ] \begin{bmatrix} \cos\theta & \sin\theta \\ \sin\theta & -\cos\theta \end{bmatrix} [ cos θ sin θ sin θ − cos θ ] 꼴뿐임을 보입니다.
풀이 (a) Q v = λ v Q\mathbf{v} = \lambda\mathbf{v} Q v = λ v 이면 ∥ v ∥ = ∥ Q v ∥ = ∣ λ ∣ ∥ v ∥ \lVert \mathbf{v} \rVert = \lVert Q\mathbf{v} \rVert = \lvert \lambda \rvert\lVert \mathbf{v} \rVert ∥ v ∥ = ∥ Q v ∥ = ∣ λ ∣ ∥ v ∥ , v ≠ 0 \mathbf{v} \ne \mathbf{0} v = 0 이므로 ∣ λ ∣ = 1 \lvert \lambda \rvert = 1 ∣ λ ∣ = 1 .
(b) 첫째 열은 단위벡터이므로 ( cos θ , sin θ ) (\cos\theta, \sin\theta) ( cos θ , sin θ ) . 둘째 열은 그것에 수직인 단위벡터이고, 평면에서 그런 벡터는 ± ( − sin θ , cos θ ) \pm(-\sin\theta, \cos\theta) ± ( − sin θ , cos θ ) 둘뿐입니다. + + + 이면 회전(det = 1 \det = 1 det = 1 ), − - − 이면 반사(det = − 1 \det = -1 det = − 1 ).