토플리츠 행렬

오류 제보
수치해석 마지막 수정: 2026-10-21 04:18:05

○ 공개 검수 대기 AI 보조 작성 표시 기준 보기

1. 개요

토플리츠 행렬
Toeplitz Matrix
정의Tij = ti−j (대각선마다 상수)
자유도2n − 1 개 (대칭이면 n 개)
행렬-벡터 곱FFT 로 O(n log n)
직접 풀이레빈슨류 O(n2)
반복 풀이순환 전처리 CG
등장처정상 과정 공분산, 비주기 합성곱, 균일 격자 상수계수 이산화

대각선 하나에 숫자 하나. n2n^2 칸을 2n−12n-1 개 숫자로 채운 행렬이니, 그 절약을 계산에서도 돌려받아야 한다.

토플리츠 행렬(Toeplitz matrix)은 각 대각선을 따라 성분이 일정한, 즉 Tij=ti−jT_{ij} = t_{i-j} 꼴인 행렬이다. 독일 수학자 오토 퇴플리츠(Otto Toeplitz)의 이름을 땄다1.

Tn=(t0t−1t−2⋯t−(n−1)t1t0t−1⋱⋮t2t1t0⋱t−2⋮⋱⋱⋱t−1tn−1⋯t2t1t0)T_n = \begin{pmatrix} t_0 & t_{-1} & t_{-2} & \cdots & t_{-(n-1)} \\ t_1 & t_0 & t_{-1} & \ddots & \vdots \\ t_2 & t_1 & t_0 & \ddots & t_{-2} \\ \vdots & \ddots & \ddots & \ddots & t_{-1} \\ t_{n-1} & \cdots & t_2 & t_1 & t_0 \end{pmatrix}

이 구조가 나오는 이유는 하나로 요약된다 — 시프트 불변성. 성분이 위치 i,ji, j 가 아니라 그 차이 i−ji-j 에만 의존하는 모든 곳에 토플리츠가 생긴다.

  • 정상 확률과정의 공분산. Cov(xi,xj)=ri−j\mathrm{Cov}(x_i, x_j) = r_{i-j} 이므로 공분산 행렬이 대칭 토플리츠다. 위너 필터의 정규방정식, 자기회귀 모형의 율-워커 방정식, 가우시안 프로세스 회귀를 등간격 격자에서 하면 다 이 꼴이다.
  • 비주기 합성곱. 유한 길이 신호에 필터를 거는 것은 토플리츠 행렬 곱이다. 주기 경계로 감으면 순환 행렬이 된다.
  • 균일 격자 위 상수계수 이산화. 1차원 디리클레 문제의 유한차분법 라플라시안 tridiag(−1,2,−1)\mathrm{tridiag}(-1, 2, -1) 이 대표적이다. 차분 커널이 위치와 무관하니 토플리츠다.
  • 차 커널 적분방정식. ∫k(x−y)u(y) dy\int k(x-y)u(y)\,dy 를 등간격으로 이산화하면 토플리츠(2차원이면 블록 토플리츠)가 된다.

일반 조밀 행렬로 취급하면 저장 O(n2)O(n^2), 가우스 소거법 O(n3)O(n^3) 이다. 토플리츠 구조를 쓰면 저장 O(n)O(n), 곱셈 O(nlog⁡n)O(n\log n), 풀이 O(n2)O(n^2) 또는 그 이하로 떨어진다. 이 문서는 그 세 가지 절약이 어디서 나오는지와, 구조가 주는 스펙트럼 정보를 정리한다.

2. 심볼과 세게 정리 — 스펙트럼을 미리 안다

토플리츠 수열 {tk}\{t_k\} 를 푸리에 계수로 갖는 2π2\pi-주기 함수

f(θ)=∑k=−∞∞tk eikθf(\theta) = \sum_{k=-\infty}^{\infty} t_k\, e^{ik\theta}

