고유값 문제

편집 역사 토론
수치해석 계산물리 마지막 수정: 2026-07-08 04:37:55

고유값 문제
Eigenvalue Problem
표준형$A\mathbf{x} = \lambda \mathbf{x}$
일반화형$A\mathbf{x} = \lambda B\mathbf{x}$
주요 알고리즘QR 반복, 랭초스, 아놀디, 멱승법
등장 분야모드 해석, 좌굴, 밴드 구조

1. 개요[편집]

행렬을 통과시켜도 방향이 안 바뀌는 벡터가 있다. 걔가 그 행렬의 본질이다.

고유값 문제(eigenvalue problem)는 정방행렬 AA에 대해 Ax=λxA\mathbf{x} = \lambda\mathbf{x}를 만족하는 스칼라 λ\lambda(고유값, eigenvalue)와 영벡터가 아닌 벡터 x\mathbf{x}(고유벡터, eigenvector)를 찾는 문제다. 기하학적으로 고유벡터는 선형변환 AA를 가해도 방향이 바뀌지 않고 오직 λ\lambda배만큼 늘어나거나 줄어드는 특별한 방향이며, 고유값은 그 배율이다. 이 단순한 정의가 모드 해석, 좌굴, 밴드 구조 계산, 주성분 분석, 양자역학의 에너지 준위까지 온갖 시뮬레이션 문제의 심장에 자리한다.

수학적으로는 특성방정식 det(AλI)=0\det(A - \lambda I) = 0의 근이 고유값이다. 하지만 이 다항식을 손으로 푸는 건 4×4만 넘어가도 지옥이라1, 실무에서는 전적으로 수치 알고리즘에 맡긴다. “고유값은 신에게 맡긴다”는 짤이 괜히 나온 게 아니다.

2. 표준 고유값 문제와 일반화 고유값 문제[편집]

가장 기본형은 표준 고유값 문제다.

Ax=λxA\mathbf{x} = \lambda \mathbf{x}

그런데 유한요소법 기반 구조해석에서는 두 개의 행렬이 등장하는 일반화 고유값 문제(generalized eigenvalue problem)를 만난다.

Ax=λBxA\mathbf{x} = \lambda B\mathbf{x}

진동 모드 해석에서는 AA강성행렬 KK, BB가 질량행렬 MM이 되어 Kϕ=ω2MϕK\boldsymbol{\phi} = \omega^2 M \boldsymbol{\phi} 형태로 나타난다. 여기서 고유값 λ=ω2\lambda = \omega^2은 고유진동수의 제곱, 고유벡터 ϕ\boldsymbol{\phi}는 진동 모드 형상이다. 만약 BB가 대칭 양정치라면 콜레스키 분해로 표준형으로 변환할 수 있지만, 실무 솔버는 대개 일반화형을 직접 다루는 알고리즘을 쓴다.

대칭 행렬의 고유값은 항상 실수이고 고유벡터는 서로 직교한다. 구조·양자 문제의 행렬이 대부분 대칭(에르미트)인 것은 축복인데, 덕분에 안정적이고 빠른 전용 알고리즘을 쓸 수 있다.

3. 알고리즘: QR 반복부터 랭초스까지[편집]

고유값을 구하는 수치 방법은 크게 조밀행렬용과 희소행렬용으로 나뉜다.

QR 알고리즘은 조밀행렬의 모든 고유값을 구하는 표준 도구다. 행렬을 QR 분해하고 순서를 뒤집어 곱하는 Ak+1=RkQkA_{k+1} = R_k Q_k를 반복하면, 행렬이 점점 상삼각(대칭이면 대각) 형태로 수렴하며 대각 성분에 고유값이 드러난다. 실전에서는 먼저 헤센베르크(또는 삼중대각) 형태로 변환한 뒤 시프트를 걸어 수렴을 가속한다. LAPACK이 이걸 극도로 최적화해 놨기 때문에, 수천 차원까지는 그냥 라이브러리를 부르면 끝난다2.

희소행렬에서 고유값 몇 개만 필요할 때는 크리로프 부분공간법 계열이 답이다.

  • 멱승법(power iteration): xk+1=Axk/Axk\mathbf{x}_{k+1} = A\mathbf{x}_k / \|A\mathbf{x}_k\|를 반복하면 절댓값이 가장 큰 고유값의 고유벡터로 수렴한다. 구글의 초기 페이지랭크가 바로 이 원리였다.
  • 랭초스(Lanczos) 알고리즘: 대칭(에르미트) 행렬 전용. 크리로프 부분공간을 만들며 원 행렬을 작은 삼중대각 행렬로 사영해, 극단 고유값 몇 개를 빠르게 뽑는다. 밴드 구조 계산과 대규모 진동 해석의 주력.
  • 아놀디(Arnoldi) 알고리즘: 비대칭 행렬용 일반화. 유명한 ARPACK 라이브러리의 심장이며, 유동 안정성 해석 등에 쓰인다.

