6.105 상 공간의 정의와 랭크
1. 개요
상 공간(image space, range space, column space)은 행렬로 표현되는 선형 사상의 치역(range)에 해당하는 부분공간이다. 행렬의 랭크(rank)는 상 공간의 차원으로 정의되며, 선형 시스템의 해의 존재성과 유일성을 판별하는 핵심 지표이다. 로봇공학에서 야코비안의 상 공간은 현재 배치에서 말단 장치가 실현할 수 있는 속도 방향을 결정한다. 이 절에서는 상 공간과 랭크의 수학적 정의, 계산 방법, 그리고 로봇공학적 해석을 다룬다.
2. 상 공간의 정의
2.1 열 공간 (Column Space)
행렬 \mathbf{A} \in \mathbb{R}^{m \times n}의 열 공간(column space) 또는 상 공간(image, range)은 다음과 같이 정의된다.
\mathcal{C}(\mathbf{A}) = \text{Im}(\mathbf{A}) = \{ \mathbf{A}\mathbf{x} \mid \mathbf{x} \in \mathbb{R}^n \} \subseteq \mathbb{R}^m
이는 \mathbf{A}의 열벡터 \mathbf{a}_1, \mathbf{a}_2, \dots, \mathbf{a}_n의 모든 선형 결합으로 생성되는 부분공간이다.
\mathcal{C}(\mathbf{A}) = \text{span}\{\mathbf{a}_1, \mathbf{a}_2, \dots, \mathbf{a}_n\}
2.2 부분공간 성질
\mathcal{C}(\mathbf{A})는 \mathbb{R}^m의 부분공간이다.
- \mathbf{A}\mathbf{0} = \mathbf{0}이므로 \mathbf{0} \in \mathcal{C}(\mathbf{A})이다.
- \mathbf{y}_1 = \mathbf{A}\mathbf{x}_1, \mathbf{y}_2 = \mathbf{A}\mathbf{x}_2이면 \mathbf{y}_1 + \mathbf{y}_2 = \mathbf{A}(\mathbf{x}_1 + \mathbf{x}_2) \in \mathcal{C}(\mathbf{A})이다.
- \mathbf{y} = \mathbf{A}\mathbf{x}이면 c\mathbf{y} = \mathbf{A}(c\mathbf{x}) \in \mathcal{C}(\mathbf{A})이다.
2.3 행 공간 (Row Space)
\mathbf{A}의 행 공간(row space)은 \mathbf{A}^\top의 열 공간으로 정의된다.
\mathcal{C}(\mathbf{A}^\top) = \{ \mathbf{A}^\top \mathbf{y} \mid \mathbf{y} \in \mathbb{R}^m \} \subseteq \mathbb{R}^n
이는 \mathbf{A}의 행벡터들이 생성하는 \mathbb{R}^n의 부분공간이다.
3. 랭크의 정의
3.1 열 랭크와 행 랭크
행렬 \mathbf{A}의 열 랭크(column rank)는 일차 독립인 열벡터의 최대 개수이며, 행 랭크(row rank)는 일차 독립인 행벡터의 최대 개수이다.
정리: 임의의 행렬에 대해 열 랭크와 행 랭크는 동일하다.
\text{column rank}(\mathbf{A}) = \text{row rank}(\mathbf{A})
이 공통값을 행렬의 랭크(rank)라 하고 \text{rank}(\mathbf{A}) 또는 r로 표기한다.
3.2 랭크의 동치 정의
행렬 \mathbf{A} \in \mathbb{R}^{m \times n}의 랭크 r은 다음과 동치이다.
- \mathcal{C}(\mathbf{A})의 차원: r = \dim(\mathcal{C}(\mathbf{A}))
- \mathcal{C}(\mathbf{A}^\top)의 차원: r = \dim(\mathcal{C}(\mathbf{A}^\top))
- 0이 아닌 특이값의 개수
- \mathbf{A}에서 추출할 수 있는 최대 크기의 비특이 소행렬의 차수
- \text{rank}(\mathbf{A}) = n - \dim(\mathcal{N}(\mathbf{A})) (랭크-널리티 정리)
3.3 풀 랭크 조건
- 열 풀 랭크(full column rank): \text{rank}(\mathbf{A}) = n (n \leq m인 경우)
- 행 풀 랭크(full row rank): \text{rank}(\mathbf{A}) = m (m \leq n인 경우)
- 풀 랭크(full rank): \text{rank}(\mathbf{A}) = \min(m, n)
4. 랭크의 계산 방법
4.1 방법 1: 가우스 소거법
\mathbf{A}를 행 사다리꼴 형태(REF)로 변환했을 때, 0이 아닌 행의 수가 랭크이다.
예제:
\mathbf{A} = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 7 \\ 3 & 6 & 10 \end{bmatrix}
행 연산을 수행하면
\text{REF}(\mathbf{A}) = \begin{bmatrix} 1 & 2 & 3 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{bmatrix}
0이 아닌 행이 2개이므로 \text{rank}(\mathbf{A}) = 2이다.
4.2 방법 2: 특이값 분해
\mathbf{A} = \mathbf{U}\boldsymbol{\Sigma}\mathbf{V}^\top에서 0이 아닌 특이값의 개수가 랭크이다. 수치적으로는 특이값이 소정의 임계값 \epsilon보다 큰 것의 수를 랭크로 취한다.
\text{rank}(\mathbf{A}) = \#\{i \mid \sigma_i > \epsilon\}
4.3 방법 3: 행렬식 기반
\mathbf{A}의 k \times k 소행렬의 행렬식이 0이 아닌 최대 k가 랭크이다. 이 방법은 이론적으로 명확하나 대규모 행렬에서는 계산 비용이 높다.
5. 랭크의 기본 성질
행렬 \mathbf{A} \in \mathbb{R}^{m \times n}과 \mathbf{B} \in \mathbb{R}^{n \times p}에 대해 다음이 성립한다.
- 0 \leq \text{rank}(\mathbf{A}) \leq \min(m, n)
- \text{rank}(\mathbf{A}) = \text{rank}(\mathbf{A}^\top)
- \text{rank}(\mathbf{A}^\top \mathbf{A}) = \text{rank}(\mathbf{A}\mathbf{A}^\top) = \text{rank}(\mathbf{A})
- \text{rank}(\mathbf{A}\mathbf{B}) \leq \min(\text{rank}(\mathbf{A}), \text{rank}(\mathbf{B})) (Sylvester 부등식의 특수 경우)
- \text{rank}(\mathbf{A} + \mathbf{B}) \leq \text{rank}(\mathbf{A}) + \text{rank}(\mathbf{B}) (부가법 부등식)
- 가역 행렬 \mathbf{P} \in \mathbb{R}^{m \times m}, \mathbf{Q} \in \mathbb{R}^{n \times n}에 대해 \text{rank}(\mathbf{P}\mathbf{A}\mathbf{Q}) = \text{rank}(\mathbf{A})
성질 3의 증명: \mathcal{N}(\mathbf{A}^\top \mathbf{A}) = \mathcal{N}(\mathbf{A})임을 보인다. \mathbf{A}\mathbf{x} = \mathbf{0}이면 자명하게 \mathbf{A}^\top \mathbf{A}\mathbf{x} = \mathbf{0}이다. 역으로, \mathbf{A}^\top \mathbf{A}\mathbf{x} = \mathbf{0}이면 \mathbf{x}^\top \mathbf{A}^\top \mathbf{A}\mathbf{x} = \| \mathbf{A}\mathbf{x} \|_2^2 = 0이므로 \mathbf{A}\mathbf{x} = \mathbf{0}이다. 영 공간이 동일하므로 랭크-널리티 정리에 의해 랭크도 동일하다.
6. 상 공간의 기저 구성
6.1 피벗 열 방법
\mathbf{A}의 RREF에서 피벗이 있는 열의 위치를 확인한 후, 원래 행렬 \mathbf{A}의 해당 열벡터들이 \mathcal{C}(\mathbf{A})의 기저를 형성한다.
주의: 기저 벡터는 RREF의 열이 아니라, 원래 행렬의 열을 사용하여야 한다. RREF의 열 연산은 열 공간을 변형시키기 때문이다.
6.2 SVD 기반 방법
\mathbf{A} = \mathbf{U}\boldsymbol{\Sigma}\mathbf{V}^\top에서 \mathbf{U}의 처음 r개 열벡터 \{\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_r\}이 \mathcal{C}(\mathbf{A})의 정규 직교 기저이다.
\mathcal{C}(\mathbf{A}) = \text{span}\{\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_r\}
마찬가지로, \mathbf{V}의 처음 r개 열벡터 \{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_r\}이 \mathcal{C}(\mathbf{A}^\top)의 정규 직교 기저이다.
7. 열 공간으로의 사영
열 공간으로의 직교 사영 행렬은 다음과 같다.
\mathbf{P}_{\mathcal{C}} = \mathbf{A}\mathbf{A}^+
SVD를 이용하면
\mathbf{P}_{\mathcal{C}} = \mathbf{U}_r \mathbf{U}_r^\top
여기서 \mathbf{U}_r = [\mathbf{u}_1, \dots, \mathbf{u}_r]이다. 이 사영은 \mathbf{b} \in \mathbb{R}^m를 \mathcal{C}(\mathbf{A})에서 가장 가까운 점으로 사영한다.
\mathbf{P}_{\mathcal{C}} \mathbf{b} = \arg\min_{\mathbf{y} \in \mathcal{C}(\mathbf{A})} \| \mathbf{b} - \mathbf{y} \|_2
8. 로봇공학에서의 해석
8.1 야코비안의 열 공간
야코비안 \mathbf{J} \in \mathbb{R}^{m \times n}의 열 공간 \mathcal{C}(\mathbf{J})는 현재 배치에서 말단 장치가 생성할 수 있는 태스크 공간 속도의 집합이다. \text{rank}(\mathbf{J}) = m이면 모든 태스크 방향의 속도가 실현 가능하지만, \text{rank}(\mathbf{J}) < m이면 특정 방향의 속도를 생성할 수 없다.
8.2 특이 배치에서의 상 공간 감소
특이점에서 \text{rank}(\mathbf{J})가 감소하면 \mathcal{C}(\mathbf{J})의 차원이 줄어들어, 잃어버린 방향의 태스크 속도를 생성할 수 없게 된다. 이때 \dot{\mathbf{x}}_d가 \mathcal{C}(\mathbf{J})에 속하지 않으면 정확한 역기구학 해가 존재하지 않는다.
8.3 야코비안의 행 공간
야코비안의 행 공간 \mathcal{C}(\mathbf{J}^\top)는 의사 역행렬을 통한 최소 노름 해가 놓이는 관절 공간의 부분공간이다. 즉
\mathbf{J}^+ \dot{\mathbf{x}}_d \in \mathcal{C}(\mathbf{J}^\top)
이 항상 성립한다.
8.4 가조작도 타원체와의 관계
야코비안의 특이값과 특이벡터는 속도 가조작도 타원체(velocity manipulability ellipsoid)를 정의한다. 단위 관절 속도 구 \| \dot{\boldsymbol{\theta}} \| \leq 1이 야코비안에 의해 사상되면 태스크 공간에서 타원체를 형성한다.
\dot{\mathbf{x}}^\top (\mathbf{J}\mathbf{J}^\top)^{-1} \dot{\mathbf{x}} \leq 1
타원체의 주축 방향은 \mathbf{u}_i, 주축 길이는 \sigma_i이다. 특이점에서 하나 이상의 \sigma_i가 0이 되면 타원체가 퇴화하여 저차원 구조가 된다.
9. 해의 존재 조건과 랭크
선형 시스템 \mathbf{A}\mathbf{x} = \mathbf{b}에 대해:
| 조건 | 의미 |
|---|---|
| \text{rank}([\mathbf{A} \vert \mathbf{b}]) = \text{rank}(\mathbf{A}) | 해가 존재 (양립 가능) |
| \text{rank}([\mathbf{A} \vert \mathbf{b}]) > \text{rank}(\mathbf{A}) | 해가 존재하지 않음 |
| \text{rank}(\mathbf{A}) = n | 해가 유일 (존재할 경우) |
| \text{rank}(\mathbf{A}) < n | 무한히 많은 해 (존재할 경우) |
여기서 [\mathbf{A} \vert \mathbf{b}]는 첨가 행렬(augmented matrix)이다. 이 조건은 Rouche-Capelli 정리(또는 Kronecker-Capelli 정리)로 알려져 있다.
10. 참고 문헌
- Strang, G. (2016). Introduction to Linear Algebra (5th ed.). Wellesley-Cambridge Press.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
- Golub, G. H., & Van Loan, C. F. (2013). Matrix Computations (4th ed.). Johns Hopkins University Press.
- Yoshikawa, T. (1985). “Manipulability of Robotic Mechanisms.” The International Journal of Robotics Research, 4(2), 3–9.
- Lay, D. C., Lay, S. R., & McDonald, J. J. (2016). Linear Algebra and Its Applications (5th ed.). Pearson.
v 0.1