를 심볼(symbol) 또는 생성 함수라 하고, Tn=Tn(f)T_n = T_n(f) 로 쓴다. ff 가 실수값이면 Tn(f)T_n(f) 는 에르미트이고, 다음이 성립한다.

  • Tn(f)T_n(f) 의 모든 고유값은 [min⁡f,max⁡f][\min f, \max f] 안에 있다. 특히 f>0f > 0 이면 모든 nn 에서 양정치다.
  • 그레난더-세게 정리: n→∞n \to \infty 에서 Tn(f)T_n(f) 의 고유값은 f(θ)f(\theta) 의 값들과 같은 분포를 따른다. 즉 고유값 히스토그램이 ff 를 [−π,π][-\pi,\pi] 에서 균일하게 샘플한 값의 히스토그램으로 수렴한다.

tridiag(−1,2,−1)\mathrm{tridiag}(-1,2,-1) 의 심볼은 f(θ)=2−2cos⁡θf(\theta) = 2 - 2\cos\theta 이고, 고유값은 정확히 λj=2−2cos⁡(jπn+1)\lambda_j = 2 - 2\cos\bigl(\tfrac{j\pi}{n+1}\bigr) 다. n=8n = 8 로 재면 작은 쪽 세 개가 0.120610.12061, 0.467910.46791, 1.000001.00000 으로 공식과 유효숫자 전부 일치한다. 심볼이 θ=0\theta = 0 에서 0이 되므로 조건수는 κ≈4(n+1)2/π2\kappa \approx 4(n+1)^2/\pi^2 로 n2n^2 에 비례해 커진다. 반대로 ff 가 0에서 멀리 떨어져 있으면 nn 을 키워도 조건수가 유계다 — 위너 필터의 공분산은 파워 스펙트럼이 양수인 한 아무리 길게 잡아도 조건수가 max⁡f/min⁡f\max f/\min f 를 넘지 않는다.

이 정보는 공짜로 얻는 고유값 문제의 답이자, 아래 전처리기 설계의 근거다.

3. 빠른 곱셈 — 순환 임베딩

n×nn \times n 토플리츠를 2n×2n2n \times 2n 순환 행렬 안에 묻는다. 첫 열을 (t0,t1,…,tn−1,0,t−(n−1),…,t−1)(t_0, t_1, \dots, t_{n-1}, 0, t_{-(n-1)}, \dots, t_{-1}) 로 잡고, 벡터 x\mathbf{x} 를 길이 2n2n 으로 영채움해 순환 곱을 한 뒤 앞 nn 개를 취하면 TxT\mathbf{x} 가 정확히 나온다. 순환 곱은 고속 푸리에 변환 세 번이므로 O(nlog⁡n)O(n \log n) 이다. 원리는 합성곱 정리의 영채움과 같다.

실측: n=256,1024,4096n = 256, 1024, 4096 에서 조밀 곱 대비 상대오차가 각각 3.3×10−163.3\times10^{-16}, 4.8×10−164.8\times10^{-16}, 5.6×10−165.6\times10^{-16} 이었다. 정확도를 잃지 않는다. 이 곱셈 하나로 켤레기울기법·GMRES 같은 반복법의 반복당 비용이 O(nlog⁡n)O(n\log n) 이 된다.

4. 풀이 — 세 갈래

4.1. 레빈슨류 직접법

대칭 양정치 토플리츠 계는 레빈슨-더빈 알고리즘으로 O(n2)O(n^2) 에 푼다. 크기 mm 의 해에서 m+1m+1 의 해를 내적 하나와 벡터 갱신 하나로 만드는 점화식이다. 저장은 O(n)O(n) 이고 구현이 짧다. 자세한 점화식과 안정성은 해당 문서로 넘긴다.

4.2. 초고속 직접법

분할 정복으로 O(nlog⁡2n)O(n \log^2 n) 에 푸는 이른바 초고속(superfast) 알고리즘도 있다(브렌트·거스타브슨·윤 1980, 아마르·그래그 1988 등). 점근 비용은 매력적이지만 상수가 크고 수치 안정성 보장이 약해서, 실무에서는 nn 이 아주 클 때가 아니면 아래 반복법이 더 자주 쓰인다.

