모드 해석¶
일반화 고유값 문제¶
연속체의 자유 진동 해석을 수행하는 경우 공간적으로 이산화하고, 그림 2.3.1에 나타낸 것과 같은 집중 질점에 의한 다자유도계로 모델링한다. 감쇠가 없는 자유 진동 문제의 경우 지배 방정식(운동 방정식)은 다음과 같다.
여기서 \(u\)는 일반화 변위 벡터, \(M\)은 질량 행렬, \(K\)는 강성 행렬이다. 고유 각진동수를 \(\omega\)라 하고, \(a\), \(b\), \(c\)를 임의의 상수, \(x\)를 벡터라 하여 함수
를 정의한다. 여기서 이 식과 그 2계 미분, 즉
를 식 \(\eqref{eq:2.3.1}\)에 대입하면
가 된다. 즉,
를 얻는다.
즉, 방정식 \(\eqref{eq:2.3.5}\)를 만족하는 계수 \(\lambda = \omega^2\) 및 벡터 \(x\)를 찾을 수 있다면 함수 \(u(t)\)는 방정식 \(\eqref{eq:2.3.1}\)의 해가 된다.
계수 \(\lambda\)를 고유값, 벡터 \(x\)를 고유벡터라고 하며, 이들을 식 \(\eqref{eq:2.3.1}\)에서 구하는 문제를 일반화 고유값 문제라고 한다.

그림 2.3.1 감쇠가 없는 자유 진동 다자유도계의 예
행렬의 성질과 가정¶
앞 절에서 얻은 일반화 고유값 문제 \(K x = \lambda M x\)에 대해 이 매뉴얼에서는 다음과 같은 행렬의 성질을 가정한다. 이러한 가정은 뒤이어 설명하는 시프트 역반복법·Lanczos 법의 수렴성과 적용 범위의 전제가 된다. 즉, 복소 행렬에서는 전치 행렬이 켤레 복소수가 되고 실수 행렬에서는 대칭 행렬이다. 즉, 행렬 \(K\)의 \(ij\) 성분을 \(k_{ij}\)라 하고 \(k\)의 켤레 복소수를 \(\bar{k}\)라 하면
의 관계가 성립한다.
이 매뉴얼에서는 행렬이 대칭이고 양의 정부호라고 가정한다. 양의 정부호란 모든 고유값이 양수인 것, 다시 말해 아래 식 \(\eqref{eq:2.3.7}\)을 항상 만족하는 행렬을 뜻한다.
시프트 역반복법¶
유한요소법에 의한 구조 해석에서는 실용상 모든 고유값이 필요하지 않고, 많아야 몇 개의 낮은 차수 고유값이면 충분한 경우가 많다. HEC-MW는 대규모 문제를 다루는 것을 상정하고 있으므로 행렬의 크기가 크고 매우 희소하다(0인 요소가 많다). 따라서 이를 염두에 두고 저차 모드의 고유값을 효율적으로 구하는 것이 중요하다.
고유값의 하한을 \(\sigma\)라 할 때 식 \(\eqref{eq:2.3.5}\)을 다음과 같이 변형한다(수학적으로 동등한 식이다).
이때 계산에는 다음과 같은 유리한 성질이 있다.
- 모드 순서가 반전되어 있다.
- \(\rho\) 주변의 고유값이 최대화되어 있다.
실제 계산에서는 최대 고유값이 먼저 구해지는 경우가 많다. 따라서 주요 수렴 계산을 식 \(\eqref{eq:2.3.5}\)보다 식 \(\eqref{eq:2.3.8}\)에 적용하여 \(\rho\) 주변의 고유값부터 구하는 것을 목표로 한다. 이 기법을 시프트 역반복이라고 한다.
Lanczos 법¶
채택 이유(Jacobi 법과의 비교)¶
고전적인 방법으로는 Jacobi 법이 잘 알려져 있다.
이 방법은 행렬 크기가 작고 밀행렬일 때 효과적이다. 그러나 HEC-MW에서 다루는 행렬은 대규모이고 희소하므로 이 방법은 사용하지 않고 Lanczos 반복 해법을 채택하고 있다.
알고리즘과 특징¶
1950년대에 C. Lanczos가 제안한 이 기법은 행렬을 삼중대각화하는 계산 알고리즘이며 다음과 같은 특징을 가진다.
- 반복 수렴 해법이며 행렬을 희소한 상태로 유지하면서 계산을 진행할 수 있다.
- 알고리즘은 행렬·벡터 곱이 중심이므로 병렬화에 적합하다.
- 유한요소 메시와 관련된 기하학적 영역 분할법에 적합하다.
- 구할 고유값의 개수와 모드 범위를 한정하여 효율적으로 계산할 수 있다.
Lanczos 법은 초기 벡터에서 시작하여 순차적으로 직교 벡터를 생성하고 부분공간의 기저를 구하는 계산을 수행한다. 이 방법은 또 다른 반복 해법인 부분공간법보다 빠르다고 알려져 있으며 유한요소법 프로그램에서 널리 사용된다. 그러나 이 기법은 계산기 오차의 영향을 받기 쉬워 벡터의 직교성이 손상되고 도중에 계산이 파탄될 가능성을 피할 수 없다. 따라서 오차에 대한 대책이 필수적이다.
기하학적 의미(Krylov 부분공간)¶
식 \(\eqref{eq:2.3.8}\)을 다음과 같이 변수 변환하여
문제를 다시 쓰면
를 얻는다.
적절한 벡터 \(q_0\)에 대해 행렬 \(A\)에 의한 선형 변환을 수행한다(그림 2.3.2 참조).

그림 2.3.2 행렬 \(A\)에 의한 \(q_0\)의 선형 변환
변환된 벡터는 원래 벡터와 함께 이루는 공간 안에서 직교화된다. 즉, 그림 2.3.2와 같은 이른바 Gram-Schmidt 직교화를 수행한다. 그렇게 얻은 벡터를 \(r_1\)이라 하고 이를 정규화(길이를 1로)하여 \(q_1\)을 얻는다(그림 2.3.3). 같은 알고리즘으로 \(q_1\)에서 \(q_2\)를 얻는다. 이때 \(q_2\)는 \(q_1\), \(q_0\) 모두에 직교한다(그림 2.3.4). 같은 계산을 계속하면 서로 직교하는 벡터를 최대 행렬의 차수까지 구할 수 있다.

그림 2.3.3 \(q_0\)에 직교하는 벡터 \(q_1\)

그림 2.3.4 \(q_1\)과 \(q_0\)에 직교하는 벡터 \(q_2\)
특히 Lanczos 법의 알고리즘은 벡터열 \(A q_0\), \(A q_1\), \(A q_2\)
다시 말해 \(A q_0\), \(A^2 q_0\), \(A^3 q_0\), ,\(A^n q_0\)
에 대한 Gram-Schmidt 직교화이다. 이 벡터열을 Krylov 열이라고 하며, 이 벡터열이 생성하는 공간을 Krylov 부분공간이라고 한다. 이 공간에서 Gram-Schmidt 직교화를 수행하면 가장 최근의 두 벡터를 사용하여 벡터를 구할 수 있다. 이를 Lanczos 원리라고 한다.
삼중대각화¶
위 반복에서 i+1번째 계산은
로 나타낼 수 있다. 단,
이다. 이를 행렬 표기로 쓰면
가 된다. 여기서
이다. 즉, 식 \(\eqref{eq:2.3.13}\)에서 얻어지는 삼중대각 행렬에 대해 고유값 계산을 수행함으로써 고유값을 얻는다.