행렬 전체를 다루지 않고 “행렬 곱 AvA\mathbf{v}만 계산할 수 있으면 된다”는 점이 크리로프 방법의 강력함이다. 수백만 차원 희소행렬에서 저주파 모드 몇 개만 뽑는 문제가 이 방식으로 실용화된다.

4. 어디서 튀어나오는가: 모드·좌굴·밴드구조[편집]

고유값 문제가 특히 자주 출몰하는 세 현장이 있다.

진동 모드 해석: 구조물이 스스로 진동하려는 고유진동수와 그 모양(모드 형상)을 Kϕ=ω2MϕK\boldsymbol{\phi} = \omega^2 M\boldsymbol{\phi}의 고유값·고유벡터로 얻는다. 외력 주파수가 고유진동수에 근접하면 공진이 일어나 구조물이 박살 나므로, 설계 단계에서 반드시 확인한다. 타코마 다리 붕괴가 교과서적 반면교사다3.

좌굴 해석: 압축 하중을 받는 기둥·판이 어느 순간 갑자기 옆으로 휘어 무너지는 좌굴 임계하중은 (K+λKG)ϕ=0(K + \lambda K_G)\boldsymbol{\phi} = 0 형태의 일반화 고유값 문제로 구한다. 여기서 KGK_G는 기하강성행렬, 최소 고유값 λ\lambda가 좌굴 안전계수, 고유벡터가 좌굴 모드 형상이다.

밴드 구조 계산: 결정 속 전자의 에너지 준위는 주기적 퍼텐셜에 대한 슈뢰딩거 방정식을 이산화한 일반화 고유값 문제 Hψ=ESψH\psi = E S\psi로 얻는다. 각 파수벡터 k\mathbf{k}마다 고유값을 풀어 에너지-운동량 관계를 그린 것이 밴드 구조이며, 반도체가 도체인지 절연체인지가 여기서 판가름 난다. 밀도범함수이론 계산의 알맹이가 바로 이 고유값 문제 반복이다.

5. 조건수와 수치적 주의사항[편집]

고유값 문제는 순진하게 접근하면 배신당하기 쉽다. 특히 다음에 유의해야 한다.

  • 특성방정식을 직접 풀지 마라. 다항식 근 찾기는 수치적으로 극도로 불안정하다(윌킨슨의 악명 높은 다항식 예제가 이를 증명한다). 반드시 QR·랭초스 같은 반복법을 쓴다.
  • 결함행렬(defective matrix). 고유값이 중복되면 고유벡터가 부족해 대각화가 불가능하고, 이 경우 조르당 표준형을 써야 한다. 비대칭 문제에서 이런 함정이 도사린다.
  • 조건수. 비대칭 행렬은 고유값이 입력 섭동에 민감할 수 있어, 작은 수치 오차가 고유값을 크게 흔든다. 대칭 문제가 훨씬 얌전한 것은 이 때문이다.
  • 수렴 판정. 크리로프 방법은 요구하는 고유값 개수와 전처리기, 재시작 전략에 따라 성능이 천차만별이다. ARPACK의 shift-invert 모드가 내부 고유값을 뽑는 표준 트릭이다.

6. 관련 문서[편집]

7. Footnotes[편집]

  1. 5차 이상 다항식은 근의 공식이 존재하지 않는다(아벨-루피니 정리). 즉 5×5 행렬부터는 고유값을 유한 번의 사칙연산과 거듭제곱근으로 표현하는 것 자체가 원리적으로 불가능하다. 반복법이 선택이 아니라 필연인 이유.

  2. numpy.linalg.eig 한 줄이 사실은 수십 년간 다져진 LAPACK의 dgeev/dsyev를 부르는 것이다. 이 한 줄 뒤에 하우스홀더 변환과 시프트 QR과 발라스 스케일링이 숨어 있다. 편함에 감사하며 살자.

  3. 흔히 공진으로만 설명되지만 실제 타코마 붕괴는 플러터(flutter)라는 유체-구조 연성 불안정에 가깝다. 그래도 “고유진동수 근처는 위험하다”는 교훈 자체는 유효하다. 학부 강의의 단골 낚시.