본문 바로가기

선형대수학

[Linear Algebra] Lecture 23, 미분방정식(Differential equiations)과 exp(At)

Introduction

이번에 선형대수를 공부하면서 내용을 정리해보았습니다.

강의 영상 : https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/

 

Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare

This section contains a complete set of video lectures on linear algebra along with transcripts and related resource files.

ocw.mit.edu

스터디 github : https://github.com/jwkweon/study-linear-algebra

 

GitHub - jwkweon/study-linear-algebra

Contribute to jwkweon/study-linear-algebra development by creating an account on GitHub.

github.com

참고한 블로그 :

https://blog.naver.com/PostView.naver?blogId=skkong89&logNo=221390722366&categoryNo=48&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postList&userTopListOpen=true&userTopListCount=30&userTopListManageOpen=false&userTopListCurrentPage=1 

 

Lecture 23: Differential equations and exp(At)

Lecture 23: Differential equations and exp(At) (2018-07-03) - 그래서 이 섹션은 일차, 일차 도함수,...

blog.naver.com

https://twlab.tistory.com/50

 

[Linear Algebra] Lecture 23-(1) 미분방정식과 선형대수(Differential equations and Linear algebra)

이번에 포스팅할 내용은 미분방정식(Differential equation)을 선형대수를 이용하여 푸는 방법이다. 이번 포스팅의 내용을 이해하기 위해선 고유값/고유벡터 강의와 대각화(Diagonalization)내용을 먼저

twlab.tistory.com

 

(제가 이해하기 쉽게 요약해서 적었으므로 좀더 자세히 공부하고싶다면 위 블로그를 참고하시면 됩니다.)


미분방정식과 선형대수

이번 Lecture는 일차 도함수, 상수 계수 선형 방정식(constant coefficient linear quations)의 시스템을 푸는 방법에 대한 내용이다.

상수 계수 선형방정식에 대한 solution은 지수형태(exponentials)가 된다는 것이다.

이전 강의에서는 powers(제곱승)으로 계산하였는데 이제는 exponential(지수)이고 이것은 미분 방정식에서 자연스러운 일이다.

 

먼저 예제로 봐보자. 여기서는 상미분방정식만 다룬다.

$$ \frac{du_1}{dt} = - u_1 + 2 u_2 $$

$$ \frac{du_2}{dt} = u_1 - 2 u_2 $$

위와 같은 미분방정식을 다음과 같이 행렬로 표현이 가능하다.

$$ \frac{du}{dt} = Au $$

마찬가지로 $u_1$과 $u_2$는 식에서 서로 관계가 있기 때문에 다음과 같이 하나의 벡터로 표현할 수 있다.

$$ u(t)= \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} , \quad  u'(t) = \frac{du}{dt} = \begin{bmatrix} u'_1 \\ u'_2 \end{bmatrix} $$

초기값(t=0일때)은 다음과 같이 주어진다.

$$ u(0) = \begin{bmatrix} 1 \\ 0 \end{bmatrix} $$

 

이제 미분방정식을 다시 쓰면 다음과 같다.

$$ u'(t) = A u(t) $$

$$ \begin{bmatrix} u'_1 \\ u'_2 \end{bmatrix} = \begin{bmatrix} -1 & 2 \\ 1 & -2 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} $$

 

첫번째로 할일은 고유값고유벡터를 찾는것이다.

A는 특이행렬이라서 고유값중 하나는 0이 될것이고, 나머지하나는 trace로 계산하면 -3임을 쉽게 구할 수 있다.

아니면 다음 식을 통해서도 구할 수 있다.

$$ det \ \ (A - \lambda I) = \begin{vmatrix} -1- \lambda & 2 \\ 1 & -2- \lambda \end{vmatrix} = 0$$
$$ \lambda^2 + 3 \lambda =0 \longrightarrow \lambda ( \lambda + 3 ) $$

$$ \therefore \quad \lambda_1 = 0 , \quad \lambda_2 = -3 $$

 

이제 고유벡터를 구해보자.

