수학:순환_행렬_circulant_matrix

순환 행렬 (circulant matrix)

'순환 행렬'이라 함은, 보통 다음과 같은 꼴을 갖는 행렬을 가리킨다.

$$ C = \begin{pmatrix} c_0 & c_1 & c_2 & ... & c_{n-1} \\ c_{n-1} & c_0 & c_1 & c_2 & ... \\ c_{n-2} & c_{n-1} & c_0 & ... \\ ... \\ c_1 & c_2 & ... & c_{n-1} & c_0 \\ \end{pmatrix} $$

$$\\ $$ 즉, 각 행과 열을 구성하는 성분은 모두 일치하지만, 그 순서가 한 차례 씩 밀린 것을 확인할 수 있다.

$$ \\ $$ 이러한 행렬을 사용하는 일례를 들자면, 고리(ring)와 같은 형태에서 규칙적으로 배열된 입자나 진동자를 다룰 때이다.

각 위치에 놓인 대상을 $j$라는 index로 지정하면, 서로 다른 진동자 $k$로 부터 떨어진 거리는 고리 상의 유클리드 거리(Euclidean distance)로 설명이 되는데, 그 거리를 $r_{jk}$라고 부를 수 있다.

그러한 $r_{jk}$에 대해서 동일한 함수로 구성된 성분으로 구성된 행렬을 $A$라고 하면, 그러한 $A$는 위에서 소개한 형태의 순환 행렬임을 알 수 있다.

$$ \\ $$

순환 행렬의 고유 벡터

순환 행렬이 자명하게 갖는 고유 벡터는 다음과 같으며

$$ v^0 = (1,\ 1,\ ..., 1)^T $$

그에 대응되는 고유값은 $c_0 + c_1 + ... + c_{n-1}$이다.

$$\\ $$ 또 다른 고유 벡터는 일반적으로 아래와 같은 '1의 거듭제곱근'을 성분으로 갖는 벡터이다.

$$ v_k = \left(1,\ \omega_n^k,\ \omega_n^{2k},\ ..., \omega_n^{(n-1)k}\right)^T, \\ \omega_n = e^{2\pi i / n} $$

$$\\$$ 이러한 벡터 $v_k$가 왜 순환 행렬 $C$의 고유 벡터인지 증명해보자.

$$\\$$

순환 행렬 $C$를 어떠한 벡터 $x$에 곱한 결과 벡터가 $y$라면, 그는 순환 행렬의 형태를 고려하여 다음과 같이 나타낼 수 있다.

$$ y_j = \sum_{i=0}^{n-1} c_{(i-j) \operatorname{mod} n}\ x_i $$

$$ \\ $$ 이때, 앞서 언급한 $v_k$가 $C$의 고유 벡터임을 확인하기 위해서

아래와 같은 식을 고려하자.

$$ \left(C v_k\right)_j = \sum_{i=0}^{n-1} c_{(i-j) \operatorname{mod} n}\ \left(\omega_n\right)^{ik} $$

위 식에서 $m=(i-j) \operatorname{mod} n$ 이라고 둔다면, 식이 다음과 같이 바뀐다.

$$ \left(C v_k\right)_j = \sum_{m=0}^{n-1} c_{m}\ \left(\omega_n\right)^{(j+m)k} $$

이는 $\operatorname{mod}$ 계산에 따른 것이다. $m=(i-j) \operatorname{mod} n $ 이라고 함은 $q$가 정수 일 때 $i-j = qn+m$와 같이 표현됨을 의미하며, 그러므로 $j=i-m-qn$이다.

그렇다면 이것은 $i=j+m+qn$을 의미하므로, $i = (j+m) \operatorname{mod} n$를 의미한다.

따라서, $\omega_n$이 $n$-주기를 갖는 것을 고려하였을 때 $\operatorname{mod} n$을 생략하여 $i = (j+m)$를 지수에 대입할 수 있는 것이다. $$\\$$

위의 식을 더 정리하면 아래와 같다. $$ \left(C v_k\right)_j = \left(\omega_n\right)^{jk}\sum_{m=0}^{n-1} c_{m} \left(\omega_n\right)^{mk} $$

여기에서 $\sum_{m=0}^{n-1} c_{m}\left(\omega_n\right)^{mk}$는 $v_k$에 대한 '이산 푸리에 변환(Fourier transform)'이다. 이를 $\lambda_k$라고 둔다면 $\left(C v_k\right)_j = \lambda_k (v_k)_j$ 이므로, $v_k$는 아래와 같이 고유값 방정식을 만족하게 된다.

$$C v_k = \lambda_k (v_k).$$

$$\\$$

고유값인 $\lambda_k=\sum_{m=0}^{n-1} c_{m}\left(\omega_n\right)^{mk}$를 오일러 공식을 이용하여 풀어서 쓰면 다음과 같다.

$$ \lambda_k=\sum_{m=0}^{n-1} c_{m}\left( e^{2\pi i / n}\right)^{mk} = \sum_{m=0}^{n-1} c_{m}\left( e^{2i\pi mk / n}\right) \\ =\sum_{m=0}^{n-1} c_{m}\left( \cos\left(\frac{2i\pi mk}{n}\right) + i\sin \left(\frac{2i\pi mk}{n}\right)\right) \\ $$

이때, 대칭적인 순환 행렬은 에르미트 (Hermitian) 행렬에 속하므로, 그의 고유값은 실수(real-valued)이다.

$$\\ $$ 또한, 이는 앞서 살펴본 순환 행렬의 성분과 고유값으로도 확인이 가능하다. 대칭적인 순환 행렬의 성분들은 $c_m=c_{n-m}$를 만족하며 배열되며 그 경우에는 위의 $\sin$항의 합이 $0$이 됨을 확인할 수 있기 때문이다.

  • 수학/순환_행렬_circulant_matrix.txt
  • Last modified: 2024/12/09 21:31
  • by minwoo