고유벡터에도 좌파와 우파가 있다. 일반적으로 고유벡터라고 하면 우(오른쪽) 고유벡터(right eigenvector)를 의미한다. 그러면 좌(왼쪽) 고유벡터(left eigenvector)란 무엇이고 우(오른쪽) 고유벡터와는 어떤 관계가 있을까.
정방행렬 \(A \in \mathbb{R}^{n \times n}\) 의 우(오른쪽) 고유값(eigenvalue) \(\lambda\) 와 고유벡터 \(\mathbf{v}\) 는 다음과 같이 정의된다 (https://pasus.tistory.com/8).
\[ A \mathbf{v} = \lambda \mathbf{v}, \ \ \ \mathbf{v} \ne 0 \tag{1} \]
반면 정방행렬 \(A\) 의 좌(왼쪽) 고유값 \(\kappa\) 와 고유벡터 \(\mathbf{w}\) 는 다음과 같이 정의된다.
\[ \mathbf{w}^T A= \kappa \mathbf{w}^T, \ \ \ \mathbf{w} \ne 0 \tag{2} \]
식 (2)는 아래 식과 같으므로 행렬 \(A\) 의 좌(왼쪽) 고유벡터는 전치 행렬의 우(오른쪽) 고유벡터와 같다는 것을 알 수 있다.
\[ A^T \mathbf{w}= \kappa \mathbf{w}, \ \ \ \mathbf{w} \ne 0 \tag{3} \]
그렇다면 행렬 \(A\) 의 우(오른쪽) 고유값과 좌(왼쪽) 고유값은 서로 같을까 다를까 하는 의문이 들 것이다. 식 (1)의 고유값은 다음과 같은 행렬식을 통해서 계산할 수 있다.
\[ \det (A-\lambda I)=0 \tag{4} \]
마찬가지로 식 (2)의 고유값은 다음과 같은 행렬식을 통해서 계산할 수 있다.
\[ \det (A^T-\kappa I)=0 \tag{5} \]
어떤 행렬과 그 행렬의 전치 행렬의 행렬식은 같다는 사실을 이용하면 식(1)과 (2)의 고유값은 모두 같다는 것을 증명할 수 있다.
\[ \begin{align} & \det (A- \lambda I)= \det (A^T- \lambda I)=0 \tag{6} \\ \\ \to & \ \ \ \lambda = \kappa \end{align} \]
그러면 좌(왼쪽)와 우(오른쪽) 고유벡터는 어떤 관계를 가질까.
만약 행렬 \(A\) 가 대칭이라면, 즉 \(A=A^T\) 이면 좌(왼쪽) 고유벡터와 우(오른쪽) 고유벡터는 같다.
\[ \lambda \mathbf{w}^T= \mathbf{w}^T A=(A^T \mathbf{w})^T=(A \mathbf{w})^T \tag{7} \]
대칭 행렬이 아닌 일반적인 행렬의 경우도 알아보자. 정방행렬 \(A \in \mathbb{R}^{n \times n} \) 의 고유값은 중복된 값을 포함하여 \(n\) 개이다. \(i\) 번째 고유값 \(\lambda_i\) 에 대응하는 좌우 고유벡터 각각 \(\mathbf{w}_i, \ \mathbf{v}_i\) 라고 하고 식 (1)에 \(j\) 번째 우(오른쪽) 고유벡터에 좌(왼쪽) 고유벡터 \(\mathbf{w}_i^T\) 를 곱해 보자.
\[ \mathbf{w}_i^T (A \mathbf{v}_j )= \mathbf{w}_i^T (\lambda_j \mathbf{v}_j )= \lambda_j \mathbf{w}_i^T \mathbf{v}_j \tag{8} \]
식 (2)에 의하면 식 (8)은 다음과 같이 쓸 수 있다.
\[ (\mathbf{w}_i^T A) \mathbf{v}_j=( \lambda_i \mathbf{w}_i^T ) \mathbf{v}_j= \lambda_i \mathbf{w}_i^T \mathbf{v}_j \tag{9} \]
식 (8)과 (9)는 같아야 하므로 다음 조건을 만족해야 한다.
\[ (\lambda_i-\lambda_j) \mathbf{w}_i^T \mathbf{v}_j=0 \tag{10} \]
따라서 \(\lambda_i \ne \lambda_j\) 이면 각각의 고유값에 해당하는 좌와 우 고유벡터는 서로 직각이 된다.
\[ \mathbf{w}_i^T \mathbf{v}_j=0, \ \ \ i \ne j \tag{11} \]
좌와 우 고유벡터의 관계를 좀더 자세히 알아보기 위하여 두 가지 경우를 생각해 보자. 먼저 행렬 \(A \in \mathbb{R}^{n \times n }\) 의 모든 고유값이 서로 다른 경우이다. 우(오른쪽) 고유벡터를 열로 하는 행렬을 \(V\), 좌(왼쪽) 고유벡터를 행으로 하는 행렬을 \(W\) 라고 하자.
\[ V= \begin{bmatrix} \mathbf{v}_1 & \cdots & \mathbf{v}_n \end{bmatrix}, \ \ \ W= \begin{bmatrix} \mathbf{w}_1^T \\ \vdots \\ \mathbf{w}_n^T \end{bmatrix} \tag{12} \]
그러면 식 (1)과 (2)는 각각 다음과 같이 쓸 수 있다.
\[ AV=V \Lambda, \ \ \ WA=\Lambda W \tag{13} \]
여기서
\[ \Lambda = diag (\lambda_1, ... , \lambda_n ) \]
이다. 위 식에 각각 \(W\) 와 \(V\) 를 곱하면 다음과 같이 된다.
\[ WV \Lambda = \Lambda WV \tag{14} \]
식 (14)에 의하면 \(WV\) 는 대각행렬 \(\Lambda \) 와 서로 교환법칙이 성립한다. 이는 \(WV\) 도 역시 대각행렬이라는 것을 의미한다. 식 (10)에 의하면 이는 당연한 결과로 만약 고유값 \(\lambda_i\) 에 대응하는 좌우 고유벡터의 내적을 모두 \(1\) 로 정규화(normalization)한다면, 즉 \(\mathbf{w}_i^T \mathbf{v}_i=1\) 이면, \( WV=I\) 로 만들 수 있다.
두번째 경우는 행렬 \(A\) 가 두 개 이상의 중복된 고유값을 갖는 경우이다. 그러면 식 (10)에서 \(\lambda_i= \lambda_j\) 인 경우가 있으므로 그럴 때는 식 (10)으로는 \(\mathbf{w}_i^T \mathbf{v}_j\) 의 값이 명확하지가 않다.
어떤 행렬이 중복된 고유값을 갖는다면 해당하는 고유값에 대한 선형 독립인 고유벡터를 몇 개 얻을 수 있는지 따져보고 중복된 숫자 만큼 고유벡터를 얻을 수 없을 때(대각화 불가능)는 나머지 숫자만큼 일반화 고유벡터(generalized eigenvector)를 구해야 한다.
이 경우 고유값에 해당하는 좌(왼쪽) 또는 우(오른쪽) 고유벡터 (또는 일반화 고유벡터)가 각각 우 또는 좌 (일반화)고유벡터와 직각이 되도록 구할 수 있다. 이는 Gram-Schmidt 직교화와 유사한 절차로 수행할 수 있다. 그런 다음 정규화를 수행하여 직각 관계가 아닌 좌 고유벡터와 우 고유벡터 사이의 내적이 \(1\) 이 되도록 한다.
이렇게 하면 두 개 이상의 중복된 고유값을 갖는 경우에도 우(오른쪽) 고유벡터를 열로 하는 행렬 \(V\) 와 좌(왼쪽) 고유벡터를 행으로 하는 행렬 \(W\) 의 곱을 \(WV=I\) 로 만들 수 있다. 즉,
\[ W=V^{-1} \tag{15} \]
좌(왼쪽) 고유벡터는 선형 상태변수 방정식의 해에서 볼 수 있다. 다음과 같이 어떤 시스템이 있다고 하자.
\[ \begin{align} \dot{\mathbf{x}} &= A \mathbf{x}+B \mathbf{u} \tag{16} \\ \\ \mathbf{z} &= C \mathbf{x} \end{align} \]
여기서 \(\mathbf{x} \in \mathbb{R}^n \) 는 상태변수, \(\mathbf{u} \in \mathbb{R}^p\) 는 제어입력, \(\mathbf{z} \in \mathbb{R}^q\) 는 출력(측정값)이다. 상태변수 \(\mathbf{x}(t)\) 는 다음과 같이 계산된다.
\[ \mathbf{x}(t)=e^{At} \mathbf{x}_0+ \int_0^t e^{A(t-\tau)} B \mathbf{u}(\tau) \ d\tau \tag{17} \]
여기서 \(\mathbf{x}_0= \mathbf{x}(0)\) 이다. 행렬 \(A\) 의 고유값 \(\lambda_i\) 에 해당하는 좌(왼쪽) 고유벡터와 우(오른쪽) 고유벡터를 각각 \(\mathbf{w}_i\), \( \mathbf{v}_i\) 라고 하자.
\[ A \mathbf{v}_i= \lambda_i \mathbf{v}_i, \ \ \ \mathbf{w}_i^T A=\lambda_i \mathbf{w}_i^T \tag{18} \]
만약 행렬 \(A\) 가 대각화 가능(diagonalizable)하다면, \(e^{At}\) 는 다음과 같이 계산할 수 있다 (https://pasus.tistory.com/233).
\[ \begin{align} e^{At} &= V \begin{bmatrix} e^{\lambda_1 t} & & \\ & \ddots & \\ & & e^{\lambda_n t} \end{bmatrix} V^{-1} \tag{19} \\ \\ &= V \begin{bmatrix} e^{\lambda_1 t} & & \\ & \ddots & \\ & & e^{\lambda_n t} \end{bmatrix} W \\ \\ &= \sum_i \mathbf{v}_i e^{\lambda_i t} \mathbf{w}_i^T \end{align} \]
식 (19)를 식 (17)에 대입하면 다음과 같다.
\[ \mathbf{x}(t)= \sum_i (\mathbf{w}_i^T \mathbf{x}_0 ) \mathbf{v}_i e^{\lambda_i t} + \sum_i \mathbf{v}_i \int_0^t e^{\lambda_i (t-\tau)} \mathbf{w}_i^T B \mathbf{u} (\tau) \ d\tau \tag{20} \]
출력 \(\mathbf{z}(t)\) 는 다음과 같이 계산된다.
\[ \mathbf{z}(t)= \sum_i (\mathbf{w}_i^T \mathbf{x}_0 ) C \mathbf{v}_i e^{\lambda_i t} + \sum_i C \mathbf{v}_i \int_0^t e^{\lambda_i (t-\tau)} \mathbf{w}_i^T B \mathbf{u} (\tau) \ d\tau \tag{21} \]
이 식에 의하면 \(C \mathbf{v}_i\) 는 고유값 \(\lambda_i\) 와 관련된 출력 공간의 방향이며, \(\mathbf{w}_i^T B\) 는 고유값 \(\lambda_i\) 에 대한 제어입력 \(\mathbf{u}(t)\) 의 영향을 결정한다는 것을 알 수 있다.
만약 \(C\mathbf{v}_i=0\) 이면 \(\mathbf{v}_i\) 방향의 움직임을 출력에서 관측할 수 없으므로 \(\lambda_i\) 를 관측 불가능(unobservable)한 모드라고 하고, \(\mathbf{w}_i^T B=0\) 이면 제어입력 \(\mathbf{u}(t)\) 는 \(\mathbf{v}_i\) 방향의 움직임에 영향을 끼치지 못하므로 \(\lambda_i\) 를 제어 불가능(uncontrollable)한 모드라고 한다.
또한 식 (20)에 의하면 좌(왼쪽) 고유벡터는 초기값을 운동 모드 성분으로 분해하고 (\(\mathbf{w}_i^T \mathbf{x}_0\)), 우(오른쪽) 고유벡터 \(\mathbf{v}_i\) 는 상태변수를 운동 모드의 선형 조합으로 표현한다.
'AI 수학 > 선형대수' 카테고리의 다른 글
플롭 (Flop) (0) | 2023.11.09 |
---|---|
심플렉틱 행렬 (Symplectic Matrix) (0) | 2023.07.01 |
Frobenius Norm 최소화 문제 (0) | 2022.11.03 |
행렬의 조건수 (Condition Number) (0) | 2021.03.02 |
놈 (norm) (0) | 2020.10.24 |
댓글