복습 : 행렬대각화를 이용하여 이변수 이차형식을 일변수 함수의 합으로 나타내기
지난 포스팅에서는 행렬대각화를 이용하여 복잡한 이차형식을 간단한 형태로 변환하는 방법을 알아보았습니다. 간단히 요약하면, 이변수 이차형식
$$f(x,y) = f(\vec{x}) = ax^2 + by^2 + 2cxy = \vec{x}^T A vec{x}, A = \begin{pmatrix}2a&c\\c&2b\end{pmatrix} $$
에 대해서 행렬 $A$의 고유벡터를 기저로 하는 좌표 $(x', y')$를 이용하여 위 이차형식을 표현하면,
$$f(x,y)=f(\vec{x})=f(\vec{x}')=\vec{x}'^TD\vec{x}'=\lambda _1x'^2+\lambda _2y'^2$$
와 같이 $xy$ 항이 없는 간단한 완전 제곱꼴로 나타낼 수 있음을 확인하였습니다. 아래식 처럼 변환을 하면 $x'y'$ 에 대한 항이 없기 때문에 이차형식 $f$는
$$f(x',y')=g(x')+h(y')$$
와 같이 $x'$만 변수로 갖는 함수 $g$와 $y'$만 변수로 갖는 함수 $h$의 합으로 쓸 수 있습니다.
단조화진동자(simple harmonic oscillator)의 역학
단조화진동자는 평형 상태에서 거리에 따른 복원력이 작용할 때, 입자의 운동을 뜻 합니다. 수학 이야기를 하다가 물리이야기를 갑자기 하게 되는데, 사실 이번 포스팅의 주제는 수학이 아니라 물리학입니다. 정확히는 행렬의 대각화 기법을 이용하여 복잡한(? 복잡해 보이는?) 물리 문제를 쉽게 푸는 방법을 소개할 것 입니다.
단조화진동자는 쉽게 생각해서 용수철에 매달린 문체의 움직임이라고 생각하면 됩니다. 물론 현실 세계의 용수철은 보통 역학문제에서 가정하는 이상 세계의 용수철과는 같을 수 없지만, 대부분의 용수철은 평형 상태에서 작은 변위로 진동을 한다면 근사적으로 단조화진동자라고 할 수 있습니다.
위 그림에서 처럼 질량 $m$인 물체가 용수철의 평형상태에서 $x$만큼 떨어져 있다면, 용수철이 물체에 가하는 힘은 $x$에 비례한다고 가정할 수 있습니다. 그리고 이때의 비례상수를 $k$라 놓을 수 있습니다. 따라서 뉴턴의 운동방정식은
$$m\frac{d^2x}{dt^2}=-kx$$
이 됩니다. 매우 간단한 미분방정식인데, 이 미분방정식의 일반해는
$$x(t)=A\cos \omega t+B\sin \omega t, \omega = \sqrt{\frac{k}{m}}$$
이 됨을 쉽게 알 수 있습니다. 여기서 상수 $A$와 $B$는 경계조건(초기조건)에 의해서 결정됩니다.
라그랑지 방정식을 통해서 푸는 단조화진동자
(라그랑지 역학에 대한 설명은 생략합니다. 라그랑지 역학에 대한 설명을 여기서 하려면, 분량이 너무 많아 질 뿐 아니라 다른 웹사이트에서 라그랑지 역학에 대한 설명을 쉽게 찾아 볼 수 있기 때문입니다. ko.wikipedia.org/wiki/%EB%9D%BC%EA%B7%B8%EB%9E%91%EC%A3%BC_%EC%97%AD%ED%95%99)
대학교 전공 수준에서 고전 역학을 공부했다면, 라그랑지 방정식(Lagrange equation)을 통해서 역학 문제를 푸는 과정을 공부하였을 것 입니다. 라그랑지 방정식은 라그랑지안 $L = T - V $($T$ 운동에너지, $V$ 위치에너지)로 정의된 라그랑지안에 대한 미분방정식 입니다. 뉴턴 방정식은 벡터의 방정식인데 비해, 라그랑지 방정식은 스칼라의 방정식이기 때문에 실제 문제를 세우고 계산하는 과정에서나 개념적으로나 라그랑지 방정식을 이용하여 역학 문제를 풀면 더 쉬워지는 경우가 많습니다.
위 문제를 라그랑지 방정식을 통해서 풀면, 우선 라그랑지안 $L = T - V$를 구해야 합니다. 이는 매우 간단한데,
$$L=T-V=\frac{1}{2}m(\frac{dx}{dt})^2-\frac{1}{2}kx^2$$
이 되고, 라그랑지 방정식은
$$\frac{d}{dt}(\frac{\partial L}{\partial \dot{x}})-\frac{\partial L}{\partial x}=0, \dot{x} = \frac{dx}{dt}$$
이 됩니다. $L$를 위 식에 대입하여 정리하면,
$$m\frac{d^2}{dt^2}x=-kx$$
를 얻습니다. 최종 결과는 앞에서 다룬 뉴텅 방정식 $F = ma$를 통해서 구한 것과 (당연히) 같습니다. 시스템의 자유도(degree of freedom)가 하나 밖에 없는 시스템을 다루었기 때문에 최종적으로 얻어지는 미분 방정식은 일변수 함수의 2계 미분 방정식이 됩니다.
결합진동자의 라그랑지안
결합진동자는 두 개 이상의 물체가 서로 엮여 있는 진동자를 뜻 합니다. 가장 단순한 시스템을 묘사하면
와 같이 3개의 용수철에 묶여 있는 2개의 물체의 거동입니다.
이 시스템의 거동을 해석하기 위해서 이 시스템의 라그랑지안을 구하면, 운동에너지 항은 간단하게
$$T=\frac{1}{2}m\dot{x}_1^2+\frac{1}{2}m\dot{x}_2^2$$
가 됩니다. 위치에너지 항을 구하면, 세 용수철의 위치에너지를 모두 더하면 되는데,
$$V=\frac{1}{2}kx_1^2+\frac{1}{2}k(x_2-x_1)^2+\frac{1}{2}kx_2^2$$
이 됩니다. $x_1$, $x_2$의 부호는 평형 상태에서 오른쪽으로 움직인 것이 양수가 되도록 하였습니다. 각 항 별로 맨 왼쪽, 중앙, 맨 오른쪽의 용수철에 해당하는 위치에너지 입니다. 왼쪽, 오른쪽 용수철의 위치에너지는 각각 $x_1$, $x_2$의 함수로 주어지지만, 중앙의 용수철의 위치에너지는 $x_2$와 $x_1$의 차이의 제곱 즉, $x_1$과 $x_2$에 대한 함수입니다. 시스템의 라그랑지안은 (여기서 부터는 편의를 위해서 $m$=1, $k$=1이라고 가정하도록 하겠습니다. 일반적인 상황에 대해서는 직접 해 보시면 됩니다)
$$L = T - V = \frac{1}{2}\dot{x_1}^2 + \frac{1}{2}\dot{x_2}^2 - \Big( \frac{1}{2}x_1^2 + \frac{1}{2}(x_2-x_1)^2 + \frac{1}{2}x_1^2\Big)$$
$$= \frac{1}{2}\dot{x_1}^2 + \frac{1}{2}\dot{x_2}^2 - \frac{1}{2} (2x_1^2 + 2x_2^2 - 2x_1 x_2)$$
입니다. 마지막항을 잘 살펴보면, 라그랑지안의 운동에너지는 (당연히) $x_1$과 $x_2$의 시간 미분의 제곱의 합으로 이루어져 있으며, 위치에너지항은 $x_1$과 $x_2$의 이차형식 임을 알 수 있습니다. 이차형식에 대해서는 지난 포스팅에서 알아보았는데, 지난 포스팅을 읽으신 분이시라면 당연하게도
1) 이차형식은 벡터와 행렬의 곱 형식으로 쓰면 깔끔해진다
2) 이차형식을 기술하는 행렬을 대각화하는 새로운 좌표를 쓰면 더 깔끔해진다
라는 것을 떠올리셔야 합니다! 벡터화 행렬을 이용하여 위 라그랑지안을 써 보면,
$$L = \frac{1}{2} \dot{\vec{x}}^T \dot{\vec{x}} - \frac{1}{2}\vec{x}^T \begin{pmatrix}2&-1\\-1&2\end{pmatrix} \vec{x}$$
$$= \frac{1}{2} \dot{\vec{x}}^T \begin{pmatrix}1&0\\0&1\end{pmatrix} \dot{\vec{x}} - \frac{1}{2}\vec{x}^T \begin{pmatrix}2&-1\\-1&2\end{pmatrix} \vec{x}$$
이 됩니다. 마지막 등호는 단순히 형식을 맞추기 위해서 다시 쓴 것인데, 운동에너지, 위치에너지 두 항 모두 벡터 * 행렬 * 벡터의 형태로 쓸 수 있습니다. 좀 더 abstract한 형태로 다시 쓰면,
$$L= \frac{1}{2} \dot{\vec{x}}^T M \dot{\vec{x}} - \frac{1}{2}\vec{x}^T K \vec{x}$$
입니다. 위와 같이 표현하면 자유도가 하나인 조화진동자의 라그랑지안에서 위치 $x$, 질량 $m$, 용수철 상수 $k$를 각각 벡터, 행렬, 행렬로 바꿔 쓴 것으로 볼 수 있습니다. 편의상 행렬 $M$를 "질량 행렬", 행렬 $K$를 "용수철 상수 행렬"이라고 칭하겠습니다.
라그랑지안을 "대각화"하기
라그랑지안을 "대각화" 해 보겠습니다. 라그랑지안 그 자체는 행렬이 아니라 스칼라 값이기 때문에 라그랑지안을 "대각화"한다는 것은 말이 안되고, 사실은 라그랑지안에 있는 행렬 $K$를 대각화 하는 것 입니다. 행렬 $M$은 항등행렬 (Identity matrix)이기 때문에 행렬 M에 대해서는 더이상 할 것이 없습니다. 이미 가장 다루기 좋은 형태인 항등행렬이기 때문입니다.
행렬 $K$를 대각화 하는 것은 매우 간단한데, 계산을 잘 하시는 분이라면 아마도 암산만으로도 행렬 $K$의 고유값과 고유벡터는
$$\lambda_1 = 2 + (-1) = 1, \vec{v}_1 = \frac{1}{\sqrt{2}}(1, 1)^T$$
$$\lambda_2 = 2 - (-1) = 3, \vec{v}_3 = \frac{1}{\sqrt{2}}(-1, 1)^T$$
이 됨을 알 수 있습니다. 따라서 지난 포스팅에서 처럼 고유 벡터를 기저로 하는 변환된 좌표 공간,
$$\eta_1 = \frac{1}{2} (x_1 + x_2)$$
$$\eta_2 = \frac{1}{2} (-x_1 + x_2)$$
$$\vec{\eta} = P^{-1}\vec{x} = \frac{1}{\sqrt{2}} \begin{pmatrix}1&-1\\1&1\end{pmatrix}\vec{x}$$
$$\vec{x} = P \vec{\eta}$$
의 관계식을 이용하여 라그랑지안을 $\eta$ 의 좌표 공간에서 표현하면,
$$L(\eta_1,\eta_2) = L(\vec{\eta}) = \frac{1}{2} (P \dot {\vec{\eta}})^T (P \dot {\vec{\eta}}) - \frac{1}{2} (P \vec{\eta})^T K (P \vec{\eta})$$
$$=\frac{1}{2} \dot {\vec{\eta}}^T P^T P \dot {\vec{\eta}} - \frac{1}{2} \vec{\eta}^T P^{T}K P \vec{\eta}$$
$$=\frac{1}{2} \dot {\vec{\eta}}^T \dot {\vec{\eta}} - \frac{1}{2} \vec{\eta}^T D \vec{\eta}$$
$$=\frac{1}{2} \begin{pmatrix}\dot{\eta}_1^2\\\dot{\eta}_1^2\end{pmatrix} - \frac{1}{2} \begin{pmatrix}\eta_1&\eta_2\end{pmatrix} \begin{pmatrix}\lambda_1&0\\0&\lambda_2\end{pmatrix} \begin{pmatrix}\eta_1\\\eta_2\end{pmatrix}$$
$$=\Big(\frac{1}{2}\dot{\eta}_1^2 - \frac{1}{2}\lambda_1 \eta_1^2\Big) + \Big(\frac{1}{2}\dot{\eta}_2^2 - \frac{1}{2}\lambda_2 \eta_2^2\Big)$$
$$=L(\eta_1) + L(\eta_2)$$
가 됩니다.
결과적으로, 원래 좌표공간 $x_1$, $x_2$에서의 라그랑지안은 $x_1x_2$ 와 같이 자유도 $x_1$과 자유도 $x_2$의 곱에 비례하는 항이 있었는데, 좌표 공간 변환을 통해서 $\eta_1, \eta_2$로 표현되는 좌표공간에서는 $\eta_1 \eta_2$ 와 같이 두 자유도가 곱해지는 항이 사라지게 됩니다. 즉, 라그랑지안은 서로 다른 두 자유도만의 라그랑지안의 합으로 표현이 됩니다.
자유도별로 분리된 라그랑지안 문제 풀기
각 자유도에 대한 라그랑지 방정식을 구하면,
$$\frac{d^2 \eta_1}{dt^2} = \lambda_1 \eta_1 = \eta_1$$
$$\frac{d^2 \eta_2}{dt^2} = \lambda_2 \eta_2 = 3 \eta_2$$
를 얻을 수 있고, 이는 단조화진동자의 운동방정식에서 나오는 미분 방정식이기 때문에,
$$\eta_1(t) = A_1 \cos \sqrt{\lambda_1}t + B1 \sin \sqrt{\lambda_1}t $$
$$\eta_2(t) = A_2 \cos \sqrt{\lambda_2}t + B2 \sin \sqrt{\lambda_2}t $$
가 됨을 알 수 있습니다. 위 과정을 그림으로 요약 및 개념화 하면 아래와 같습니다.
이차형식으로 주어지는 위치에너지를 행렬대각화를 통해서 완전 제곱꼴로 변환하면, 자유도 끼리의 곱해져 있는 항을 없앨 수 있고, 이를 통해서 결합진동자를 서로 독립된 단조화진동자 2개로 만들 수 있습니다. 용수철 상수 행렬의 각 고유값은 독립된 단조화진동자의 고유진동수와 관련이 있고, 고유벡터는 결합된 진동자에서 물체의 움직이는 방향과 관련이 있습니다.
고유벡터 $(1,1)^T$과 대응되는 움직임은 두 물체가 모두 같은 방향으로 움직이는 것이며, 고유벡터 $(-1,1)^T$과 대응되는 움직임음 두 물체가 서로 다른 방향으로 움직이는 것 입니다. 고유벡터 $(1,1)^T$에 대응되는 고유값은 $1$이기 때문에, 서로 같은 방향으로 움직이는 경우의 진동수는 $1$이며, 고유벡터 $(-1,1)^T$에 해당되는 고유값은 $3$이기 때문에, 서로 다른 방향으로 움직이는 경우의 진동수는 $\sqrt{3}$ 이 됩니다.
물리적으로 생각한다면, 고유벡터 $(1,1)^T$ 에 대응되는 움직임에서는 중앙에 있는 용수철은 평형 상태의 길이에서 늘어나거나 줄어들지 않기 때문에 사실상 중앙에 용수철은 없는 것과 같고, 왼쪽 용수철에는 물체1이, 오른쪽 용수철에서는 물체2가 매달려서 진동하는 것과 같습니다. 따라서 원래 진동수와 같아 지는 것 입니다.
고유벡터 $(-1,1)^T$에 대응되는 움직임에서는 중앙에 있는 용수철은 각 용수철이 평형상태에서 벗어난 정도의 $2$배 만큼 길이가 변하게 됩니다. 물체1이 왼쪽으로 $A$만큼 움직인다면, 물체2는 오른쪽으로 $A$만큼 움직이게 되고, 이 경우에 중앙에 있는 용수철은 $2A$만큼 길이가 길어진 것 입니다. 따라서 물체1과 물체2의 각각 왼쪽, 오른쪽에 있는 용수철 뿐 아니라, 중앙에 있는 용수철이 조금 더 힘을 세게 가하게 되고 따라서 효과적인 (effective) 용수철 상수가 커졌다고 볼 수 있습니다. 정확히는 $1 \rightarrow \sqrt{3}$ 만큼 커지게 됩니다.
각 고유벡터에 대응되는 물체의 움직임을 정상 모드 (normal mode)라고 합니다. 위 과정이 시스템의 정상 모드를 구하는 방법입니다.
최종 답은 eta의 좌표가 아니라 원래 좌표였던 $x_1, x_2$이기 때문에 $\eta_1, \eta_2$의 식을 $x_1, x_2$의 식으로 돌려주어야 합니다. $\vec{x}$와 $\vec{\eta}$의 관계식은 위에 있기 때문에, 이 관계식을 이용하고 고유값 $1, 3$을 $\lambda_1, \lambda_2$의 자리에 대입하면,
$$x_1 = \frac{1}{\sqrt{2}} (A_1 \cos t + B_1 \sin t) + \frac{1}{\sqrt{2}} (A_2 \cos \sqrt{3}t + B_2 \sin \sqrt{3}t)$$
과
$$x_2 = -\frac{1}{\sqrt{2}} (A_1 \cos t + B_1 \sin t) + \frac{1}{\sqrt{2}} (A_2 \cos \sqrt{3}t + B_2 \sin \sqrt{3}t)$$
이 됩니다. 자유도가 2개이고, 각 자유도 당 초기 조건(경계조건)이 2개씩 이기 때문제 위 방정식에는 총 4개의 상수값$(A_1, A_2, B_1, B_2)$가 있습니다. 이 값들은 초기 조건이 주어진다면 구할 수 있습니다.
일반적인 경우
위 과정에서는 편의상 두 물체의 질량이 모두 같고, 질량이 1이라고 가정하였고, 세 용수철의 용수철 상수가 모두 같고, 상수는 $1$이라고 가정하였습니다. 일반적인 경우에는 두 물체의 질량이 서로 다르고, 세 용수철의 용수철 상수가 모두 다를 수 있습니다. 이 경우에는 앞에서 정의한 "질량 행렬" $M$과 "용수철 상수 행렬" $K$가 조금 복잡해 질 것 입니다. 그러나 여전히 질량 행렬은 이미 대각화가 된 행렬이고, 용수철 상수 행렬은 대칭 행렬이기 때문에, 위 논의의 과정을 그대로 적용할 수 있습니다.
물체의 질량이 서로 다르다고 한다면 질량 행렬은 일반적으로,
$$M=\begin{pmatrix}m_1&0\\0&m_2\end{pmatrix}$$
가 되고, 용수철의 용수철 상수가 서로 다르다고 한다면, 용수철 행렬은
$$K=\begin{pmatrix}2k_1&-k_2\\-k_2&2k_3\end{pmatrix}$$
이 됩니다. 왼쪽, 중앙, 오른쪽 용수철의 용수철 상수를 차례대로 $k_1$, $k_2$, $k_3$라고 하였습니다. 이 경우 라그랑지안은 벡터와 행렬를 이용하여 표현하면, 앞에서와 같이
$$L=\frac{1}{2}\dot{\vec{x}}^TM\dot{\vec{x}}-\frac{1}{2}\vec{x}^TK\vec{x}$$
가 됩니다. 용수철의 질량이 서로 다른 경우 행렬 $M$은 항등 행렬이 아닌 일반적인 대각 행렬입니다. 행렬 $M$를 항등 행렬로 만들어 주기 위해서는 각 자유도를 scaling하면 되는데,
$$\vec{x} = \frac{1}{\sqrt{M}} \vec{q}, \frac{1}{\sqrt{M}} = \begin{pmatrix}\frac{1}{\sqrt{m_1}}&0\\0&\frac{1}{\sqrt{m_2}}\end{pmatrix}$$
이 되도록 새로운 좌표 $\vec{q}$를 도입하면, 정의에 의해서,
$$T=\frac{1}{2}\dot{\vec{x}}^TM\dot{\vec{x}}=\frac{1}{2}\dot{\vec{q}}\frac{1}{\sqrt{M}}M\frac{1}{\sqrt{M}}\dot{\vec{q}}=\frac{1}{2}\dot{\vec{q}}^T\dot{\vec{q}}$$
와 같이 됩니다. 즉 $\vec{q}$ 좌표계에서는 질량 행렬이 항등행렬이 되는 것 입니다. $\vec{q}$ 좌표에서 위치에너지는
$$V = \frac{1}{2}\vec{x}^T M \vec{x} = \frac{1}{2} \vec{q}^T \frac{1}{\sqrt{M}} K \frac{1}{\sqrt{M}} \vec{q} = \frac{1}{2} \vec{q}^T \tilde{K} \vec{q}$$
가 됩니다. 즉, 원래 용수철 행렬 $K$는 새로운 용수철 행렬 $\tilde{K}$로 바뀌게 됩니다. $T$와 $V$를 구했고, 이 $T$와 $V$를 $\vec{q}$ 좌표계로 표현하면 우리가 처음에 풀었던 문제의 라그랑지안과 같은 형태가 됨을 알 수 있습니다. 이 다음 부터는 앞에서 풀었던 방식대로 $\tilde{K}$를 대각화하고, 독립된 자유도의 문제를 풀면 됩니다.
결합진동자 문제를 푸는 기본 방법을 요약하면,
1) 질량 행렬을 항등행렬로 만들어 주는 좌표변환(스케일링) $\vec{x} \rightarrow \vec{q}$ 를 찾는다.
2) 위치에너지를 $\vec{x}$ 의 함수에서 $\vec{q}$의 변수로 전환한다
3) 용수철 상수 행렬을 대각화하여, $\vec{\eta}$의 변수로 전환한다
4) $\vec{\eta}$의 함수로 쓰여진 라그랑지안은 각 $\vec{\eta}$에 대해서 독립된 형태이기 때문에, 각 독립된 $\vec{\eta}$에 대한 운동방정식을 푼다
5) $\vec{\eta}$ 좌표계에서 $\vec{x}$ 좌표계로 좌표전환을 한다
6) 초기 조건에 맞게 상수를 결정한다
입니다.
만일 물체가 3개, 용수철이 4개인 결합진동계를 푼다면 어떻게 될까요? 이 문제는 숙제로 남깁니다.
'수학' 카테고리의 다른 글
메트로폴리스-헤이스팅스 알고리듬을 활용한 분포 생성 및 이를 이용한 몬테 카를로 적분 (0) | 2021.08.15 |
---|---|
파이썬을 이용한 몬테 카를로 적분(Monte Carlo Integration) 구현 (2) | 2021.08.14 |
몬테 카를로 시뮬레이션(Monte Carlo Simulation) 의 이해 : 원주율값 구하기 (+파이썬 시뮬레이션 코드) (5) | 2021.08.12 |
[선형대수-2] 이차형식과 행렬 대각화 : 고유값에 따른 타원곡선의 결정 (8) | 2021.01.09 |
[선형대수-1] 행렬대각화 : 행렬의 고유값과 고유벡터의 기하학적 의미 (2) | 2021.01.09 |