가역행렬

선형대수학에서 **가역 행렬**(可逆行列, invertible matrix) 또는 **정칙 행렬**(正則行列, regular matrix) 또는 **비특이 행렬**(非特異行列, non-singular matrix)은 그와 곱한 결과가 단위 행렬인 행렬을 갖는 행렬이다. 이를 그 행렬의 **역행렬**(逆行列, inverse matrix)이라고 한다.
# 정의
체 K 위에서 정의된 n\times n 행렬 A,B에 대하여, 다음 세 조건이 서로 동치이다. 이 조건이 성립할 경우 B를 A의 **역행렬**이라고 하며, B를 A^{-1}와 같이 표기한다. *AB=I_{n} *BA=I_{n} *AB=BA=I_{n} 체 K 위에서 정의된 n \times n 행렬 A에 대하여, 다음 조건들이 서로 동치이며, 이를 만족시키는 A를 **가역 행렬**이라고 한다. * 역행렬을 갖는다. * 유일한 역행렬을 갖는다. * 유한 개의 기본 행렬의 곱이다. * 단위 행렬과 행동치이다. * 단위 행렬과 열동치이다. * 단위 행렬과 동치이다. * 방정식 Ax=0의 해는 x=\mathbf{0}뿐이다. 즉 \ker A = \left\\{ \mathbf{0} \right\\}이다. * 방정식 Ax=b의 해는 b의 값과 무관하게 항상 유일하다. * A의 열이 K^n의 기저를 이룬다. * \det A\ne0 (여기서 \det는 행렬식이다.) * \operatorname{rank}A=n (여기서 \operatorname{rank}는 계수이다.) * \operatorname{null} A = 0 (여기서 \operatorname{null} A:=\dim {\ker A}이다.) * 0을 고윳값으로 가지지 않는다.
# 성질

## 전치 행렬과의 관계
체 K 위에서 정의된 n\times n 행렬 A에 대하여, 다음 조건들이 서로 동치이다. * A는 가역 행렬이다. * A^\operatorname T는 가역 행렬이다. * AA^\operatorname T는 가역 행렬이다.
## 항등식
체 K 위에서 정의된 n\times n 행렬 A,B에 및 스칼라 k\in K에 대하여, 다음과 같은 항등식들이 성립한다. * (A^{-1})^{-1}=A * (kA)^{-1}=k^{-1}A^{-1} * (AB)^{-1}=B^{-1}A^{-1} 즉, 체 K 위의 n\times n 가역 행렬의 집합은 군을 이루며, 이를 일반선형군 \operatorname{GL}(n;K)이라고 한다. 또한, 역행렬은 일반선형군의 자기 반대 동형을 정의한다.
# 계산

