n차의 정사각행렬 A에 대해 아래를 만족하는 행렬 B가 존재하면 A는 가역(invertible, nonsingular)이라고 함
AB=In=BA
이때 B를 A의 역행렬(inverse matrix)이라고 하며, B가 존재하지 않으면 A는 비가역(noninvertible, singular)
곱하는 순서를 바꿔도 성립할 뿐만 아니라 단위행렬이 되어야 역행렬이구나
n차의 정사각행렬 A가 가역이면 A의 역행렬은 유일
역행렬을 구하는 쉬운 방식이 있음
행렬 A=[acbd]가 가역일 필요충분조건은 ad−bc=0 이 경우 아래를 만족
Figure1
함수에서 역함수를 표현하는 것과 비슷하게 −1을 사용
n차의 정사각행렬 A,B가 가역이고 k는 0이 아닌 스칼라일 때, 아래의 정리가 성립
A−1은 가역이고, (A−1)−1=A
AB는 가역이고, (AB)−1=B−1A−1
kA는 가역이고, (kA)−1=k1A−1
An은 가역이고, (An)−1=A−n=(A−1)n
A가 가역행렬이면 아래의 정리가 성립
AT는 가역이고, (AT)−1=(A−1)T
3.3 기본행렬
정의 [기본행렬과 치환행렬]
In에 기본행연산(elementary row operation, ERO)을 한 번 적용해 얻은 행렬을 기본행렬(elementary matrices), 치환(permutation)행렬은 In의 행들을 교환하여 얻어진 행렬
대각 성분이 1로 채워진 행렬에서 아래 기본행연산(ERO)을 한 번 시행한 행렬을 기본행렬
두 행을 교환
한 행에 상수배를 하여 다른 행에 연산
한 행에 0이 아닌 상수배
근데... 이 기본행렬을 어디다 쓸까?
임의의 행렬 A의 왼쪽에 기본행렬을 곱한다면, 그것은 기본행렬에 했던 기본행연산을 주어진 행렬 A에 시행한 결과와 같음
기본행렬은 기본행연산을 머금고 있구나!
이는 단위행렬에 기본행연산을 대신 적용해 곱하면서 기존 행렬에 연산을 적용한 것처럼 쓸 수 있다는 의미
참고로 기본행렬에 기본행연산을 더 적용하여 얻은 행렬도 위와 같은 성질을 가짐
꼭 기본행연산을 한 번 적용한 기본행렬만 기존 행렬의 연산을 대신할 수 있는 게 아니라는 뜻
단위행렬에 기본행연산을 적용해 만든 행렬은 그 기본행연산을 머금고 있다가 기존의 행렬에 전해줌!
기본행렬의 역행렬은 기본행렬이다. 다만, 자기 자신을 역행렬로 가질 수 있고 그렇지 않을 수도 있다. 어쨌든 기본행렬이란 것이다.
그럼 이 성질을 역행렬에 적용해보자.
임의의 n차 정사각행렬 A에 대해 아래 명제는 동치
A는 가역(invertible)행렬
곱했을 때 A를 단위행렬로 만드는 역행렬이 존재한다는 의미
A는 In과 행동치(row equivalent)이다. 즉, RREF(A) = In
행동치라는 것은 기본행연산을 가해 도출할 수 있는 행렬과의 관계였음
A를 반복적인 기본행연산(RREF)을 통해 단위행렬로 만들 수 있단 의미
그 기본행연산을 단위행렬 In에 가해 만든 행렬을 곱하면 A가 단위행렬이 되니까, 이는 역행렬
A는 기본행렬(elementary matrix)들의 곱으로 쓸 수 있다.
위의 명제처럼 반복적인 기본행연산(RREF)을 In에 적용해 A에 곱하는 게 가능할 것
여러 개의 기본행렬이 각각 연산을 머금고 곱해진다면 A를 In으로 만드는 게 가능
따라서 역행렬이 존재
Ax=0은 유일한 해(trivial solution) 0을 가진다.
앞선 명제에 따라 A에 RREF를 하면 단위행렬이 될 것인데, 이는 모든 변수가 0이 되어야 한다는 의미
Ax=b는 모든 b∈Rn에 대해 유일해를 가짐
바로 위 명제와 비슷한 꼴이지만, 각 변수의 값은 b의 개별 요소 값을 가질 것 즉, 유일해를 가짐
이들을 한 문장으로 정리하면? 만약 A의 역행렬이 존재한다면 Ax=0이라는 식에서 x=0인 자명한 해를 갖게 된다. 그러므로 행렬 A는 ERO를 유한히 반복함으로써 단위행렬로 만들 수 있다. A가 단위행렬과 행동치이므로 A에 취하는 유한번의 ERO에 해당하는 유한개의 기본행렬이 존재하게 된다.
근데 RREF는 기약 행 사다리꼴로, Gauss-Jordan 소거법을 통해 만드는 것이었음(Chapter 2 참조)... Gauss-Jordan 소거법과 역행렬의 관계는 뭐지?
이는 다시말해 아래와 같은 Gauss-Jordan 소거법을 기본행렬의 곱으로 표현할 수 있다는 것이고, 이들은 가역행렬인 A를 단위행렬로 만들테니, 역행렬이라고 볼 수 있다는 것. Gauss-Jordan 소거법으로 역행렬을 구할 수 있다.
AEROREF(A)ERORREF(A)
그럼 구체적으로 어떻게?
1 단계: 주어진 행렬 A에 단위행렬 In을 첨가해 n×2n 행렬 [A:In]을 제작
2 단계: 1 단계에서 만든 행렬 [A:In]의 RREF를 구함
3 단계: 2 단계에서 얻은 RREF를 [C⋮D]라고 하면 다음이 성립
C=In이면 D=A−1
C=In이면 A는 비가역이고 A−1(A의 역행렬)은 존재하지 않음
역행렬을 구하고 싶은 행렬 A의 오른쪽에 냅다 단위행렬을 붙이고, Gauss-Jordan 소거법(RREF 연산)을 해서 A가 단위행렬이 된다면, 그 오른쪽에 있는 행렬(단위행렬이 변한 것이겠지)이 역행렬이구나!