courses
어떤 행렬은 다른 행렬과 곱해 변환을 “되돌릴” 수 있어, 마치 나눗셈이 가능한 수처럼 행동합니다. 이런 행렬을 가역행렬이라 하며, 역행렬을 갖는 정사각행렬을 의미합니다.
이 성질은 선형연립방정식 풀이에서 근본적입니다. 예를 들어, 역행렬이 존재하면 그 시스템의 미지수를 직접 계산할 수 있습니다.
다음 절에서는 정확한 정의, 가역성의 조건, 주요 성질, 계산 방법을 설명하고, 구체적인 예시도 여러 개 제시하겠습니다.
가역행렬이란?
n×n 정사각행렬 A가 있을 때, 같은 크기의 n×n 행렬 B가 존재하여
![]()
여기서 I는 같은 크기의 단위행렬(n×n)입니다. 이때 B를 A-1(거의 A의 -1제곱처럼 표기)이라 하며 A의 역행렬이라 부릅니다.
가역일 수 있는 것은 오직 정사각행렬뿐이며, 비정사각행렬은 역행렬이 없습니다. 이는 선형대수에서의 전단사성 개념에서 비롯됩니다. 다만 이 글에서는 이해를 돕기 위해 이 간단한 규칙만 기억하셔도 충분합니다.
단위행렬이란?
단위행렬 I는 행렬대수에서 곱셈에 대한 항등원 역할을 하는 정사각행렬입니다. 따라서 크기가 맞는 어떤 행렬에 I를 곱해도 그 행렬은 변하지 않습니다. 직관적으로는 ‘중립’ 변환, 더 엄밀히는 항등 변환으로 볼 수 있습니다.
2x2의 경우는 다음과 같습니다:

3x3 예시는 다음과 같습니다

정의 관계는 다음과 같습니다.

이는 A에 역행렬을 곱하면 시스템이 이 중립적인 시작점으로 돌아감을 보여줍니다. 일반적으로 행렬곱은 교환법칙이 성립하지 않지만, 이 경우에는 A와 A⁻¹가 서로의 역으로 정의되었기 때문에 순서가 중요하지 않습니다: AA−1 = A−1A = I.
행렬이 가역일 조건
정사각행렬 A가 가역일 필요충분조건은 다음의 서로 동치인 세 가지입니다.
- 행렬식이 0이 아니다. 즉, det(A)≠0
- 행과 열이 선형독립이다. 즉, 어떤 열/행 벡터도 다른 열/행 벡터와 공선(colinear)하지 않는다.
- 랭크가 차원 n과 같다.
이 중 하나라도 실패하면 역행렬은 존재하지 않습니다.
행렬식과 가역성
행렬식은 직접적인 수치적 판별을 제공합니다. 따라서 det(A)=0이면 A의 랭크는 차원보다 엄Strictly 작으며, A가 나타내는 변환이 적어도 한 차원에서 붕괴하므로 A의 역변환을 구하는 것은 불가능합니다. 즉, A는 역행렬을 갖지 않습니다.
det(A)가 0이 아니면 역행렬이 존재하며 계산할 수 있습니다. 이 동치는 모든 정사각행렬에 대해 성립하며, 실용적으로는 더 이상의 전개가 필요하지 않습니다. 직관적으로 행렬식은 A가 공간의 부피를 얼마나 스케일링하는지를 나타내는 스칼라로 볼 수 있습니다.
따라서 |det(A)| > 1이면 A가 공간을 확장하고, 행렬식이 음수이면 공간의 방향을 뒤집으며, |det(A)| < 1이면 공간을 수축하고, 행렬식이 0이면 A가 나타내는 변환이 그 공간의 차원을 낮춥니다(예: 두 축이 서로 겹쳐지듯이 붕괴).
가역 vs. 비가역(특이) 행렬
역행렬을 갖는 행렬을 가역(또는 비특이)이라 하고, 역행렬이 없는 행렬을 특이(singular)라 합니다.
|
속성 |
가역행렬 |
특이행렬 |
|
행렬식 |
det(A) ≠ 0 |
det(A)=0 |
|
랭크 |
rank(A)=n |
Rank(A)<n |
|
행/열 |
선형독립 |
적어도 하나의 선형종속 |
|
Ax=b의 해 |
정확히 한 개 |
없거나 무한히 많음 |
역행렬을 구하는 방법
수작업으로는 두 가지 표준 방법이 있으며, 소프트웨어로는 직접 계산할 수 있습니다.
2×2 행렬 공식
다음과 같은 경우

det(A)=ad-bc≠0이면,