## 가우스 소거법
가우스 소거법은 어떤 행렬이 가역행렬인지를 판단하고 그 행렬의 역행렬을 구할 수 있는 알고리즘이다. LU 분해를 이용해 두 개의 삼각행렬로 분해하면 가우스 소거법을 더 빨리 계산할 수 있다. 또는 mn \times mn 행렬을 n \times n을 원소로 갖는 m \times m 행렬로 나누어 재귀적으로 계산하면 행렬의 특성에 따라 더 빠른 계산이 가능하다.
## 수치해석적 방법
행렬의 공통인자로 이루어진 행렬을 구해 계산하면 작은 크기의 행렬에 대해서는 더 빨리 계산할 수도 있다. (큰 행렬에 대해서는 적당치 않을수있다) 다음과 같이 공통인자 행렬을 구한다. :A^{-1}={1 \over \begin{vmatrix}A\end{vmatrix\left(C_{ij}\right)^{T}={1 \over \begin{vmatrix}A\end{vmatrix \begin{pmatrix} C_{11} & C_{21} & \cdots & C_{j1} \\\ C_{12} & \ddots & & C_{j2} \\\ \vdots & & \ddots & \vdots \\\ C_{1i} & \cdots & \cdots & C_{ji} \\\ \end{pmatrix}
여기서 i + j가 홀수일 때 이고(C_{ji}= -M_{ji}) i + j가 짝수일 때 (C_{ji}= M_{ji})이다. 즉,C_{ji}=(-1)^{i+j}M_{ji}이다. 여기서 |A|는 A의 행렬식을 가리키고 C_{ij}는 행렬의 공통인자,M_{ij}는 행렬의 소행렬식, A^T는 A의 전치행렬을 가리킨다. 수치 해석에서 대부분의 경우 선형 시스템을 풀기 위해 역행렬을 구할 필요는 없기 때문에 이 방법으로 실제로 역행렬을 구하는 경우는 별로 없다.
## 2 × 2 행렬의 역행렬
위의 공통인자 방정식에서 n이 2일 경우 다음과 같은 식을 유도할 수 있다. :A^{-1} = \begin{bmatrix} a & b \\\ c & d \\\ \end{bmatrix}^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\\ -c & a \\\ \end{bmatrix} 2 × 2 행렬의 역행렬은 위 방법을 통해 빠르게 계산할 수 있다.
## 3 × 3 행렬의 역행렬
위의 공통인자 방정식에서 n이 3일 경우 다음과 같은 식을 유도할 수 있다. :A^{-1} = \begin{bmatrix} a & b & c\\\ d & e & f \\\ g & h & i \\\ \end{bmatrix}^{-1} = \frac{1}{|A|} \begin{bmatrix} ei - fh & -(bi-ch) & bf - ce \\\ -(di - fg)& ai - cg & -(af-cd) \\\ dh - eg & -(ah-bg) & ae - bd \end{bmatrix} = \frac{1}{|A|} \begin{bmatrix} ei - fh & ch - bi & bf - ce \\\ fg - di & ai - cg & cd - af \\\ dh - eg & bg - ah & ae - bd \end{bmatrix} :|A| = a(ei-fh) - b(di-fg) + c(dh-eg) = - d(bi-ch) + e(ai - cg) - f(ah-bg) = g(bf-ce) - h(af-cd) + i(ae-bd) \
## 작은 블록으로 나눠서 계산하는 법
다음과 같은 식을 이용하면 행렬을 몇 개의 작은 블록 행렬로 나누어 계산할 수 있다. :\begin{bmatrix} A & B \\\ C & D \end{bmatrix}^{-1} = \begin{bmatrix} A^{-1}+A^{-1}B(D-CA^{-1}B)^{-1}CA^{-1} & -A^{-1}B(D-CA^{-1}B)^{-1} \\\ -(D-CA^{-1}B)^{-1}CA^{-1} & (D-CA^{-1}B)^{-1} \end{bmatrix} A, B, C, D는 행렬의 임의의 작은 블록이다. 이 방법은 A가 대각행렬이고 A의 슈어 보수행렬 (D-CA^{-1}B)이 작은 크기일 때 특히 유용하다. 두 개의 행렬에 대한 역행렬만 계산하면 되기 때문이다. 이 방법은 행렬을 더 빠르게 곱하는 슈트라센 알고리즘의 개발자 포커 슈트라센이 발견했다.
# 역행렬의 도함수
행렬 A가 t라는 변수에 따라 변한다고 하자. 이때 A의 역행렬의 도함수는 다음과 같다. : \frac{\mathrm{d}A^{-1{\mathrm{d}t} = - A^{-1} \frac{\mathrm{d}A}{\mathrm{d}t} A^{-1}.
# 역행렬과 행렬의 나눗셈
행렬A 와 B에서, :A}\over{B= A \cdot B^{-1} 이고, A \cdot B^{-1} \neq B^{-1} \cdot A이다. :A}\over{B^{-1= A \cdot B이다. 스칼라 행렬k는, :A}\over{k= A \cdot k^{-1} 이고, A \cdot k^{-1} = k^{-1} \cdot A이다. 대각화행렬에서는 :임의의 행렬 A를 예약하고 고윳값 행렬 P를 조사하고 P의 역행렬 P-1를 통해서, :P^{-1}AP = A^{D} 대각화 행렬 AD를 얻을수있다. 여기서, :AP = A^{D\over {P^{-1 :AP = {P} { A^{D 처럼 대각화행렬에서는 역행렬의 나눗셈 성질을 갖는다.