$\lambda_1 = 0$일 때,

$$ A x_1 = 0 $$

A의 Null space 해를 구하는 식과 같다. 자세한 계산과정은 많이 했으니 생략한다.

$$ x_1 = \begin{bmatrix} 2 \\ 1 \end{bmatrix} $$

$\lambda_2 = -3 $일 때,

$$ (A +3I)x_2 = 0 $$

$$ x_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix} $$

 

이렇게 구한 고유값과 고유벡터를 활용하여 일반해인 u(t)을 구해보자.

미분방정식에 대한 일반해는 2개의 고유값을 가지고 잇기 때문에 2개의 special solution의 선형결합이 될거다.

따라서, 다음과 같이 2개의 순수한 지수 해(pure exponential solutions)가 된다.

$$ u(t) = c_1 e^{\lambda_1 t } x_1 + c_2 e^{\lambda_2 t} x_2 $$ 

 

이제 이 솔루션이 진짜로 맞는지 미분방정식에 대입해보자. 이때, 2개의 special solution중 하나만 대입해보자.

$$ \frac{du}{dt} = Au $$

$$ \rightarrow \frac{du(t)}{dt} = A u(t) $$

$$ \rightarrow \lambda_1 e^{\lambda_1 t} x_1 = A e^{\lambda_1 t } x_1 $$

$$ \rightarrow \lambda_1 x_1 = Ax_1 $$

이렇게 검토할 수 있다.

 

미분방정식의 솔루션이 이전시간에 배웠던 차분방정식의 솔루션과 비교해보면 유사하다는 것을 알 수 있다.

$$ c_1 e^{\lambda_1 t } x_1 + c_2 e^{\lambda_2 t} x_2 \simeq c_1 \lambda_1^k x_1 + c_2 \lambda_2^k x_2 $$

미분 방정식의 순수한 지수 해는 차분 방정시의 순수한 거듭제곱 해와 비슷하다.

둘다 고유값과 고유벡터의 조합으로 이루어져 있다.

차이는 t는 연속적(cotinuous)이고, k는 이산적(discrete)이다.

 

이제, 우리는 고유값과 고유벡터를 구했으니 마지막 계수인 $c_1$과 $c_2$를 구하면된다.

이들은 초기값을 통해 구할 수 있다.

$$ u(t) = c_1 \begin{bmatrix} 2 \\ 1 \end{bmatrix} + c_2 e^{-3t} \begin{bmatrix} 1 \\ -1 \end{bmatrix} $$

$t=0$에서 $u(0)= \begin{bmatrix} 1 \\ 0 \end{bmatrix} $

$$ \begin{bmatrix} 1 \\ 0 \end{bmatrix} = c_1 \begin{bmatrix} 2 \\ 1 \end{bmatrix} + c_2 \begin{bmatrix} 1 \\  -1 \end{bmatrix} $$

$$ \therefore \quad c_1 = \frac{1}{3}, \quad c_2 =  \frac{1}{3} $$

 

$$ u(t) = \frac{1}{3} \begin{bmatrix} 2 \\ 1 \end{bmatrix} + \frac{1}{3} e^{-3t} \begin{bmatrix} 1 \\ -1 \end{bmatrix} $$

이제 이렇게 구한 미분방정식이 시간이 지나면 어떻게 되는지 알아보자.

시간이 무한대로 지났을 때 즉, $t=\infty$를 대입해보자.

$$ u( \infty ) = \frac{1}{3} \begin{bmatrix} 2 \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{2}{3} \\ \frac{1}{3} \end{bmatrix}$$

여기에는 흐름이 있는데 처음에 $u(0)= \begin{bmatrix} 1 \\ 0 \end{bmatrix}$에서 시작했는데 시간이 지남에 따라 첫번째 성분인 1의 일정 부분이 두번째 성분인 0으로 일부 이동해서 $ u(\infty)= \begin{bmatrix} \frac{2}{3} \\ \frac{1}{3} \end{bmatrix}$가 된 것이다.

