선형대수 (3)
![]() 선형대수, George Nakos 지음, 김철언 외 옮김/인터비젼 |
3. 행렬
3.1 행렬연산
- 행열은 수평 열과 수직 열에 원소를 사각형을 배열 한 것, 성분(entity) $a_{ij}$, i행(row), j열(column)
- 열 행렬 혹은 열 벡터
- 성분이 모두 0인 행렬을 영행렬 = 0 으로 표시
- $a_{ii}$를 주 대각선(main diagonal)이라고 하고, 주대각선 아래의 성분이 모두 0이면 위삼각(upper triangular), 위가 모두 0이면 아래 삼각(lower triangular)이라고 한다.
- 주 대각선 위와 아래의 성분이 모두 0이면 대각(diagonal)하다고 한다.
- 행렬 A가 스칼라이다 라는 것은 모든 대각 성분이 일치하는 대각행렬일 때.
- 두 행렬이 일치한다라는 것은 행렬의 크기가 같고 대응하는 성분이 일치할 때.
행렬 더하기와 스칼라 곱
같은 크기의 두 행렬 A와 B의 합 A+B는 행렬의 대응하는 성분의 합으로 얻어짐.
임의의 스칼라 c에 대하여 스칼라 곱(scalar product) $ cA $는 A의 각 성분에 c를 곱하여 얻어지는 행렬
정리 1 더하기와 스칼라곱의 법칙
A, B, C를 임의의 m * n 행렬 a, b, c를 임의의 스칼라라면 다음이 성립한다.
- $ (A + B) + C = A + (B + C) $
- $ A + B = B + A $
- $ A + 0 = 0 + A = A $
- $ A + (-A) = (-A) + A = 0 $
- $ c ( A + B) = cA + cB $
- $ (a + b) C = aC + bC $
- $ (ab) C = a (bC) = b(aC) $
- $ 1A = A $
- $ 0A = 0 $
간단한 행렬 방정식
2X - 4B = 3A 의 행렬로 방정식을 표현하여 X를 구할 수 있다.
행렬 곱
정의 행렬 곱
A를 m * k 행렬, B를 k * n 행렬이라고 하자. 곱 AB는 열이 $ A b_1, \dots, A b_n $인 m * n 행렬이다. 여기서 $ b_1, \dots, b_n $은 B의 열이다.
AB의 행-열 계산
만약 $ C = [ c_{ij} ] = AB $ 이면 성분 $ c_{ij} $는 A의 i행과 B의 j열의 닷곱이다.
정리 행렬 곱의 법칙
A를 m * n행렬이라 하고 B, C는 아래의 연산이 수행될 수 있는 행렬, a는 임의의 스칼라라고 하면 다음이 성립한다.
- $ (AB) C = A (BC) $
- $ A ( B+ C) = AB + AC $
- $(B + C) A = BA + BC $
- $a(BC) = (aB)C = B(aC) $
- $ i_mA = A I_n = A $
- $ 0A = 0, A0 = 0$
정사각행렬의 거듭제곱
정리 3
임의의 양의 정수 n, m에 대하여 $ A^n A^m = A^{n+m}, (A^n)^m = A^{nm}, (cA)^n = c^n A^n $ 가 성립한다.
행렬곱의 불편
- 만약 AB가 정의되더라도 BA가 반드시 정의될 필요는 없다.
- AB와 BA가 정의되더라도 크기가 같아야만 하는 것은 아니다.
- AB와 BA가 모두 정의되고 같은 크기라도 두 행렬이 일치해야 하는 것은 아니다.
- AB = 0 라고 하더라도 항상 A = 0, B =0 인 상황은 아니다.
- CA = CB 이더라도 항상 A = B 인 것은 아니다.
- AC = BC가 항상 A = B인 것은 아니다
- $ A^2 = I $이더라도 $ A= \pm I$이지는 않는다
- $ (AB)^n \neq A^n B^n $이다.
만약 두 행렬 A, B 가 AB = BA를 만족한다면 두 행렬은 가환이라고 한다.
블록 행렬
행렬의 부분행렬(submatrix)은 그 행렬에서 임의의 행 혹은 열을 소거해서 얻어지는 행렬이다. 쉽게 다루기 힘든 큰 행렬을 부분 행렬의 블록으로 자주 분할한다. 이렇게 부분행렬로 이루어지는 행렬을 블록행렬이라고 한다.
$$A = \begin{bmatrix} A_{11} & A_{12} & A_{13} \\ A_{21} & A_{22} & A_{23} \end{bmatrix}$$
여기서 성분인 $ A_{ij} $는 A의 부분행렬이다.
블록행렬은 두 블록행렬의 블록 크기가 같을 때 보통 행렬인 것처럼 연산을 수행할 수 있다.
3.2 행렬의 역
정의 역
n * n 행렬 A가 가역(invertible) 또는 정칙(nonsingular)라는 것은 $AB = I, BA = I $인 행렬 A의 역인 행렬 B가 존재하는 것이다.
역을 가지지 않는 정사각행렬을 비가약(noninvertible), 또는 특이행렬(singular)이라고 한다.
정리 4
2 * 2행렬 A가 가역일 필요충분조건은 행렬식이 0이 아닌 것이다.
정리 5
만약 n * n 행렬 A가 가역이면 각각의 n-벡터 b에 대하여 연립방정식 Ax = b는 꼭 하나의 해를 가진다. 이 해는 $ x = A^{-1} b $ 로 주어진다.
정리 6 역의 성질
- 가역인 두 행렬의 곱은 가역이다. 그 역은 각각의 역을 역순으로 곱한 것이다. $ (AB)^{-1} = B^{-1} A^{-1} $
- 가역행렬의 역 또한 가역이다. $ (A^{-1})^{-1} = A $
- 가역행렬의 임의의 영 아닌 상수곱은 가역이다. 그 역은 상수의 역수와 역행렬의 스칼라 곱이다. $ (cA)^{-1} = \frac{1}{c} A^{-1} $
정리 7 거듭제곱의 성질
A를 k * k인 가역행렬, m과 n을 임의의 두 정수, c를 영 아닌 스칼라라고 하면, $ A^n $은 가역이고 다음이 성립한다.
- $ (A^n)^{-1} = (A^{-1})^n $
- $ (A^n)^m = A^{nm} $
- $ A^n A^m = A^{n + m} $
- $ (cA)^n = c^n A^n $
정리 8 소거법칙
만약 C가 가역이면 다음이 성립한다.
- $ CA = CB \Rightarrow A = B$
- $ AC = BC \Rightarrow A = B $
간단한 행렬곱 방정식
예를 들면 행렬방정식 $ CXA - B = 0 $를 $ X = A^{-1} B C^{-1} $와 같은 꼴로 변환하여 행렬방정식을 풀 수 있다.
$A^{-1}$의 계산
알고리즘 1 역행렬 알고리즘
역행렬이 존재한다면, $ A^{-1} $을 구하기 위해 다음을 하여라.
- 행렬 [A : I]의 간소화된 행 사다리꼴 [ B : C]을 구한다.
- B가 영행을 가지면 A는 비가역이다.
- 간소화된 행렬을 $ \big[ I : A^{-1} \big] $꼴로 만들면 역핼열을 구할 수 있다.
전치와 행렬연산
A의 전치행렬 $ A^T$는 A의 행과 열을 바꾸어 놓은 행렬이다. 자신의 전치행렬과 일치하는 행렬을 대칭행렬이라한다.
정리 9
- $ (A^T)^T = A $
- $ (A + B)^T = A^T + B^T $
- $(cA)^T = cA^T $
- $ (AB)^T = B^T A^T $
- 만약 A가 가역이면 $ A^T$도 가역이다. 이 때, $ (A^T)^{-1} = (A^{-1})^T $이다.
3.3 기본행렬과 가역행렬
기본행렬
정의 기본행렬
n * n 행렬이 기본 행렬이라는 것은 $ I_n$에서 단 한번의 행연산을 사용하여 만들어낼 수 있는 행렬이다.
만약 행렬 A의 왼쪽에 기본 행렬 E를 곱하면 그 곱 EA는 $I_n$에서 E를 만들 때 사용된 행 연산을 A에 사용한 것과 결과가 같다.
정리 10
모든 기본 행렬 E는 그 역을 가지고 역 또한 기본행렬이다. $ E^{-1} $는 $ I$ 에서 $ E $를 만드는 기본 행 연산의 역을 실행하여 $ I $ 로부터 얻어진다
정리 11
$ A \sim B $일 필요충분 조건은 기본행렬 $ E_1, \dots, E_k$가 존재하여 $ B = E_k \dots E_1 A $를 만족한다.
가역행렬의 특성
정리 12
정사각행렬 A의 간소화된 행사다리꼴 R은 I이거나 영행을 가진다.
정리 13
다음은 동치이다.
- A는 가역이다.
- $ A \sim I $
- A는 기본행렬의 곱이다.
역행렬 알고리즘
정리 14
A와 B를 m * n 행렬이라고 하자. 만약 AB = I 이면, A와 B는 가역이고 $ A^{-1} = B, B^{-1} = A$이다.
정리 15
A를 n * n 행렬이라고 하면 다음은 동치이다.
- A는 가역이다.
- $ A \sim I_n $
- A는 기본행렬의 곱이다.
- n * n 행렬 B가 존재하여 $ AB = I_n $이다.
- n * n 행렬 C가 존재하여 $ CA = I_n $이다.
- A의 각각의 열은 피보트열이다.
- A의 각각의 행은 피보트를 가진다.
- A의 열은 일차독립이다.
- A의 행은 일차독립이다.
- A의 열은 $ R^n $을 생성한다.
- A의 행은 $R^n $을 생성한다.
- 연립방정식 Ax = b는 각각의 n-벡터 b에 대하여 적어도 하나의 해를 가진다.
- 연립방정식 Ax = b는 각각의 n-벡터 b에 대하여 꼭 하나의 해를 가진다.
- 제차연립방정식 Ax = 0 은 자명해 만을 가진다.
정리 16
A와 B를 m * n 행렬이라고 할 때, A 또는 B가 비가역이면 AB도 비가역이다.
3.4 LU 인수분해
만약 m * n 행렬 A를 $ A = LU $으로 분해하는 방법을 안다고 가정하자. 여기서 L은 아래 삼각행렬이고 U는 행사다리꼴이다. 그러면 연립방정식 Ax = b 는 두단계로 풀 수 있다.
먼저 $ Ly = b $를 y에 관하여 푼다. 다음을 푼다.
$$Ux = y \\ LUx = L(Ux) = Ly = b$$
이렇게 A를 아래삼각행렬과 위삼각행렬 L, U의 곱으로 분해하는 것을 LU인수분해(LU factorization) 혹은 LU분할(LU decomposition)이라고 한다.
정리 17
A를 m * n 행렬로서 단지 소거만을 사용하여 m * n 사다리꼴 U로 간소화할 수 있다고 하자. 그러면 A는 LU 분해를 가진다. 여기서 L은 주대각선상에 1만 있는 m * m 아래삼각행렬이다. L의 i, j 성분 $ l_{ij}, (i > j) $는 간소화를 통해 이 위치가 0이 되게 할 때의 연산 $ R_i - l_{ij} F_j R_i $ 으로부터 나온다.