기저 변경과 좌표 변환 공식
유한 차원 벡터공간에서, 하나의 기저를 기준으로 한 벡터의 좌표 표현이 다른 기저로 바뀌면 벡터의 실제 “위치”나 “방향”은 같지만, 그를 나타내는 좌표 벡터가 달라진다. 이를 좌표 변환(coordinate transformation)이라 하며, 기저 변경 간의 상호 변환을 나타내는 선형사상을 잘 이해하는 것이 중요하다.
예를 들어, 벡터공간 \(V\)에 두 개의 기저가 있다고 해 보자. 단, 벡터의 좌표에 대하여 논할 때, 기저라 함은 항상 순서가 주어져 있는 순서기저(ordered basis)를 이르는 것으로 약속한다.
- \(B = \{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n\}\) (\(V\)의 한 기저)
- \(B' = \{\mathbf{w}_1, \mathbf{w}_2, \dots, \mathbf{w}_n\}\) (\(V\)의 또 다른 기저)
어떤 벡터 \(\mathbf{x} \in V\)가 주어졌다고 하면, \(B\)에 대한 좌표는 \[ [\mathbf{x}]_B = \begin{pmatrix} \alpha_1 \\ \alpha_2 \\ \vdots \\ \alpha_n \end{pmatrix} \quad \text{즉 } \mathbf{x} = \alpha_1 \mathbf{v}_1 + \alpha_2 \mathbf{v}_2 + \dots + \alpha_n \mathbf{v}_n \] 과 같이 표현되고, \(B'\)에 대한 좌표는 \[ [\mathbf{x}]_{B'} = \begin{pmatrix} \beta_1 \\ \beta_2 \\ \vdots \\ \beta_n \end{pmatrix} \quad \text{즉 } \mathbf{x} = \beta_1 \mathbf{w}_1 + \beta_2 \mathbf{w}_2 + \dots + \beta_n \mathbf{w}_n \] 과 같이 표현된다. 이때, \([\mathbf{x}]_B\)에서 \([\mathbf{x}]_{B'}\)로 혹은 그 반대로 변환하는 과정이 기저 변경 문제의 핵심이다.
정의 1. (기저 변경 행렬, transition matrix)
기저 \(B\)에서 기저 \(B'\)로 좌표를 바꾸는 선형변환을 나타내는 행렬을 \(\mathrm{P}_{B \to B'}\)라 하자. 이는 다음 성질을 만족한다.
\[ [\mathbf{x}]_{B'} = \mathrm{P}_{B \to B'} \,[\mathbf{x}]_{B}. \]
즉, 벡터 \(\mathbf{x}\)의 좌표를 \(B\) 기준에서 구한 뒤, 이 좌표벡터에 행렬 \(\mathrm{P}_{B \to B'}\)를 곱하면, \(B'\) 기준에서의 좌표벡터가 나온다.
이 변환 행렬 \(\mathrm{P}_{B \to B'}\)는 기저 \(B'\)의 각 원소 \(\mathbf{w}_j\)를 기저 \(B\)로 표현했을 때의 계수들을 열(column)로 해서 구성할 수 있다. 즉, \[ \mathbf{w}_j = c_{1j}\mathbf{v}_1 + \dots + c_{nj}\mathbf{v}_n \] 이라면, \[ \mathrm{P}_{B \to B'} = \begin{pmatrix} | & | & & | \\ [\mathbf{w}_1]_B & [\mathbf{w}_2]_B & \cdots & [\mathbf{w}_n]_B \\ | & | & & | \end{pmatrix} = \begin{pmatrix} c_{11} & c_{12} & \dots & c_{1n} \\ c_{21} & c_{22} & \dots & c_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ c_{n1} & c_{n2} & \dots & c_{nn} \end{pmatrix} \] 이다. 여기서 \([\mathbf{w}_j]_B\)는 \(\mathbf{w}_j\)를 \(B\) 기준으로 표현했을 때의 좌표벡터다.
보기 1. (\(\mathbb{R}^2\)에서 기저변환)
표준기저 \(B = \bigl\{(1,0), (0,1)\bigr\}\)와 기저 \(B' = \bigl\{(2,1), (1,3)\bigr\}\)가 있다고 하자. 이때, \((2,1)\)과 \((1,3)\)을 \(B\) 기준으로 표현하면 사실상 그대로 \((2,1)\), \((1,3)\)이 된다. 따라서 기저 \(B\)를 기저 \(B '\)으로 바꾸는 기저 변경 행렬은 다음과 같다. \[ \mathrm{P}_{B \to B'} = \begin{pmatrix} 2 & 1 \\ 1 & 3 \end{pmatrix}. \] 벡터 \(\mathbf{x} = (x,y)\in \mathbb{R}^2\)를 생각하여, \[[\mathbf{x}]_B = \begin{pmatrix} x \\ y \end{pmatrix}\]라고 하자. 그러면 \[ [\mathbf{x}]_{B'} = \mathrm{P}_{B \to B'} \,[\mathbf{x}]_{B} = \begin{pmatrix}2 & 1\\1 & 3\end{pmatrix} \begin{pmatrix}x \\ y\end{pmatrix} = \begin{pmatrix} 2x + y \\ x + 3y \end{pmatrix} \] 이다. 이 결과는 \(\mathbf{x}\)를 기저 \(B'\) 좌표로 어떻게 표현하는지 알려준다.
만약 반대 방향(즉, \([\mathbf{x}]_{B'}\)에서 \([\mathbf{x}]_{B}\)로의 변환)을 원한다면, \(\mathrm{P}_{B \to B'}^{-1}\)를 활용하면 된다. 기저 변경 행렬은 정사각행렬(기저가 모두 \(n\)개이므로)이고, 기저 벡터들이 서로 선형독립이기 때문에 역행렬이 항상 존재한다. 즉, \[ [\mathbf{x}]_{B} = \mathrm{P}_{B \to B'}^{-1} \,[\mathbf{x}]_{B'}. \]
결국 기저 변경이란, 동일한 벡터를 서로 다른 좌표계에서 표현하는 과정이다. 그리고 그 변환은 행렬 곱셈으로 깔끔하게 정리된다. 이 아이디어는 뒤에서 선형변환의 행렬 표현에 대해서도 이어지는데, 선형사상을 한 기저로 표현했을 때의 행렬과 다른 기저에서의 행렬이 어떻게 달라지는지, 같은 원리로 파악할 수 있다.
보기 2. (R2에서 표준이 아닌 기저들 사이의 변환)
벡터공간 \(\mathbb{R}^2\)에서 다음 두 기저를 생각해 보자.
- \(B = \bigl\{\mathbf{v}_1=(1,1),\; \mathbf{v}_2=(1,2)\bigr\}\)
- \(B' = \bigl\{\mathbf{w}_1=(2,1),\; \mathbf{w}_2=(3,4)\bigr\}\)
우선 \(\mathbf{w}_1\)과 \(\mathbf{w}_2\)를 기저 \(B\)의 좌표로 표현해야 한다. 즉, \[\begin{gathered}\mathbf{w}_1 = \alpha_1 \mathbf{v}_1 + \alpha_2 \mathbf{v}_2,\\[6pt] \mathbf{w}_2 = \beta_1 \mathbf{v}_1 + \beta_2 \mathbf{v}_2.\end{gathered}\]
(1) \(\mathbf{w}_1=(2,1)\)을 \(B\)로 표현하기. \[ (2,1) = \alpha_1 (1,1) + \alpha_2 (1,2) = (\alpha_1 + \alpha_2,\; \alpha_1 + 2\alpha_2). \] 이를 좌표별로 비교하면, \[ \begin{cases} \alpha_1 + \alpha_2 = 2 \\ \alpha_1 + 2\alpha_2 = 1 \end{cases} \quad\Longrightarrow\quad \alpha_2 = -1,\quad \alpha_1 = 3. \] 따라서 \(\mathbf{w}_1 = 3\,\mathbf{v}_1 + (-1)\,\mathbf{v}_2\). 즉, \[[\mathbf{w}_1]_B = \begin{pmatrix}3 \\ -1\end{pmatrix}.\]
(2) \(\mathbf{w}_2=(3,4)\)를 \(B\)로 표현하기. \[ (3,4) = \beta_1 (1,1) + \beta_2 (1,2) = (\beta_1 + \beta_2,\; \beta_1 + 2\beta_2). \] 이를 좌표별로 비교하면, \[ \begin{cases} \beta_1 + \beta_2 = 3 \\ \beta_1 + 2\beta_2 = 4 \end{cases} \quad\Longrightarrow\quad \beta_2 = 1,\quad \beta_1 = 2. \] 따라서 \(\mathbf{w}_2 = 2\,\mathbf{v}_1 + 1\,\mathbf{v}_2\). 즉, \[[\mathbf{w}_2]_B = \begin{pmatrix}2 \\ 1\end{pmatrix}.\]
이제 기저변환 행렬 \(\mathrm{P}_{B \to B'}\)는 다음과 같이 구성된다.
\[ \mathrm{P}_{B \to B'} = \begin{pmatrix} [\mathbf{w}_1]_B & [\mathbf{w}_2]_B \end{pmatrix} = \begin{pmatrix} 3 & 2 \\ -1 & 1 \end{pmatrix}. \]
결과적으로, 임의의 \(\mathbf{x}\in \mathbb{R}^2\)에 대해 \([\mathbf{x}]_{B'} = \mathrm{P}_{B \to B'}[\mathbf{x}]_B\)가 성립한다.
보기 3. (R3에서 표준이 아닌 기저들 사이의 변환)
\(\mathbb{R}^3\)에서 다음 두 기저를 가정하자. \[\begin{gathered}B = \bigl\{\mathbf{v}_1=(1,1,0),\; \mathbf{v}_2=(0,1,1),\; \mathbf{v}_3=(2,0,1)\bigr\}\\[6pt] B' = \bigl\{\mathbf{w}_1=(1,2,1),\; \mathbf{w}_2=(2,1,3),\; \mathbf{w}_3=(0,1,2)\bigr\}.\end{gathered}\] 각 \(\mathbf{w}_j\)를 \(\mathbf{v}_1,\mathbf{v}_2,\mathbf{v}_3\)의 일차결합으로 표현하면, 이를 통해 기저변환 행렬 \(\mathrm{P}_{B \to B'}\)를 구할 수 있다.
(1) \(\mathbf{w}_1=(1,2,1)\)의 \(B\)-좌표 \[ (1,2,1) = \alpha_1(1,1,0) + \alpha_2(0,1,1) + \alpha_3(2,0,1). \] 즉, \[ \begin{cases} \alpha_1 + 0 \cdot \alpha_2 + 2\alpha_3 = 1 \\ \alpha_1 + \alpha_2 + 0\cdot \alpha_3 = 2 \\ 0\cdot \alpha_1 + \alpha_2 + \alpha_3 = 1 \end{cases} \quad\Longrightarrow\quad \begin{cases} \alpha_1 + 2\alpha_3 = 1 \\ \alpha_1 + \alpha_2 = 2 \\ \alpha_2 + \alpha_3 = 1 \end{cases} \] 예를 들어, 아래 순서로 풀 수 있다.
- \(\alpha_2 + \alpha_3 = 1\) → \(\alpha_2 = 1 - \alpha_3\)
- \(\alpha_1 + 2\alpha_3 = 1\) → \(\alpha_1 = 1 - 2\alpha_3\)
- 이제 \(\alpha_1 + \alpha_2 = 2\) 대입: \[ (1 - 2\alpha_3) + (1 - \alpha_3) = 2 \quad\Longrightarrow\quad 2 - 3\alpha_3 = 2 \quad\Longrightarrow\quad \alpha_3 = 0. \] 따라서 \(\alpha_3=0\), \(\alpha_2=1\), \(\alpha_1=1\).
즉, \(\mathbf{w}_1 = 1\,\mathbf{v}_1 + 1\,\mathbf{v}_2 + 0\,\mathbf{v}_3\)이고, \[[\mathbf{w}_1]_B = \begin{pmatrix}1\\1\\0\end{pmatrix}.\]
(2) \(\mathbf{w}_2=(2,1,3)\)의 \(B\)-좌표 \[ (2,1,3) = \beta_1(1,1,0) + \beta_2(0,1,1) + \beta_3(2,0,1). \] 식을 세워 보면, \[ \begin{cases} \beta_1 + 2\beta_3 = 2 \\ \beta_1 + \beta_2 = 1 \\ \beta_2 + \beta_3 = 3 \end{cases} \] 마찬가지로 풀면 다음과 같은 값을 얻는다. \[ \beta_3 = 2,\quad \beta_2 = 1,\quad \beta_1 = 0. \] 즉, \(\mathbf{w}_2 = 0\,\mathbf{v}_1 + 1\,\mathbf{v}_2 + 2\,\mathbf{v}_3\), \[[\mathbf{w}_2]_B = \begin{pmatrix}0\\1\\2\end{pmatrix}.\]
(3) \(\mathbf{w}_3=(0,1,2)\)의 \(B\)-좌표 \[ (0,1,2) = \gamma_1(1,1,0) + \gamma_2(0,1,1) + \gamma_3(2,0,1). \] 즉, \[ \begin{cases} \gamma_1 + 2\gamma_3 = 0 \\ \gamma_1 + \gamma_2 = 1 \\ \gamma_2 + \gamma_3 = 2 \end{cases} \] 이 역시 풀어서 \(\gamma_1=-2\), \(\gamma_2=3\), \(\gamma_3=1\) 등이 나옴을 확인할 수 있다. 따라서 \(\mathbf{w}_3 = -2\,\mathbf{v}_1 + 3\,\mathbf{v}_2 + 1\,\mathbf{v}_3\), \[[\mathbf{w}_3]_B = \begin{pmatrix}-2\\3\\1\end{pmatrix}.\]
이제 기저변환 행렬 \(\mathrm{P}_{B \to B'}\)는 다음과 같이 구성된다.
\[ \mathrm{P}_{B \to B'} = \begin{pmatrix} [\mathbf{w}_1]_B & [\mathbf{w}_2]_B & [\mathbf{w}_3]_B \end{pmatrix} = \begin{pmatrix} 1 & 0 & -2 \\ 1 & 1 & 3 \\ 0 & 2 & 1 \end{pmatrix}. \]
따라서 임의의 \(\mathbf{x}\in \mathbb{R}^3\)에 대해, \([\mathbf{x}]_{B'} = \mathrm{P}_{B \to B'} \,[\mathbf{x}]_B\)가 성립하며, 이를 통해 두 기저 사이에서 벡터의 좌표 변환을 손쉽게 계산할 수 있다.
선형변환의 행렬 표현 변화
선형변환(또는 선형사상)을 기저에 따라 행렬로 표현할 때, 기저를 변경하면 그 선형변환의 행렬 표현도 달라진다. 그러나 “실제로 변환이 하는 일”은 동일하며, 단지 벡터공간을 바라보는 ‘좌표계’가 달라졌다는 점에서 행렬이 달라 보일 뿐이다. 이때 행렬 표현이 어떻게 변환되는지를 이해하는 것이 매우 중요하다. 이를 통해, 서로 다른 기저에서의 행렬 표현들이 본질적으로 같은 변환을 나타낸다는 사실을 알 수 있다.
우선, 벡터공간 \(V\)가 유한 차원이고, 선형변환 \(T: V \to V\)를 생각해 보자. (자기 사상, 즉 같은 공간에서 정의된 선형변환.) 기저를 하나 정하면 \(T\)를 해당 기저에 대한 행렬로 표현할 수 있으며, 이를 \(T\)의 행렬 표현이라고 부른다.
예컨대, 기저가 \(B = \{\mathbf{v}_1, \dots, \mathbf{v}_n\}\)라고 하면, 각 기저 벡터에 대한 이미지 \[ T(\mathbf{v}_j) = a_{1j}\mathbf{v}_1 + a_{2j}\mathbf{v}_2 + \dots + a_{nj}\mathbf{v}_n \] 을 계수 행렬 \(\mathrm{M}_B(T)\)의 \(j\)번째 열로 생각한다. 즉, \[ \mathrm{M}_B(T) = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{pmatrix}. \] 이 행렬은 “\(\mathbf{v}_j\)가 \(T\)에 의해 어디로 이동하는지”를 기저 \(B\)로 표현했을 때의 좌표들로 구성된다.
이제 기저를 \(B\)에서 \(B'\)로 바꾼다면, 당연히 \(T\)의 행렬 표현도 달라진다. 그러나 그 변환 방식에는 일관된 규칙이 있으며, 이를 종종 유사변환(similarity transformation)이라고 부른다. (물론, \(\dim(V)=n\)일 때, 두 기저 모두 \(n\)개의 벡터로 구성되므로 정사각행렬이 된다.)
기저 변경 시 행렬의 변화
선형변환 \(T: V \to V\)에 대한 행렬 표현을, 기저 \(B\)에서 \(\mathrm{M}_B(T)\), 기저 \(B'\)에서 \(\mathrm{M}_{B'}(T)\)라 하자. 그리고 \(\mathrm{P}_{B \to B'}\)를 “기저 \(B\)에서 \(B'\)로 가는 기저변환 행렬”이라 하면, 두 표현은 다음 관계를 만족한다.
\[ \mathrm{M}_{B'}(T) = \mathrm{P}_{B \to B'}^{-1} \,\mathrm{M}_B(T)\, \mathrm{P}_{B \to B'}. \]
이 공식에서 \(\mathrm{M}_{B'}(T)\)와 \(\mathrm{M}_B(T)\)는 같은 선형변환 \(T\)를 서로 다른 기저로 본 ‘좌표판’ 위의 표현이다. 즉, 행렬 모양이 달라졌어도 본질적으로 같은 ‘연산(변환)’임을 알 수 있다. 그 변환 양상을 “기저 변경 행렬” \(\mathrm{P}_{B \to B'}\)을 사용하여 설명할 수 있으며, \(\mathrm{P}_{B \to B'}\)는 항상 가역(invertible)이다.
보기 4. (\(\mathbb{R}^2\)에서 유사변환)
\(\mathbb{R}^2\)에서, 기저 \(B\)와 \(B'\)가 주어졌다고 하자. 만약 어떤 선형변환 \(T\)의 \(\mathrm{M}_B(T)\)가 \[ \begin{pmatrix} 1 & 2\\ 0 & 1 \end{pmatrix} \] 이라고 하면, 이는 기저 \(B\) 기준으로 \(\mathbf{v}_2\)를 \(\mathbf{v}_1\) 방향으로 2만큼 ‘더한다’는 등(상삼각 형태)으로 해석할 수 있다. 기저를 \(B'\)로 바꾸어 보면, \[ \mathrm{M}_{B'}(T) = \mathrm{P}_{B \to B'}^{-1}\; \begin{pmatrix}1 & 2\\0 & 1\end{pmatrix} \;\mathrm{P}_{B \to B'} \] 이라는 형태의 새로운 행렬이 나온다. 이 행렬은 값이 달라질 수 있지만, \(\mathrm{M}_B(T)\)와 동일한 선형변환 \(T\)임에는 변함이 없다.
기저가 다르면, 벡터 하나를 표현하는 좌표도 달라지기 마련이므로, 선형변환이 “좌표 단에서 어떻게 연산되는가”를 담은 행렬도 달라진다. 그러나 이들은 모두 동일한 변환을 나타내며, 서로 가역 행렬을 통한 유사변환(simalar transformation) 관계에 있다고 말한다. 따라서 두 행렬이 유사하면(한 기저에서의 표현과 다른 기저에서의 표현), 같은 선형변환을 나타낸다고 이해할 수 있다.
정리하자면, 행렬 표현의 변화는 기저 변경에 의해 발생하며, 이는 “\(\mathrm{M}_{B'}(T) = P^{-1}\,\mathrm{M}_B(T)\,P\)” 꼴로 정리된다. 이 공식은 차원이 높은 공간, 혹은 복잡한 변환을 다룰 때도 동일하게 적용되며, 행렬 대각화(diagonalization), Jordan 표준형 등의 개념 역시 기저 변경으로 행렬 표현을 단순화한다는 아이디어 위에 구축된다.
유클리드 공간에서 기저 변환 행렬을 구하는 또 다른 방법
유클리드 공간 \(\mathbb{R}^n\)에서 서로 다른 두 기저 \(B\)와 \(B'\)가 주어졌을 때, “기저 \(B\)에서 기저 \(B'\)로 가는 변환 행렬” \(\mathrm{P}_{B \to B'}\)를 구하는 표준적인 방법 중 하나는, 각 기저 벡터를 표준기저 기준으로 놓은 뒤, 적절히 기본 행 연산을 수행하여 행렬을 도출하는 기법이다. 다음은 그 절차를 간단히 요약한 것이다.
\(B\)와 \(B'\)의 각 벡터를 표준기저로 표현한다.
예를 들어, \(\mathbb{R}^n\)에서 기저 \(B = \{\mathbf{v}_1, \dots, \mathbf{v}_n\}\)와 \(B' = \{\mathbf{w}_1, \dots, \mathbf{w}_n\}\)가 있다고 하자. 여기서 각 \(\mathbf{v}_j\)와 \(\mathbf{w}_j\)를 표준기저를 이용해 좌표벡터로 나타내면, 각각 길이가 \(n\)인 열벡터가 된다.
- \(\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n\)를 표준기저로 표현한 열벡터들을 \(\mathrm{M}_B\)라 하면, \[ \mathrm{M}_B = \begin{pmatrix} | & | & & |\\ [\mathbf{v}_1]_E & [\mathbf{v}_2]_E & \cdots & [\mathbf{v}_n]_E \\ | & | & & | \end{pmatrix}. \]
- \(\mathbf{w}_1, \mathbf{w}_2, \dots, \mathbf{w}_n\)를 표준기저로 표현한 열벡터들을 \(\mathrm{M}_{B'}\)라 하면, \[ \mathrm{M}_{B'} = \begin{pmatrix} | & | & & |\\ [\mathbf{w}_1]_E & [\mathbf{w}_2]_E & \cdots & [\mathbf{w}_n]_E \\ | & | & & | \end{pmatrix}. \]
여기서 \([\mathbf{v}_j]_E\)는 “\(\mathbf{v}_j\)를 표준기저 기준으로 본 좌표벡터”이다(“E”는 표준기저를 나타내는 기호라고 생각해도 좋다).
\(\mathrm{P}_{B \to B'}\)의 형태
표준기저를 거쳐 변환하는 것을 고려하면, 사실 \[ \mathrm{P}_{B \to B'} = \mathrm{M}_{B'} \,\mathrm{M}_{B}^{-1}. \] 이다. 이는 “먼저 기저 \(B\) 벡터들을 표준기저 좌표로 바꾸고(이를 \(\mathrm{M}_B\)가 담당), 그 반대를 하면 \(\mathrm{M}_B^{-1}\)를 취하는 것에 해당하며, 그 뒤 표준기저 좌표에서 기저 \(B'\) 좌표로 바꾸는(이를 \(\mathrm{M}_{B'}\)가 담당) 과정을 결합”하는 꼴로 볼 수 있다. 그런데 실제 계산에서 \(\mathrm{M}_B^{-1}\)를 구하는 과정은 직접 행렬 역행렬을 구하는 것과 마찬가지다.
증분 행렬(확장행렬)을 사용한 실용적 계산 절차
위와 같은 곱셈 형태를 직접 계산하는 대신, 증분 행렬(augmented matrix)과 기본 행 연산을 활용하면 기저변환 행렬을 구하기가 편리하다. 예를 들어, \[ \begin{pmatrix} \mathrm{M}_B & \big| & \mathrm{M}_{B'} \end{pmatrix} \] 이라는 \(n \times 2n\)짜리 증분 행렬을 구성한다. (왼쪽 절반은 \(\mathrm{M}_B\), 오른쪽 절반은 \(\mathrm{M}_{B'}\)).
- \(\mathrm{M}_B\)가 가역이므로, 기본 행 연산을 통해 \(\mathrm{M}_B\) 부분을 항등행렬 \(I_n\)으로 만들 수 있다.
- 해당 연산을 동일하게 오른쪽 블록(\(\mathrm{M}_{B'}\) 부분)에도 적용하면, 결과적으로 \[ \begin{pmatrix} I_n & \big| & \mathrm{M}_{B'}' \end{pmatrix} \] 형태가 된다. 이때, \(\mathrm{M}_{B'}'\)가 바로 \(\mathrm{P}_{B \to B'}\)가 된다.
왜냐하면 “\(\mathrm{M}_B\)를 항등행렬로 바꾸는 일”은 사실상 \(\mathrm{M}_B^{-1}\)를 곱하는 과정과 동일하기 때문이다. 그 결과 남겨지는 오른쪽 블록이 ‘\(\mathrm{M}_{B'}\)에 \(\mathrm{M}_B^{-1}\)를 곱한 것’과 같은 효과를 내며, 이는 앞서 말한 \(\mathrm{M}_{B'}\,\mathrm{M}_B^{-1}\)이 곧 \(\mathrm{P}_{B \to B'}\)인 것과 동일하다.
정리
이 증분 행렬 방식은, 행렬의 역이나 복잡한 곱을 직접 계산하기보다 기본 행 연산에 익숙한 경우에 유용하다. 다음과 같이 정리할 수 있다.
- \(\mathbb{R}^n\)에서 기저 \(B=\{\mathbf{v}_1,\dots,\mathbf{v}_n\}\)와 \(B'=\{\mathbf{w}_1,\dots,\mathbf{w}_n\}\)가 주어졌을 때, 우선 \(\mathrm{M}_B,\ \mathrm{M}_{B'}\)를 구한다(각 기저벡터를 표준기저 좌표로 열에 배치).
- \(\displaystyle \begin{pmatrix} \mathrm{M}_B & \big| & \mathrm{M}_{B'} \end{pmatrix} \)를 만들고, \(\mathrm{M}_B\) 부분을 항등행렬 \(I_n\)으로 만들기 위해 기본 행 연산을 실시한다.
- 그 결과 \(\mathrm{M}_{B'}\) 부분이 \(\mathrm{P}_{B \to B'}\)가 된다. 즉, \[ \begin{pmatrix} \mathrm{M}_B & \big| & \mathrm{M}_{B'} \end{pmatrix} \;\xrightarrow{\text{행 연산}}\; \begin{pmatrix} I_n & \big| & \mathrm{P}_{B \to B'} \end{pmatrix}. \]
이 방법을 사용하면, 직관적으로 “\(\mathrm{M}_B\)를 항등행렬로 바꾸는 과정”에서 어떤 연산이 이루어졌는지 그대로 \(\mathrm{M}_{B'}\)에 반영해 주기만 하면 되므로, 기저 변환 행렬을 구하는 과정을 한 번의 증분 행렬 연산으로 통일해 처리할 수 있다. 실제 문제 풀이나 예제에서 자주 쓰이는 매우 실용적인 테크닉이다.
기저변환 행렬을 계산하는 예
아래 두 예시에서는, 서로 다른 두 기저 \(B\)와 \(B'\)가 주어졌을 때 “기저 \(B\)에서 기저 \(B'\)로 가는 변환 행렬” \(\mathrm{P}_{B \to B'}\)를 구하는 과정을 보여준다.
\(\mathbb{R}^2\)에서의 기저변환 예시 (증분 행렬 기법)
기저를 다음과 같이 두자.
- \(B = \{\mathbf{v}_1=(1,1),\; \mathbf{v}_2=(2,1)\}\)
- \(B' = \{\mathbf{w}_1=(3,1),\; \mathbf{w}_2=(5,2)\}\)
표준기저에서 본 좌표행렬 구하기
-
\(\mathrm{M}_B\): 각 \(\mathbf{v}_j\)를 “표준기저”로 표현한 좌표를 열벡터로 구성한 행렬
\[ \mathrm{M}_B = \begin{pmatrix} | & | \\ (1,1) & (2,1) \\ | & | \end{pmatrix} = \begin{pmatrix} 1 & 2 \\ 1 & 1 \end{pmatrix}. \] -
\(\mathrm{M}_{B'}\): 각 \(\mathbf{w}_j\)를 “표준기저”로 표현한 좌표를 열벡터로 구성한 행렬
\[ \mathrm{M}_{B'} = \begin{pmatrix} | & | \\ (3,1) & (5,2) \\ | & | \end{pmatrix} = \begin{pmatrix} 3 & 5 \\ 1 & 2 \end{pmatrix}. \]
증분 행렬(확장 행렬)을 구성하고 기본 행 연산 수행
이제 \(\displaystyle \begin{pmatrix} \mathrm{M}_{B'} \mid \mathrm{M}_B \end{pmatrix}\)를 만들어서, 왼쪽 블록(\(\mathrm{M}_{B'}\))을 항등행렬로 만드는 과정을 살펴보자.
초기 증분 행렬:
[ 3 5 | 1 2 ] [ 1 2 | 1 1 ]
다음과 같이 기본 행 연산을 적용한다.
- 행 교환 (R1 ↔ R2), 편의상 첫 행을 (1, 2) 형태로 맞추어 계산을 수월하게 한다.
R1 ↔ R2 결과: [ 1 2 | 1 1 ] [ 3 5 | 1 2 ]
- R2 ← R2 - 3R1
R2: (3, 5) - 3*(1, 2) = (3 - 3, 5 - 6) = (0, -1) R2 Right: (1, 2) - 3*(1, 1) = (1 - 3, 2 - 3) = (-2, -1) [ 1 2 | 1 1 ] [ 0 -1 | -2 -1 ]
- R2 ← (-1)*R2 (아래 행의 leading entry를 +1로 만들기)
R2: (0, -1) → (0, 1) R2 Right: (-2, -1) → (2, 1) [ 1 2 | 1 1 ] [ 0 1 | 2 1 ]
- R1 ← R1 - 2R2
R1 Left: (1, 2) - 2*(0, 1) = (1, 0) R1 Right: (1, 1) - 2*(2, 1) = (1-4, 1-2) = (-3, -1) [ 1 0 | -3 -1 ] [ 0 1 | 2 1 ]
이제 왼쪽 블록이 항등행렬이 되었으므로, 오른쪽 블록이 \(\mathrm{P}_{B \to B'}\)이 된다.
\[ \mathrm{P}_{B \to B'} = \begin{pmatrix} -3 & -1 \\ 2 & 1 \end{pmatrix}. \]
이 행렬 \(\mathrm{P}_{B \to B'}\)는 “기저 \(B\) 좌표 → 기저 \(B'\) 좌표” 변환을 수행한다. 예컨대, \(\mathbf{v}_1\)은 \([1, 0]_B\)이므로, \[ [\mathbf{v}_1]_{B'} = \mathrm{P}_{B \to B'} \,[\mathbf{v}_1]_B = \begin{pmatrix} -3 & -1\\ 2 & 1 \end{pmatrix} \begin{pmatrix} 1\\0 \end{pmatrix} = \begin{pmatrix} -3\\2 \end{pmatrix}. \] 즉, \(\mathbf{v}_1 = -3\,\mathbf{w}_1 + 2\,\mathbf{w}_2\)임을 알 수 있다(실제로 \(\mathbf{v}_1=(1,1)\)와 \(\mathbf{w}_1=(3,1),\,\mathbf{w}_2=(5,2)\)의 관계를 대입하면 일치함이 확인된다).
\(\mathbb{R}^3\)에서의 기저변환 예시
이번에는 3차원 벡터공간 \(\mathbb{R}^3\)에서 기저 \(B\)와 \(B'\)가 다음과 같이 주어졌다고 하자. \[\begin{gathered} B = \bigl\{\mathbf{v}_1=(1,0,1),\, \mathbf{v}_2=(0,1,1),\, \mathbf{v}_3=(1,1,1)\bigr\}\\[6pt] B' = \bigl\{\mathbf{w}_1=(1,1,0),\, \mathbf{w}_2=(2,1,1),\, \mathbf{w}_3=(3,0,1)\bigr\} \end{gathered}\]
- \(\mathrm{M}_B\)는 \(\mathbf{v}_1, \mathbf{v}_2, \mathbf{v}_3\)를 표준기저로 본 좌표를 열벡터로 쌓은 것: \[ \mathrm{M}_B = \begin{pmatrix} 1 & 0 & 1 \\[5pt] 0 & 1 & 1 \\[5pt] 1 & 1 & 1 \end{pmatrix}. \]
- \(\mathrm{M}_{B'}\)는 \(\mathbf{w}_1, \mathbf{w}_2, \mathbf{w}_3\)를 표준기저로 본 좌표를 열벡터로 쌓은 것: \[ \mathrm{M}_{B'} = \begin{pmatrix} 1 & 2 & 3 \\[5pt] 1 & 1 & 0 \\[5pt] 0 & 1 & 1 \end{pmatrix}. \]
기저변환 행렬 \(\mathrm{P}_{B \to B'}\)를 구하기 위해, 다음과 같은 증분(확장) 행렬을 구성한다.
\[ \begin{pmatrix} \mathrm{M}_{B'} \mid \mathrm{M}_B \end{pmatrix} = \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 1 & 1 & 0 \;\big|\; 0 & 1 & 1 \\ 0 & 1 & 1 \;\big|\; 1 & 1 & 1 \end{pmatrix}. \]
이제 왼쪽 블록 \(\mathrm{M}_{B'}\)를 기본 행 연산을 통해 항등행렬 \(I_3\)로 만들면, 오른쪽 블록이 \(\mathrm{P}_{B \to B'}\)가 된다. 실제 행 연산을 단계별로 수행하면 아래와 같은 과정을 거친다.
- 초기 행렬: \[ \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 1 & 1 & 0 \;\big|\; 0 & 1 & 1 \\ 0 & 1 & 1 \;\big|\; 1 & 1 & 1 \end{pmatrix}. \]
- R2 ← R2 - R1: \[ \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 0 & -1 & -3 \;\big|\; -1 & 1 & 0 \\ 0 & 1 & 1 \;\big|\; 1 & 1 & 1 \end{pmatrix}. \]
- R3 ← R3 + R2: \[ \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 0 & -1 & -3 \;\big|\; -1 & 1 & 0 \\ 0 & 0 & -2 \;\big|\; 0 & 2 & 1 \end{pmatrix}. \]
- R2 ← -1·R2: \[ \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 0 & 1 & 3 \;\big|\; 1 & -1 & 0 \\ 0 & 0 & -2 \;\big|\; 0 & 2 & 1 \end{pmatrix}. \]
- R3 ← (-1/2)·R3: \[ \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 0 & 1 & 3 \;\big|\; 1 & -1 & 0 \\ 0 & 0 & 1 \;\big|\; 0 & -1 & -\tfrac{1}{2} \end{pmatrix}. \]
- R2 ← R2 - 3·R3: \[ \begin{pmatrix} 1 & 2 & 3 \;\big|\; 1 & 0 & 1 \\ 0 & 1 & 0 \;\big|\; 1 & 2 & \tfrac{3}{2} \\ 0 & 0 & 1 \;\big|\; 0 & -1 & -\tfrac{1}{2} \end{pmatrix}. \] (3행 곱 3을 2행에서 빼서, 2행의 3열을 0으로 만들었다.)
- R1 ← R1 - 3·R3: \[ \begin{pmatrix} 1 & 2 & 0 \;\big|\; 1 & 3 & \tfrac{5}{2} \\ 0 & 1 & 0 \;\big|\; 1 & 2 & \tfrac{3}{2} \\ 0 & 0 & 1 \;\big|\; 0 & -1 & -\tfrac{1}{2} \end{pmatrix}. \]
- R1 ← R1 - 2·R2: \[ \begin{pmatrix} 1 & 0 & 0 \;\big|\; -1 & -1 & -\tfrac{1}{2} \\ 0 & 1 & 0 \;\big|\; 1 & 2 & \tfrac{3}{2} \\ 0 & 0 & 1 \;\big|\; 0 & -1 & -\tfrac{1}{2} \end{pmatrix}. \]
결국 왼쪽 블록은 항등행렬 \(I_3\)이 되고, 오른쪽 블록이 바로 기저변환 행렬 \(\mathrm{P}_{B \to B'}\)가 된다. 즉, 최종 결과는
\[ \mathrm{P}_{B \to B'} = \begin{pmatrix} -1 & -1 & -\tfrac{1}{2} \\ 1 & 2 & \tfrac{3}{2} \\ 0 & -1 & -\tfrac{1}{2} \end{pmatrix}. \]
이 기저변환 행렬은 “어떤 벡터가 기저 \(B\)의 좌표로 주어졌을 때, 그 벡터의 \(B'\) 좌표를 찾아주는 역할”을 한다. 예를 들어, \(\mathbf{v}_2\)가 \(B\)-좌표에서 \([0,1,0]^T\)라면,
\[ [\mathbf{v}_2]_{B'} = \mathrm{P}_{B \to B'} \begin{pmatrix}0\\1\\0\end{pmatrix} = \begin{pmatrix} -1\\ 2\\ -1 \end{pmatrix}. \]
이를 통해, \(\mathbf{v}_2\)가 기저 \(B'\)에서 \(\begin{pmatrix}-1\\2\\-1\end{pmatrix}\)로 표현됨을 알 수 있다. 이와 같은 증분 행렬 기법은 기저변환 행렬 \(\mathrm{P}_{B \to B'}\)를 구하는 데 매우 유용하며, 기본 행 연산의 성질을 활용해 빠르게 계산을 진행할 수 있다.
지금까지 구한 과정을 요약하자면 다음과 같다.
- \(\mathrm{M}_B\)와 \(\mathrm{M}_{B'}\)를 각각 구한다. (각 기저 벡터를 표준기저로 표현한 열벡터들)
- \(\displaystyle \begin{pmatrix} \mathrm{M}_{B'} \mid \mathrm{M}_B \end{pmatrix}\)를 만든 뒤, \(\mathrm{M}_{B'}\) 부분을 기본 행 연산으로 항등행렬 \(I\)로 바꾼다.
- 그때 오른쪽에 남는 행렬 블록이 \(\mathrm{P}_{B \to B'}\), 즉 기저 \(B\)에서 기저 \(B'\)로 가는 변환 행렬이 된다. \[\mathrm{P}_{B \to B'} = \mathrm{M}_{B'}^{-1}\,\mathrm{M}_B.\]
이 기법은 “행렬 역연산”을 기본 행 연산으로 구하는 방식과 사실상 동일한 원리이며, 기저벡터가 많아질수록 직접 역행렬을 구하기보다 증분행렬 과정을 통해 한 번에 해결하는 편이 계산상 편리하다.