그리고 이렇게 얻은 해를통해 직관을 얻을 수 있는데, 시간이 지날수록 정상상태(Steady state)로 수렴하는걸 알 수 있다.

 

Steady state는 어떤 값으로 수렴하는 상태이다.

Stability는 시간이 지날수록 0으로 수렴하는 상태이다.

Blow up은 시간이 지날수록 $\infty$로 값이 발산하는 상태이다.

 

그렇다면 언제 우리는 안전성(Stability)를 얻게 될까? 다음을 만족하면 된다.

$$ u(t) \rightarrow 0 $$

그렇다면 일반해의 지수성분은 다음을 만족해야한다.

$$ | e^{\lambda t} | \rightarrow  0 $$ 

이걸 또 만족하기 위해서는 고유값($\lambda$)은 음수여야 한다.

그런데 만일, 고유값이 복소수라면??

$$ | e^{(-3+6i)t}| $$

$$ = |e^{-3t}| |e^{6it}| $$

이렇게 실수부(real part) 와 허수부(imaginary part)로 나눌 수 있고 참고로 허수부인 $ |e^{6it}|=1$이 된다.

(오일러 공식에 의해서)

따라서, 고유값이 복소수일 때는 오직 실수부(real part) $ |e^{-3t}|$에 의해서 수렴할지 발산할지 정해진다.

(여기서는 실수부의 고유값이 음수여서 0으로 수렴하여 안정성을 얻게된다)

정리하면 다음과 같다.

 

Stability는 다음을 만족하면 된다.

$$ \rm 모든 \ \ 람다의 \ \ 실수 \ \ 부분이 \ \ 0보다 \ \ 작아야 \ \ 0으로 \ \ 수렴한다. $$

$$ All \ \ Re \{ \lambda \} <0 $$

 

 

Steady state는 다음을 만족하면 된다.

$$ \rm 고유값 \ \ 1개는 \ \ 0이고, \ \ 다른 \ \ 모든 \ \ 고유값의 \ \ 실수부분은 \ \ 음수여야 \ \ 특정값으로 \ \ 수렴한다. $$

$$ \lambda_1 = 0 \ \ and \ \ other \ \ Re\{ \lambda \} < 0 $$

 

 

Blow up은 다음을 만족하면 된다.

$$ \rm 고유값 \ \ 하나라도 \ \ 실수부분이 \ \ 양수면 \ \ 발산한다. $$

$$ if \ \ any \ \ Re \{ \lambda \} > 0 $$

 

만약에, 2x2의 다음과 같은 행렬이 stability 하다고 해보자.

$$ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} $$

여기서 알 수 있는건 고유값이 모두 음수라는 것이다.

따라서, 2개의 고유값의 합인 trace도 음수가 된다

$$ Re\{ \lambda_1 \} < 0 , \quad Re \{ \lambda_2 \} <0 $$

$$ trace \ \ a+d = \lambda_1 + \lambda_2 <0 $$

만약, trace 식에서 고유값이 복소수라면 허수부분이 켤레복소수여서 서로더하면 사라질 것이다.

(예를들어, +6i, -6i면 서로 더해져서 허수부분은 사라짐)

 

그렇다면 음수의 trace라는 조건 하나로 행렬이 stable할까?

정답은 아니다.

어떤 행렬이 음수의 trace를 가지면서 stable하지 않을까?

$$ \begin{bmatrix} -2 & 0 \\ 0 & 1 \end{bmatrix} $$

위 행렬의 trace는 음수이지만, 고유값은 -2, 1이다.

고유값 +1은 blow-up factor(발산하는 요소)고 고유값 -2는 decaying factor(감쇠하는 요소)이다.

($e^{+1t}$가 발산함)

따라서, 고유값 +1때문에 행렬은 stable하지 않게되고 발산한다.

 

결국 다른조건이 하나더 필요한데,

고유값 2개가 음수면 고유값의 곱인 행렬식은 양수가 될 것이다.

 

따라서, 2x2에서 고유값을 계산하지 않고도 stability를 알아보려면 다음 두 조건을 만족해야한다.