행 소거(가우스-조던)
확대행렬 [A| I]를 만든 뒤, 기본 행 연산을 적용해 왼쪽 절반을 I로 만듭니다. 그러면 오른쪽 절반이 A-1가 됩니다.
소프트웨어 사용(Python 등)
Python의 NumPy에서는 det(A) ≠ 0을 확인한 후 numpy.linalg.inv(A)로 역행렬을 구합니다.
가역행렬의 예
다음 2x2 행렬을 생각해 봅시다.

먼저 행렬식을 계산합니다.
![]()
따라서 A는 가역입니다. 2x2 공식을 적용하면 다음을 얻습니다.

이제 결과를 검산해 봅시다.

A-1A도 동일하게 성립합니다.
가역행렬이 중요한 이유
가역행렬은 선형변환을 정확히 되돌려야 할 때 필요합니다. 선형시스템에서는 유일해를 보장합니다. 머신러닝에서는 설계행렬의 열 랭크가 가득 찼을 때와 같이, 정규방정식과 최소제곱법에 등장합니다.
또 다른 예로 컴퓨터 그래픽스에서는 회전, 스케일링, 평행이동처럼 되돌릴 수 있는 변환을 표현하며, 렌더링이나 애니메이션을 위해 이를 되돌려야 합니다. 물리학에서는 상미분방정식 계 풀이 등에도 나타나며, 그 외에도 일상적인 용례가 매우 많습니다.
가역행렬과 선형시스템
선형연립방정식은 Ax=b로 간단히 표현할 수 있습니다. 여기서 A는 계수행렬, x는 미지수 벡터, b는 상수 벡터입니다. A가 가역이면 유일해는 다음과 같이 직접 구합니다.
![]()
이 경우 위 식을 만족하는 다른 해는 존재하지 않습니다.
가역행렬에서 흔한 실수
다음은 자주 겪는 실수들입니다.
- 모든 정사각행렬이 가역이라고 가정함.
- 역을 구하려 하기 전에 행렬식을 확인하지 않음.
- 역행렬과 전치행렬을 혼동함(두 개가 일치하는 것은 특정 직교행렬에 한함).
- 특이행렬을 가역인 것처럼 취급해 수치 계산에서 무의미하거나 불안정한 결과를 얻음.
가역행렬의 주요 성질
이 글의 범위에서 가역행렬의 주요 성질은 다음과 같습니다.
A와 B가 가역인 n×n 행렬이라고 하자. 그러면:
역행렬은 유일하다.
곱 AB는 가역이며
![]()
역의 역은 원래 행렬과 같다.
![]()
역행렬의 행렬식은 역수이다.
![]()
역행렬의 전치는 전치의 역과 같다.

결론
가역행렬은 A.A-1 = I를 만족하는 유일한 역행렬을 갖는 정사각행렬입니다.
결정적인 판별은 행렬식이 0이 아님과 행 또는 열의 선형독립성입니다. 이러한 성질은 선형시스템에 유일해가 존재함과 선형변환을 정확히 되돌릴 수 있음을 보장합니다.
가역행렬을 익히면 선형연립방정식을 매우 능숙하게 풀 수 있을 것입니다. 더 나아가 데이터 사이언스에서 신뢰할 수 있는 모델을 구축하거나 선형대수에 의존하는 어떤 분야에서도 정확한 계산을 수행할 수 있습니다.
가역행렬 자주 묻는 질문
가역행렬이란 무엇인가요?
가역행렬은 역행렬을 갖는 정사각행렬입니다. 원래 행렬에 그 역행렬을 곱하면 일반 산술에서의 1과 같은 역할을 하는 단위행렬이 됩니다.가역행렬은 역행렬을 갖는 정사각행렬입니다. 원래 행렬에 그 역행렬을 곱하면 일반 산술에서의 1과 같은 역할을 하는 단위행렬이 됩니다.
어떻게 행렬이 가역인지 알 수 있나요?
정사각행렬은 행렬식이 0이 아니고 행 또는 열이 선형독립일 때에만 가역입니다. 이 두 가지 판별은 동치이며, 행렬의 랭크가 가득 참을 확인해 줍니다.
특이행렬이란 무엇인가요?
특이행렬은 역행렬이 존재하지 않는 정사각행렬입니다. 그 행렬식은 0이며, 적어도 한 개의 행 또는 열이 다른 것들의 선형결합이어서 곱셈으로 되돌릴 수 없습니다.
가역행렬은 왜 중요한가요?
선형연립방정식을 풀 때 유일해를 보장합니다. 또 선형회귀와 같은 데이터 사이언스 작업, 가역 변환이 필요한 컴퓨터 그래픽스, 선형 연산의 정확한 역변환이 필요한 모든 분야에서 필수적입니다.
비정사각행렬도 가역일 수 있나요?
역행렬을 가질 수 있는 것은 오직 정사각행렬뿐입니다. 비정사각행렬은 곱의 결과가 단위행렬이 되기 위한 차원이 맞지 않습니다.