4.3. 순환 전처리 켤레기울기법

토플리츠를 순환 행렬로 근사하면 그 근사의 역행렬은 FFT 로 O(nlog⁡n)O(n\log n) 에 적용된다. 이걸 전처리기로 쓴다.

  • 스트랭 전처리기(Strang, 1986): TT 의 가운데 대각선들을 그대로 복사하고 나머지를 주기적으로 감아 채운다. 첫 열이 (t0,t1,…,t⌊n/2⌋,t−⌊(n−1)/2⌋,…,t−1)(t_0, t_1, \dots, t_{\lfloor n/2 \rfloor}, t_{-\lfloor (n-1)/2 \rfloor}, \dots, t_{-1}).
  • T. 챈 전처리기(T. Chan, 1988): 프로베니우스 노름으로 TT 에 가장 가까운 순환 행렬. 첫 열이 ck=(n−k) tk+k tk−nnc_k = \frac{(n-k)\,t_k + k\,t_{k-n}}{n}.

R. 챈과 스트랭(1989)은 심볼이 양수이고 충분히 매끄러우면 전처리된 행렬 C−1TC^{-1}T 의 고유값이 1 근처에 군집하고 몇 개만 바깥에 남는다는 것을 보였다. 군집된 스펙트럼에서 CG 는 초선형 수렴한다.

tk=0.9∣k∣t_k = 0.9^{\lvert k \rvert} (KMS 행렬2, 조건수 약 360)에 무작위 우변, 상대잔차 10−1010^{-10} 까지의 CG 반복 수:

nn전처리 없음스트랭T. 챈
25613149
102419837
409622836

반복당 비용은 FFT 몇 번이므로 n=4096n = 4096 계를 FFT 수십 번으로 푼 셈이다. 레빈슨의 O(n2)O(n^2) 보다도 싸다.3 심볼이 0을 가지면(위의 라플라시안처럼) 순환 전처리기 자체가 특이해지거나 군집이 깨지므로, 그때는 0을 피하도록 보정한 변형이나 띠 토플리츠 전처리기를 쓴다.

5. 변위 구조 — 역행렬은 토플리츠가 아니다

토플리츠 행렬의 곱과 역행렬은 일반적으로 토플리츠가 아니다. KMS 행렬의 역행렬은 삼중대각이지만 대각선이 (1,1+ρ2,…,1+ρ2,1)/(1−ρ2)(1, 1+\rho^2, \dots, 1+\rho^2, 1)/(1-\rho^2) 라 양 끝이 다르다.

그래도 구조가 사라지는 건 아니다. 아래로 한 칸 미는 시프트 행렬 ZZ 로 변위(displacement) ∇T=T−ZTZ⊤\nabla T = T - ZTZ^\top 를 만들면, 토플리츠에서는 (i,j)(i,j) 와 (i−1,j−1)(i-1,j-1) 성분이 같으므로 첫 행과 첫 열만 남는다. 즉 rank(∇T)≤2\mathrm{rank}(\nabla T) \le 2 다. 카일라스·쿵·모르프(1979)는 역행렬이 짝이 되는 변위 T−1−Z⊤T−1ZT^{-1} - Z^\top T^{-1} Z 에 대해 같은 계수를 가진다는 것을 보였다(무작위 10×1010\times10 토플리츠로 재면 두 변위의 계수가 모두 2다). 그래서 T−1T^{-1} 은 생성자 벡터 두어 개로 완전히 정해지고, 이것이 첫 열과 마지막 열만으로 역행렬을 쓰는 고흐베르크-세메쿨 공식이다.

이 관점은 토플리츠를 넘어 변위 계수가 작은 행렬 전체(토플리츠의 곱·역·슈어 보수, 토플리츠+행켈 등)를 같은 빠른 알고리즘으로 다루게 해 준다. 일반화된 슈어 알고리즘이 그 대표다.