1. trace는 음수가 된다. (2개의 음수 고유값의 합이 trace)

2. 행렬식은 양수가 된다. (2개의 음수 고유값의 곱이 행렬식)

 

이번에는 $c_1$, $c_2$를 찾는 과정에서 나온 방정식에 집중해보자.

$$ c_1 \begin{bmatrix} 2 \\ 1 \end{bmatrix} + c_2 \begin{bmatrix} 1 \\  -1 \end{bmatrix} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}$$

이 방정식의 행렬 형태는 다음과 같고, 방정식 시스템(system of equations)가 된다.

$$ \begin{bmatrix} 2 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} $$

여기서 나온 행렬을 잘 보면 행렬은 고유벡터로 이루어져 있다. 그리고 고유벡터로 이루어진 행렬 S라고 불렀다.

따라서, 위의 방정식 시스템을 다음과 같이 표현할 수 있다.

$$ Sc = u(0) $$

이 식을 통해 계수를 찾을 수 있고, 이 식에서 구한 해(즉, c)는 각각의 순수한 지수(pure exponentials)가 어느 정도인지를 나타내게 된다.

 

 

 

계속 다루던 미분방정식을 봐보자.

$$ \frac{du}{dt} = Au $$

이 식에서 행렬 A는 벡터 u와 미분값 u'을 연결시키는(couple) 역할을 한다.

우리는 행렬 A의 고유값과 고유벡터를 구하여 지수함수로 이루어진 일반해를 구해냈다.

일반해는 각각의 상수와 고유값, 그리고 고유벡터들로 이루어진 식이며, 선형조합의 형태로 분리되어 있다.

즉, 기존의 행렬 A가 고유값/고유벡터에 의해서 분리(uncouple)가 되는 것이다.

이번에는 일반해를 S와 람다(고유값) 관점으로 다시 적어보자.

$$ u(t) = c_1 e^{\lambda_1 t } x_1 + c_2 e^{\lambda_2 t} x_2 $$ 

이 식을 행렬 형태로보면,

$$ \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} = \begin{bmatrix} | & | \\ x_1 & x_2 \\ | & | \end{bmatrix} \begin{bmatrix} c_1 e^{\lambda_1 t} \\ c_2 e^{\lambda_2 t} \end{bmatrix} $$

따라서, 고유벡터 행렬을 S, u' 벡터를 v라 하면, 다음과 같다.

$$ u = S v $$

이것을 미분방정식 $ \frac{du}{dt} = Au $에 대입해보자.

$$ S \frac{dv}{dt} = ASv $$

S는 t에관한 식이 아니기때문에 이렇게 상수취급해서 빼낼 수 있다.

$$ \frac{dv}{dt} = S^{-1} ASv $$

$$ \frac{dv}{dt} = (S^{-1} AS)v = \Lambda v $$

이렇게 $\Lambda$행렬 즉, 고유값으로 구성된 대각행렬이 나오게 된다.

만일, 내가 고유벡터를 기저(basis)로 사용한다면, 방정식에 대한 시스템은 그냥 대각화가 된다는 것이다.

 

이 식을 2x2의 식으로 본다면 다음과 같은 행렬식이 된다.

$$ \frac{dv}{dt} = \Lambda v $$

$$ \begin{bmatrix} v'_1 \\ v'_2 \end{bmatrix} = \begin{bmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} $$

$$ \frac{dv_1}{dt} = \lambda_1 v_1  , \quad \frac{dv_2}{dt} = \lambda_2 v_2 $$

$$ \frac{d(c_1 e^{\lambda_1 t})}{dt} = \lambda_1 v_1  , \quad \frac{d(c_2 e^{\lambda_1 t})}{dt} = \lambda_2 v_2 $$

 

결국, 우리가 구하려는 것은 u=Sv이고 여기서 v를 구하면된다.

마찬가지로 v도 새로운 미분방정식이고 이것의 해는 지수함수형태가 될 것이다.

$$ \frac{dv}{dt} = \Lambda v $$

