6.3. Systems of Differential Equations
선형대수학 글 목록
연결 강의: MIT 18.06 Linear Algebra - Lecture 23: Differential Equations and exp(At)
1. 이번 강의의 목표
이번 강의는 선형대수학을 미분방정식 시스템에 적용하는 내용이다.
다루는 문제는 다음과 같은 형태이다.
dtdu=Au
여기서 u(t)는 시간에 따라 변하는 벡터이고, A는 constant coefficient matrix이다.
즉, 여러 개의 1계 선형 미분방정식이 행렬 하나로 묶여 있는 상황이다.
지난 강의에서는 difference equation을 다뤘다.
uk+1=Auk
이 경우 해는 행렬의 거듭제곱과 연결되었다.
uk=Aku0
이번에는 continuous time이다. 그래서 거듭제곱 대신 exponential이 등장한다.
u(t)=eAtu(0)
핵심은 이 행렬지수 eAt를 eigenvalues와 eigenvectors로 이해하는 것이다.
2. Constant coefficient linear system
미분방정식 시스템을 다음처럼 쓴다.
dtdu=Au
여기서 u는 벡터이다.
예를 들어 2×2 시스템이면,
u(t)=[u1(t)u2(t)]
이고, 행렬 A가 두 성분 u1, u2를 서로 연결한다.
일반적인 scalar differential equation에서
dtdu=au
의 해는 다음과 같다.
u(t)=eatu(0)
행렬 시스템에서도 비슷한 일이 생긴다.
다만 scalar a 대신 matrix A가 들어간다.
u(t)=eAtu(0)
이 식을 제대로 이해하려면 eigenvalues와 eigenvectors가 필요하다.
3. 예시 시스템
다음 미분방정식 시스템을 생각하자.
dtdu=Au
여기서,
A=[−112−2]
이고 초기조건은 다음이다.
u(0)=[10]
즉, 처음에는 모든 양이 첫 번째 성분 u1에 들어 있다.
시간이 지나면 u1에서 u2로 흐름이 이동한다. 왜냐하면 두 번째 방정식에는 +u1 항이 있어서 u1이 존재하면 u2가 증가하기 때문이다.
이제 이 시스템을 eigenvalues와 eigenvectors로 풀어보자.
4. Eigenvalues 찾기
먼저 행렬 A의 eigenvalues를 구한다.
A=[−112−2]
이 행렬은 singular matrix이다.
두 번째 column이 첫 번째 column의 −2배이기 때문이다.
따라서 determinant가 0이고, eigenvalue 중 하나는 0이다.
λ1=0
다른 eigenvalue는 trace로 알 수 있다.
trace는 대각성분의 합이다.
tr(A)=−1+(−2)=−3
eigenvalues의 합은 trace와 같으므로,
λ1+λ2=−3
λ1=0이므로,
λ2=−3
이다.
직접 characteristic polynomial을 계산해도 같다.
A−λI=[−1−λ12−2−λ]
따라서,
det(A−λI)=(−1−λ)(−2−λ)−2
전개하면,
det(A−λI)=λ2+3λ
즉,
λ(λ+3)=0
이다.
따라서 eigenvalues는 다음과 같다.
λ1=0,λ2=−3
5. Eigenvectors 찾기
5.1 λ1=0의 eigenvector
λ1=0에 대응하는 eigenvector는 A의 nullspace에 있다.
즉,
Ax1=0
을 푼다.
[−112−2][x1x2]=0
첫 번째 방정식은 다음이다.
−x1+2x2=0
따라서,
x1=2x2
x2=1로 두면,
x1=[21]
이다.
즉,
A[21]=0
이므로 λ=0의 eigenvector는 [2 1]T이다.
5.2 λ2=−3의 eigenvector
이번에는 λ2=−3이다.
eigenvector는 다음 nullspace에 있다.
(A−λ2I)x2=0
λ2=−3이므로,
A−λ2I=A+3I
따라서,
A+3I=[2121]
이 행렬의 nullspace를 구하면 된다.
[2121][x1x2]=0
방정식은 x1+x2=0이다.
따라서 대표 eigenvector를 다음처럼 잡을 수 있다.
x2=[1−1]
실제로,
A[1−1]=−3[1−1]
이다.
6. 순수 exponential 해
미분방정식
dtdu=Au
에서 A의 eigenpair가
Ax=λx
라면 다음 함수는 해가 된다.
u(t)=eλtx
직접 확인해보자.
왼쪽은 시간 미분이다.
dtd(eλtx)=λeλtx
오른쪽은 A를 곱한 것이다.
A(eλtx)=eλtAx
Ax=λx이므로,
A(eλtx)=eλtλx=λeλtx
왼쪽과 오른쪽이 같으므로,
u(t)=eλtx
는 미분방정식의 해이다.
7. 일반해
eigenvectors가 충분히 있으면 일반해는 순수 exponential 해들의 선형결합이다.
이번 예시에서는 eigenvalues와 eigenvectors가 다음이었다.
λ1=0,x1=[21]
λ2=−3,x2=[1−1]
따라서 일반해는 다음과 같다.
u(t)=c1e0t[21]+c2e−3t[1−1]
e0t=1이므로,
u(t)=c1[21]+c2e−3t[1−1]
이다.
첫 번째 항은 시간에 따라 변하지 않는 steady part이다.
두 번째 항은 e−3t가 곱해져 있으므로 시간이 지날수록 사라진다.
8. 초기조건으로 계수 구하기
초기조건은 다음이었다.
u(0)=[10]
t=0을 일반해에 대입하면,
u(0)=c1[21]+c2[1−1]
따라서,
c1[21]+c2[1−1]=[10]
두 계수를 직접 찾으면 된다.
만약 c1=c2=1이면,
[21]+[1−1]=[30]
우리는 [1 0]T를 원하므로 둘 다 31로 줄이면 된다.
c1=31,c2=31
따라서 해는 다음과 같다.
u(t)=31[21]+31e−3t[1−1]
성분별로 쓰면,
u(t)=[32+31e−3t31−31e−3t]
이다.
9. Steady state
시간이 무한히 커지면,
e−3t→0
이다.
따라서 두 번째 항은 사라진다.
남는 것은 첫 번째 항이다.
u(∞)=31[21]=[3231]
즉, 처음에는 모든 양이 u1에 있었지만, 시간이 지나면 최종적으로 u1에 32, u2에 31이 남는다.
이 steady state가 생긴 이유는 eigenvalue 0이 있기 때문이다.
λ=0이면,
e0t=1
이므로 그 성분은 사라지지 않고 계속 남는다.
10. 안정성 판단
미분방정식 시스템에서 안정성은 eigenvalues의 real part로 결정된다.
해는 eigenvalue마다 다음 형태의 항을 가진다.
eλtx
따라서 t→∞일 때 이 항이 어떻게 되는지는 λ에 달려 있다.
10.1 모든 해가 0으로 가는 경우
모든 eigenvalue의 real part가 음수이면,
Re(λi)<0for all i
모든 exponential term이 0으로 간다.
eλit→0
따라서,
u(t)→0
이다.
이 경우 시스템은 stable하다고 볼 수 있다.
10.2 steady state가 생기는 경우
eigenvalue 중 하나가 0이고, 나머지 eigenvalues의 real part가 음수이면 steady state가 생긴다.
즉,
λ1=0
이고,
Re(λi)<0(i≥2)
이면 0 eigenvalue에 대응하는 성분만 남는다.
이번 예시가 바로 이 경우이다.
10.3 blow up하는 경우
어떤 eigenvalue라도 real part가 양수이면 그 항은 커진다.
Re(λ)>0⟹eλt→∞
따라서 초기조건이 그 eigenvector 방향 성분을 조금이라도 가지고 있으면 해는 blow up한다.
11. Complex eigenvalue의 경우
eigenvalue가 complex number일 수도 있다.
예를 들어,
λ=−3+6i
라고 하자.
그러면 exponential term은 다음이다.
eλt=e(−3+6i)t
이를 나누면,
e(−3+6i)t=e−3te6it
여기서 e6it는 Euler formula에 의해 다음과 같다.
e6it=cos(6t)+isin(6t)
이 값의 크기는 항상 1이다.
∣e6it∣=1
따라서 크기를 줄이거나 키우는 역할은 e−3t가 담당한다.
즉, stability를 결정하는 것은 eigenvalue의 real part이다.
Re(λ)=−3
imaginary part는 진동을 만든다.
real part는 증가 또는 감소를 결정한다.
12. −A로 바꾸면 무슨 일이 생기는가
만약 행렬 A의 부호를 모두 바꿔 −A를 만들면 eigenvalues도 모두 부호가 바뀐다.
Ax=λx
이면,
(−A)x=−λx
이다.
이번 예시에서 A의 eigenvalues는 다음이었다.
0,−3
−A의 eigenvalues는 다음이 된다.
0,3
그러면 e−3t 대신 e3t가 생긴다.
e3t→∞
따라서 해는 blow up한다.
이처럼 eigenvalue의 부호는 differential equation의 장기 거동을 완전히 바꾼다.
13. 2×2 시스템의 안정성 조건
2×2 행렬
A=[acbd]
를 생각하자.
두 eigenvalues의 real part가 모두 음수이면 시스템은 stable하다.
2×2에서는 이를 trace와 determinant로 판단할 수 있다.
eigenvalues의 합은 trace이다.
λ1+λ2=tr(A)=a+d
eigenvalues의 곱은 determinant이다.
λ1λ2=det(A)=ad−bc
두 real eigenvalues가 모두 음수라면 합은 음수이고 곱은 양수이다.
따라서 안정성을 기대하려면 다음 조건이 필요하다.
tr(A)<0
det(A)>0
2×2 실수 행렬에서는 이 두 조건이 eigenvalues의 real part가 모두 음수라는 조건과 연결된다.
즉,
tr(A)<0,det(A)>0
이면 stable한 경우이다.
trace만 음수인 것은 충분하지 않다.
예를 들어 다음 행렬을 보자.
[−2001]
trace는 다음이다.
−2+1=−1
음수이다.
하지만 eigenvalues는 −2와 1이다.
양수 eigenvalue 1이 있으므로 et 항이 생기고, 해는 blow up할 수 있다.
이 행렬의 determinant는 다음이다.
(−2)(1)=−2
음수이다.
따라서 trace가 음수인 것만으로는 안정성을 보장할 수 없고, determinant 조건도 필요하다.
14. 계수 c를 찾는 단계
일반해를 쓸 때 중요한 마지막 단계는 초기조건으로 계수들을 찾는 것이다.
이번 예시에서는 다음과 같이 썼다.
u(t)=c1e0t[21]+c2e−3t[1−1]
초기조건 u(0)을 넣으면,
c1[21]+c2[1−1]=u(0)
이것은 행렬식으로 보면 다음이다.
Sc=u(0)
여기서 S는 eigenvector matrix이다.
S=[211−1]
그리고,
c=[c1c2]
이다.
즉, 초기벡터를 eigenvector basis로 표현하는 과정이 바로 계수 c를 찾는 과정이다.
15. Eigenvector basis로 시스템을 uncouple하기
미분방정식 시스템은 원래 다음과 같다.
dtdu=Au
행렬 A가 full matrix이면 u1,u2,…,un의 방정식이 서로 coupling되어 있다.
eigenvector matrix S를 사용해 변수변환을 하자.
u=Sv
그러면,
dtdu=Sdtdv
이고 오른쪽은 다음이 된다.
Au=ASv
따라서 원래 방정식은 다음처럼 바뀐다.
Sdtdv=ASv
양변에 S−1을 곱하면,
dtdv=S−1ASv
그런데,
S−1AS=Λ
이므로,
dtdv=Λv
이다.
Λ는 diagonal matrix이다.
따라서 시스템이 완전히 분리된다.
dtdv1=λ1v1
dtdv2=λ2v2
계속해서,
dtdvn=λnvn
이다.
즉, eigenvector basis에서는 coupled system이 independent scalar equations로 바뀐다.
16. Matrix exponential
이제 해를 행렬 형태로 쓰자.
분리된 시스템
dtdv=Λv
의 해는 다음이다.
v(t)=eΛtv(0)
따라서,
u(t)=Sv(t)
이고,
v(0)=S−1u(0)
이므로,
u(t)=SeΛtS−1u(0)
이 행렬
SeΛtS−1
을 eAt라고 쓴다.
즉,
eAt=SeΛtS−1
그리고 미분방정식의 해는 다음이다.
u(t)=eAtu(0)
17. eΛt는 어떻게 생겼는가
Λ는 diagonal matrix이다.
Λ=λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn
따라서 eΛt도 diagonal matrix이다.
eΛt=eλ1t0⋮00eλ2t⋮0⋯⋯⋱⋯00⋮eλnt
즉, diagonal matrix의 exponential은 각 diagonal entry에 scalar exponential을 적용한 것이다.
이것이 diagonalization을 사용하는 이유이다.
복잡한 eAt를 직접 계산하는 대신, A를 diagonalize해서 eΛt를 계산하면 된다.
18. eAt의 정의
그렇다면 행렬의 exponential은 무엇인가?
scalar exponential은 Taylor series로 정의할 수 있다.
ex=1+x+2!x2+3!x3+⋯
행렬에서도 같은 방식으로 정의한다.
eAt=I+At+2!(At)2+3!(At)3+⋯
즉,
eAt=n=0∑∞n!(At)n
여기서 scalar에서의 1은 행렬에서는 identity matrix I가 된다.
이 급수는 모든 행렬 A와 모든 시간 t에 대해 수렴한다.
그 이유는 n!이 빠르게 커지기 때문이다.
따라서 eAt는 항상 잘 정의된다.
19. Taylor series와 diagonalization 연결
A가 diagonalizable하다고 하자.
A=SΛS−1
그러면,
A2=SΛ2S−1
A3=SΛ3S−1
일반적으로,
An=SΛnS−1
이다.
이를 exponential series에 대입하면,
eAt=I+At+2!A2t2+3!A3t3+⋯
여기서 I도 다음처럼 쓸 수 있다.
I=SS−1
따라서 모든 항에서 왼쪽의 S와 오른쪽의 S−1을 묶어낼 수 있다.
eAt=S(I+Λt+2!Λ2t2+3!Λ3t3+⋯)S−1
괄호 안은 바로 eΛt이다.
따라서,
eAt=SeΛtS−1
이다.
이 공식은 A가 diagonalizable할 때 가장 깔끔하게 작동한다.
만약 A가 충분한 eigenvectors를 가지지 않으면 S−1이 존재하지 않으므로 이 diagonalization 방식은 사용할 수 없다.
20. Geometric series와 inverse matrix
강의에서는 exponential series와 함께 geometric series도 언급한다.
scalar에서 다음 급수는 잘 알려져 있다.
1+x+x2+x3+⋯=1−x1
행렬에서도 비슷하게 생각할 수 있다.
(I−At)−1=I+At+(At)2+(At)3+⋯
단, 이 급수는 항상 수렴하지 않는다.
수렴하려면 At의 eigenvalues가 절댓값 1보다 작아야 한다.
즉,
∣λi(At)∣<1
이어야 한다.
반면 exponential series는 factorial로 나누기 때문에 항상 수렴한다.
이 차이가 중요하다.
21. Differential equation의 안정성 영역
matrix exponential 공식은 안정성을 바로 보여준다.
eAt=SeΛtS−1
S와 S−1은 고정되어 있다.
따라서 t→∞에서의 behavior는 eΛt가 결정한다.
eΛt=eλ1t0⋮00eλ2t⋮0⋯⋯⋱⋯00⋮eλnt
각 항이 0으로 가려면 모든 eigenvalue의 real part가 음수여야 한다.
Re(λi)<0for all i
즉, differential equation에서 stability region은 complex plane의 left half-plane이다.
Re(λ)<0
이것은 discrete system의 안정성과 다르다.
difference equation
uk+1=Auk
에서는 안정 조건이 다음이었다.
∣λ∣<1
즉, eigenvalues가 unit circle 안에 있어야 한다.
정리하면 다음과 같다.
- discrete time: ∣λ∣<1
- continuous time: Re(λ)<0
22. 2계 미분방정식을 1계 시스템으로 바꾸기
마지막 예시로 하나의 2계 미분방정식을 1계 시스템으로 바꾸는 방법을 보자.
다음 방정식을 생각하자.
y′′+by′+ky=0
이를 행렬 시스템으로 만들기 위해 새로운 벡터 u를 정의한다.
u=[y′y]
그러면,
u′=[y′′y′]
원래 방정식에서,
y′′=−by′−ky
이다.
따라서,
[y′′y′]=[−by′−kyy′]
이를 행렬곱으로 쓰면,
u′=[−b1−k0]u
즉,
u′=Au
이고,
A=[−b1−k0]
이다.
이렇게 하면 하나의 2계 scalar equation을 2×2 first-order system으로 바꿀 수 있다.
마찬가지로 5계 미분방정식도 5×5 first-order system으로 바꿀 수 있다.
첫 번째 row에는 원래 미분방정식의 계수들이 들어가고, 아래쪽 row들은 y(j)를 다음 변수로 옮기는 trivial equations가 된다.
23. 핵심 정리
이번 강의의 핵심은 다음 미분방정식 시스템을 eigenvalues와 eigenvectors로 푸는 것이다.
dtdu=Au
eigenpair
Ax=λx
가 있으면 다음은 순수 exponential solution이다.
u(t)=eλtx
eigenvectors가 충분하면 일반해는 이 순수 해들의 선형결합이다.
u(t)=c1eλ1tx1+⋯+cneλntxn
초기조건은 eigenvector matrix S를 이용해 계수 c를 정한다.
Sc=u(0)
행렬식으로 쓰면 해는 다음이다.
u(t)=eAtu(0)
그리고 A가 diagonalizable하면,
eAt=SeΛtS−1
이다.
안정성은 eigenvalue의 real part가 결정한다.
Re(λi)<0for all i
이면 모든 해가 0으로 간다.
eigenvalue 0이 있고 나머지 eigenvalues의 real part가 음수이면 steady state가 남는다.
어떤 eigenvalue라도 real part가 양수이면 blow up이 발생한다.
즉, differential equation에서 eigenvalues는 시간에 따른 성장, 감소, 진동, steady state를 결정하는 숫자이다.