6. 친척들

  • 순환 행렬 — 토플리츠의 주기판. DFT 로 정확히 대각화된다. 토플리츠는 순환에 “경계 결함”을 더한 것으로 볼 수 있다.
  • 토플리츠+행켈 — 노이만 경계조건의 라플라시안처럼 대칭 반사가 끼면 나온다. 이산 코사인 변환이 이 부류를 대각화한다.
  • 블록 토플리츠 / BTTB — 2차원 균일 격자의 합성곱·흐림(blur) 연산자. 블록 단위로 토플리츠이고 블록 자체도 토플리츠다. 순환 임베딩과 전처리가 2차원 FFT 로 그대로 확장된다.
  • 띠 토플리츠 — 유한 길이 차분 스텐실. 띠 토머스 알고리즘으로 O(n)O(n) 이라 오히려 위의 장치가 필요 없다.

7. 함정

  • 구조는 생각보다 쉽게 깨진다. 비균일 격자, 변수 계수, 경계 행 한 줄의 수정만으로 토플리츠가 아니게 된다. “거의 토플리츠”면 토플리츠 부분을 전처리기로만 쓰는 게 정석이다.
  • 양정치가 아닌 토플리츠에서 레빈슨은 깨질 수 있다. 행렬이 정칙이어도 선행 주소행렬식이 0이면 분모가 0이 된다. 피벗이 없는 점화식이라서다.
  • 표본 자기공분산을 그대로 쓰면 양정치가 보장되지 않을 수 있다. 분모를 NN 으로 나눈 편향 추정량은 양반정치가 보장되지만, N−kN-k 로 나눈 불편 추정량은 그렇지 않다. 율-워커 추정에서 편향 추정량을 쓰는 이유다.
  • 역행렬을 명시적으로 만들지 마라. 조밀 n2n^2 이 되어 지금까지 아낀 걸 다 토한다. 필요하면 고흐베르크-세메쿨 생성자만 저장한다.

8. 관련 문서

9. Footnotes

  1. 독일어 발음은 「퇴플리츠」에 가깝지만 국내 문헌은 「토플리츠」·「퇴플리츠」·「테플리츠」를 섞어 쓴다. 검색할 땐 그냥 Toeplitz 로 치는 게 정신 건강에 좋다. ↩

  2. 카츠-머독-세게(Kac–Murdock–Szegő) 행렬. 성분이 ρ∣i−j∣\rho^{\lvert i-j \rvert} 로 AR(1) 과정의 상관행렬이다. 역행렬이 삼중대각이라는 사실이 알려져 있어 토플리츠 알고리즘의 단골 시험 문제로 끌려 나온다. 스트랭 전처리기가 3회 만에 끝내는 것도 이 삼중대각 역행렬 덕이 크다. ↩

  3. 「O(n2)O(n^2) 이면 충분히 빠른 거 아냐?」 — n=106n = 10^6 짜리 위성 영상 흐림 연산자 앞에서는 아니다. 101210^{12} 과 2×1072\times10^{7} 의 차이는 커피 한 잔과 지구 한 바퀴의 차이다. ↩

검증 자료

이 문서의 주요 출처

  1. R. H. Chan, M. K. Ng (1996), Conjugate gradient methods for Toeplitz systems, SIAM Review 38(3), 427-482
  2. T. F. Chan (1988), An optimal circulant preconditioner for Toeplitz systems, SIAM J. Sci. Stat. Comput. 9(4), 766-771
  3. T. Kailath, S.-Y. Kung, M. Morf (1979), Displacement ranks of matrices and linear equations, J. Math. Anal. Appl. 68(2), 395-407
  4. G. H. Golub, C. F. Van Loan, Matrix Computations (4th ed.), §4.7 Classical methods for Toeplitz systems
이 문서가 문제를 푸는 데 도움이 됐나요? 한 번의 클릭이 다음 검수 순서를 정합니다.

의견을 반영할게요. 감사합니다.

다음으로 읽기 고속 푸리에 변환 약 5분 더 탐색 →