$$ v = C e^{\Lambda t} $$

여기서 초기값(t=0)은 다음과 같다.

$$ v(0) = \begin{bmatrix} c_1 e^{\lambda_1 0} \\ c_2 e^{\lambda_2 0 } \end{bmatrix} = \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} $$

따라서, 초기값을 위 식에 대입하면 v(0)=C임을 알 수있고 다시 식을 정리하면 다음과 같다.

$$ v(t) = e^{\Lambda t} v(0) $$

이걸 이제 u=Sv에 대입하자.

$$ u(t) = Sv(t) $$

$$ u(t) = S e^{\Lambda t} v(0) $$

t=0을 대입하여 초기값을 고려하자.

$$ u(0) = S e^0 v(0) $$

양변에 $S^{-1}$을 곱하면,

$$ v(0) = S^{-1} u(0) $$

이걸 다시 u(t)식에 대입하자.

$$ \therefore \quad  u(t) = S e^{\Lambda t} S^{-1} u(0) $$

 

따라서, 이런식으로 행렬 A의 고유값과 고유벡터를 이용하여 A를 분해하고 지수함수를 도입하여 다변수 미분방정식의 해를 구하기 위한식을 찾아낸 것이다.

 

여기서 한번더 정리를 할 수 있다.

u(t)의 가운데 대각화된 식을 $e^{At}$라고 정의하자.

$$e^{At} = Se^{\Lambda t} S^{-1} $$

$$ u(t) = Se^{\Lambda t} S^{-1} u(0) = e^{At} u(0) $$

 

그러면 행렬의 지수 $e^{At}$가 무엇이고, 이것의 공식이 $e^{At} = Se^{\Lambda t} S^{-1} $ 올바른지 확인해보자.


행렬의 지수(Exponential of a matrix)($e^{At}$)

행렬의 지수 $e^{At}$가 무엇일까?

우리는 지수를 정의할 때 테일러 전개(Taylor expansion)라는 아이디어를 사용할 수 있다.

첫번째 테일러 전개는 다음과 같다.

$$ e^x = 1 + x + \frac{x^2}{2!}  + \frac{x^3}{3!}  + \cdots + \frac{x^n}{n!} = \sum_{n=0}^{\infty} \frac{x^n}{n!}$$ 

이것을 행렬의 지수에 적용해보자.

$$ e^{At} = 1 + (At) + \frac{(At)^2}{2!}  + \frac{(At)^3}{3!}  + \cdots + \frac{(At)^n}{n!} = \sum_{n=0}^{\infty} \frac{(At)^n}{n!}$$ 

 

두번째 사용할 테일러 전개는 다음과 같다.

$$ (1-x)^{-1} = 1+x +x^2 +x^3 + \cdots + x^n = \sum_{n=0}^{\infty} x^n $$

(단, $|x| < 1 $)

이것을 행렬에 적용할 때 역행렬로 해석 할 수 있다. 따라서, 1을 $I$로 보고 x에 $At$를 대입하면 $I-At$의 역행렬을 얻을 수 있다.

$$ (I-At)^{-1} = I + At + (At)^2 + (At)^3 + \cdots + (At)^n = \sum_{n=0}^{\infty} (At)^n$$

(단, $|At|<1$이려면 $At$의 모든 고유값이 1보다 작아야한다)

 

위 식에서 t가 매우작다면 $t^2$, $t^3$은 엄청 작아지게 되서 거의 0에 수렴하기 때문에 무시해도 된다.

$$ (I-At)^{-1} \simeq I+At $$

 

이렇게 두개의 테일러 전개를 보았는데 첫번째 테일러 전개가 훨씬 좋은 전개이다.

왜냐하면, 첫번째 전개는 점점 더 큰 숫자(n!)로 나누고 있기 때문에 행렬 A가 무엇이 되든, t가 얼마나 크든 저급수들의 요소들은 0으로 항상 수렴하기 때문에, $e^{At}$는 완전히 정의될 수 있다.

 

두번째 테일러 전개는 At가 1보다 큰 고유값을 가지게 되면 발산하게 된다.

 

우리가 구하려는 것은 $e^{At} = Se^{\Lambda t} S^{-1} $이 만족하는지를 확인하려는 것이다.

다시, 첫번째 테일러 전개를 봐보자.

$$ e^{At} = 1 + (At) + \frac{(At)^2}{2!}  + \frac{(At)^3}{3!}  + \cdots + \frac{(At)^n}{n!} $$ 

$$ A =S \Lambda S^{-1}, \quad A^2 = S \Lambda S^{-1} S \Lambda S^{-1} = S \Lambda^2 S^{-1}, \quad \cdots $$

이것을 대입하면 다음과 같이 된다.

$$ e^{At} = SS^{-1} + S \Lambda S^{-1} t + \frac{S \Lambda^2 S^{-1} t^2}{2!} + \frac{S \Lambda^3 S^{-1} t^3} {3!} + \cdots + \frac{S \Lambda^n S^{-1} t^n}{n!} $$

S로 묶어보자.

$$ e^{At} = S \left( I + \Lambda t + \frac{\Lambda^2 t^2}{2!} + \frac{\Lambda^3 t^3}{3!} + \cdots + \frac{\Lambda^n t^n}{n!} \right) S^{-1} $$

결국, 괄호안이 첫번째 테일러 전개가 된다.

$$ \therefore \quad e^{At} = S e^{\Lambda t} S^{-1} $$

 

그렇다면 $e^{\Lambda t}$가 무엇일까?

$\Lambda$는 각 고유값이 대각성분이 되는 대각행렬이다.

$e^{\Lambda t}$ 역시 대각행렬의 형태로 나타나고, 대각성분은 다음과 같다.

$$ e^{\Lambda t} = \begin{bmatrix} e^{\lambda_1 t } & & & \\ & e^{\lambda_2 t} & & \\ & & \ddots & \\ & & & e^{\lambda_n t} \end{bmatrix} $$

 

우리는 행렬 지수가 언제 0으로 가는지를 알아야한다.

언제 $e^{At}$는 t가 증가하면서 점점 작아질까??

$S$와 $S^{-1}$은 변하지 않는다.

그렇다면 0으로 가려면 $e^{\Lambda t}$가 점점 작아져야되고, 그렇기 위해서는 모든 고유값의 실수 부분이 음수여야한다.

모든 고유값의 실부 부분이 음수여야 모든 지수들이 0으로 간다.

 

 

미분 방정식에서 stability에 대한 고유값은 복소평면에서 어디에 있어야 될까?

다음 복소평면(complex plain)을 봐보자.

고유 값의 실수 부분이 음수여야 되니깐 평면의 왼쪽 절반이 된다.

행렬의 거듭제곱이 0으로 가기 위해서는 고유값의 크기가 1보다 작아야 하므로 원의 영역 안에 있어야한다.

따라서, 원의 안에 있으면서 원의 왼쪽 반원안에 있어야 stability 하다.

 

 

마지막 예제를 풀어보자.

다음과 같은 2차 미분 방정식이 있다.

$$ y'' + b y' + ky = 0 $$

벡터 u를 피보나치 수열때와 같이 동일하게 도입한다.

$$ u = \begin{bmatrix} y' \\ y \end{bmatrix} $$

그다음, 아래식도 추가한다.

$$ y' = y'$$

따라서, 다음과 같이 행렬로 이루어진 미분방정식을 만들 수 있다.

$$ u' = \begin{bmatrix} y'' \\ y' \end{bmatrix} = \begin{bmatrix} -b & -k \\ 1 & 0 \end{bmatrix} \begin{bmatrix} y' \\ y \end{bmatrix} $$

위 식에서 알 수 있는건 행렬의 첫번째 행은 계수가 되고 나머지는 사소한 방정식에 의해 1 0과 같은형태로 나타날 것이다.

이것은 n차 미분 방정식에서도 동일하게 적용된다.

이와같은 행렬을 통해 n차 order에서 first order로 가게 된다.