이번 강의는 1차 도함수, 상수 계수 선형 방정식의 시스템을 푸는 것에 관한 내용입니다. 핵심 아이디어는 선형 방정식의 해가 지수라는 것입니다.
- 저번 시간에는 거듭제곱을 계산했는데 이번에는 지수를 계산합니다.
어떤 양이 그 크기에 비례해서 커진다고 가정해보면 $\frac {dy}{dx} = ky$의 꼴이 나옵니다. 여기서 변수 분리를 이용해서 풀면 $y = Ce^{kx}$꼴의 지수함수가 나옵니다.
예시
인구수가 p일 때 시간에 따른 인구수 변화량에 대해 알아보려고 합니다. $\frac {dP}{dt} = kP$, 이전 인구 수와 어떤 상수를 곱하면 시간에 따른 인구 상승을 알 수 있습니다.
즉 인구 수의 변화량은 실제 인구 수와 비례합니다. 많은 인구수를 다룰 때 더 큰 비율이 적용됩니다. 이 조건들을 수식으로 표현한다면 미분방정식을 해결할 수 있습니다. 일반해를 찾기 위해서는 초기 조건과 정보들이 필요합니다. 방정식을 분해해보겠습니다.
$$\frac {dP}{dt} = kP$$
- 양변을 P로 나눕니다.
$$\frac 1 P \frac {dP}{dt} = kP \frac 1 P$$
- 양변에 dt를 곱합니다.
$$dt \frac 1 P \frac {dP}{dt} = kP \frac 1 P dt$$
$$\frac 1 P dp = kdt$$
$$\int \frac 1 P dP = \int kdt$$
$$ln |P| = kt + c$$
- $ln |P|$를 미분 시 $\frac 1 P $가 나오니 다음과 같이 바꿔줄 수 있습니다.
- $|P| = ln$ $e^P$이 되니까
$$|P| = lne^{kt + c}$$
$$e^{kt + c} = e^{kt}e^c = e^{kt}C = Ce^{kt}$$
- $e^c$는 상수항이므로 상수 C라고 표기하겠습니다.
인구수 P를 상수 C와 지수함수의 kt 제곱으로 표현할 수 있게 됐습니다. 하지만 이 값은 근삿값이므로 시간이 길어질수록 오차가 심해집니다.
- 하나의 미분방정식을 풀어봤습니다. 이제 두 개의 미분방정식을 풀어보겠습니다.
$\frac {du_1}{dt} = -u_1 + 2u_2$
$\frac {du_2}{dt} = u_1 - 2u_2$
두 개의 미분방정식을 풀기 위해서는 이 두 방정식을 행렬로 만들어줘야 합니다. ($2 \times 2$ 행렬을 얻음)
$A = \left[\begin{matrix} -1 & 2 \\ 1 & -2 \end{matrix} \right]$
이제 이 행렬의 고유값과 고유벡터를 찾아주겠습니다. 이 행렬은 특이행렬이므로 첫 번째 고유값이 0입니다. 그리고 대각 성분의 덧셈은 고유값의 덧셈과 같으므로 두 번째 고유값은 -3인 것을 알 수 있습니다.
각각의 고유값에 대한 고유벡터를 찾아보면
if $\lambda = 0$, $x_1 = \left[\begin{matrix} 2 \\ 1 \end{matrix} \right]$
if $\lambda = -3$, $x_1 = \left[\begin{matrix} 1 \\ -1 \end{matrix} \right]$
얻은 고유값과 고유벡터를 사용하여 솔루션을 만들어보겠습니다. 일반해(general solution)는 두 개의 special solution으로 나타낼 수 있으니 여기에서는 두 개의 exponential solution의 합으로 표현할 수 있습니다. (위에서 정리한 $|P| = e^{kt+c} = ce^{kt}$와 비슷함)
- 이전 시간에 $cAx$에서 A가 $e^{k}$
$u(t) = c_1e^{\lambda_1 t}x_1 + c_2e^{\lambda_2 t}x_2$
여기서 $u(t)$는 일반해가 됩니다. 이제 우리가 구한 해가 미분방정식의 해가 될 수 있는지 알아보겠습니다.
$\frac {du} {dt} = Au$에서 $u = e^{\lambda_1 t}x$를 대입해 확인해보겠습니다.
$\lambda_1 e^{\lambda_1 t}x_1 = Ae^{\lambda_1 t}x_1$
- 양쪽 $ e^{\lambda_1 t}$을 지우고 나면
$\lambda_1x_1 = Ax_1$
초기값 C를 고려하지 않고 넣어보면 다음과 같이 정리가 됩니다.
$\frac {du}{dt} = \lambda e^{\lambda t}{dt}$
이제 고유벡터를 넣고 초기 조건을 통해서 $c_1, c_2$ 알 수 있습니다.
$$u(t) = c_1 \left[\begin{matrix} 2 \\ 1 \end{matrix} \right] + c_2 e^{-3 t} \left[\begin{matrix} 1 \\ -1 \end{matrix} \right]$$
$t = 0$이면 $u(0) = \left[\begin{matrix} 1 \\ 0 \end{matrix} \right]$
$$u(0) = c_1 \left[\begin{matrix} 2 \\ 1 \end{matrix} \right] + c_2 \left[\begin{matrix} 1 \\ -1 \end{matrix} \right] = \left[\begin{matrix} 1 \\ 0 \end{matrix} \right]$$
$$ \left[\begin{matrix} -1 & 2 \\ 1 & -2 \end{matrix} \right] \left[\begin{matrix} c_1 \\ c_2 \end{matrix} \right] = \left[\begin{matrix} 1 \\ 0 \end{matrix} \right]$$
$$c_1 = \frac 1 3, c_2 = - \frac 1 3$$
이제 초기 조건의 일반해 식을 정리해보겠습니다.
$$u(t) = \frac 1 3 \left[\begin{matrix} 2 \\ 1 \end{matrix} \right] + - \frac 1 3 \left[\begin{matrix} 1 \\ -1 \end{matrix} \right]$$
이렇게 미분방정식의 일반해를 구했습니다.
1. 미분방정식을 행렬로 만듬
2. 초기 조건에 따른 초기값을 구함
3. 행렬의 고유값과 고유벡터를 구함
4. 고유벡터 행렬을 통해 계수값을 구함
5. 모든 식을 일반해 식에 대입하고 정리하여 최종적인 해를 구함
일반해를 통해서 시간에 따른 미분방정식의 값이 어떻게 변하는지 알아낼 수 있게 됬습니다. (시간을 대입하면 해당 시간의 변화율을 알 수 있음)
하지만 이 식 자체는 안정적인 상태가 아닙니다. 값에 따라 0에 수렴하거나 무한대로 발산할 수 있기 때문입니다.
Stability
$u(t) \rightarrow 0$ and $e^{\lambda t} \rightarrow 0$, 람다의 실수부는 음수여야합니다.
- 람다가 복소수인 경우 실수 부분이 음수가 아니라면 폭발하거나 수렴됩니다.
안정을 주는 방법은 방정식 값을 0으로 만들어주면 됩니다.
초기 조건과 상관없이 해는 언제 0이 될까요? (음의 고유값 or 복소수)
2번째 조건은 어떻게든 람다가 음수를 갖도록 요구합니다.
$-3 + 6i$로 예시를 들어보겠습니다.
$$e^{(-3 + 6i)t}$$
이 값의 절대값은 얼마일까요?
$$|e^{(-3 + 6i)t}| = |e^{-3t}| |e^{2it}|$$
$$|e^{2it}| = \sqrt{cos^2(2) + i sin^2(2)} = 1$$
$$e^{(-3 + 6i)t} = e^{-3t}$$
지수법칙에 의해서 허수부랑 실수부로 나누면 허수부의 크기가 오일러 법칙에 의해서 항상 1이 됩니다.
Steady state
항상 같은 방향으로 안정된 상태를 유지하는 경우는 언제일까?
$\lambda = 0 $ 이면서 $\lambda$의 실수부가 음수여야 합니다. ($Re$ $\lambda < 0$)
람다의 실수부에 의해서만 결정이 됩니다.
Blow up if any $Re$ $\lambda > 0$
만약 위에서 사용했던 A행렬의 부호를 바꾸면 고유값과 고유벡터는 어떻게 될까요?
고유값의 부호가 전부 변경되면서 무한대로 발산됩니다.(실수부가 3이 됩니다.)
- 행렬의 경우 고유값의 실수 부분이 음수인지 아닌지 알 수 있습니다.
ex) $2 \times 2$ Stability $Re$ $\lambda_1 < 0$ $Re$ $\lambda _2 < 0$
$A = \left[\begin{matrix} a & b \\ c & d \end{matrix} \right]$
trace = $a + b = \lambda_1 + \lambda_2 < 0$
다음과 같은 경우 대각 성분의 합이 람다의 합으로 이 값이 0보다 작으면 됩니다.
하지만 아직 발산하는 경우가 존재합니다.
trace < 0 (trace값이 0보다 작을 때)
- 고유값이 음수일 때
$\left[\begin{matrix} -2 & 0 \\ 0 & 1 \end{matrix} \right]$
이 행렬은 trace값이 음수이지만 양수의 고유값이 존재해서 폭발하게 됩니다.
그래서 단순히 주 대각선의 합이 0보다 작다라는 기준보다는 더 무거운 기준이 필요합니다.
- 두 고유값이 모두 음수라면 행렬식에는 어떤 변화가 생길까요? (행렬식은 두 고유값의 곱)
- 행렬식이 양수이면서 trace값이 음수면 두 고유값은 모두 음수이다. (이 조건을 주면 됨)
또 다른 방법
다시 고유벡터 행렬 S와 람다의 관점에서 솔루션을 기록해보겠습니다.
$\frac {du} {dt} = Au$
고유벡터의 요점은 결합을 해제하는 것입니다. (대각화처럼 분해)
여기서 A행렬은 du와 u를 이어주는 역할입니다.
고유벡터 행렬 S는 u를 분리시킵니다. ($u = Sv$)
$$\frac {du} {dt} = Au$$
$$S \frac {dv} {dt} = ASv$$
$$\frac {dv} {dt} = S^{-1}ASv$$
$$\frac {dv} {dt} = S^{-1}ASv = \Lambda v$$
대각화에서 배운 방법입니다. $S^{-1}AS$는 대각행렬인 람다와 같으므로 람다로 바꿔줍니다.
$$\frac {dv} {dt} = \Lambda v$$
$$\int \frac 1 v dv = \int \Lambda dt$$
$$ln |v| + C_1 = \Lambda t + C_2 $$
$$|v| = e^{\Lambda t + C_2 - C_1} = e^{\Lambda t} e^{C_2 - C_1}$$
$$v = Ce^{\Lambda t}$$
$$Since \, \, v(0) = \left[\begin{matrix} c_1e^{\lambda_1 0} \\ c_2e^{\lambda_2 0} \end{matrix} \right] = \left[\begin{matrix} c_1 \\ c_2 \end{matrix} \right]$$
$$v(t) = e^{\Lambda t}v(0)$$
- C를 v(0)로 대체, 초기값에서 우리가 원하는 t번째 값을 구할 수 있게 됬습니다.
- 이제 $v(t)$를 구했으니 $u(t)$를 구해보겠습니다.
$$v(t) = e^{\Lambda t}v(0)$$
$$u(t) = Sv(t)$$
$$u(t) = Se^{\Lambda t}v(0)$$
$$Since \, \, u(0) = Se^0v(0) = Sv(0) \, \rightarrow \, v(0) = S^{-1}u(0)$$
$$u(t) = Se^{\Lambda t}S^{-1} u(0)$$
이렇게 다변수 함수에 대한 미분방정식을 풀어봤습니다. 요약하자면
1. A로 u와 du 사이를 정의합니다.
2. t에서의 미분방정식 해를 구하기 위해서 u를 시간 t에 대한 함수 u(t)의 꼴로 정의해줍니다.
3. A의 고유값과 고유벡터를 이용하여 대각화를 진행합니다.
4. 그 후 지수함수를 적용하여 $u(t) = Se^{\Lambda t}S^{-1} u(0)$과 같이 미분방정식의 해를 구할 수 있도록 만듭니다.
테일러급수(Taylor series)
테일러급수란 어떤 함수의 특정 위치 x = a에 근사하는 방법입니다.
$f(x) = f(a) + \frac {f'(a)} {1!} (x-a) + \frac {f''(a)} {2!} (x-a)^2 + \frac {f'''(a)} {3!} (x-a)^3 + ... + + \frac {f^n(a)} {n!} (x-a)^n$
$= \sum \limits_{n = 0}^{\infty} \frac {f^n(a)} {n!}(x-a)^n$
n번 미분 가능한 어떤 함수 f(x)가 있을 때 이 함수의 특정 위치 x = a 에서의 값은 f(x)의 미분값들로 계산한 항들의 합으로 표현할 수 있습니다.
- 이때 미분차수 n의 값은 팩토리얼로 줘야 합니다.
함수 전체를 근사하는 것이 아니라 특정위치 x = a 만을 근사합니다.
$f(x) = 20x^2 - 1$ 이라면 $x = 0$ 일 때
$f(0) = -1$
$f'(0) = 0$
$f''(0) = 20$
$f(x) = f(0) + \frac {f'(0)} {1!} (x-0) + \frac {f''(0)} {2!} (x-0)^2$
$f(x) = -1 + \frac {20} {2!} (x-0)^2$
$f(x) = - 20x^2 - 1$
$f(0) = -1$
원래 함수와 비슷한 값이 나오게 됩니다. 테일러급수는 대수적 연산만으로 정확한 값을 구할 수 없고 무한에 가까운 반복 횟수를 거쳐야 정확한 값을 구할 수 있는 sin, cos, 지수함수 같은 초월함수를 구할 때 좋습니다.
이제 테일러급수를 배웠으니 행렬지수함수에 대해서 알아보겠습니다.
$e^{At}$ 이 형태가 행렬지수함수 입니다. 지수부에 행렬이 존재하는 것이 행렬지수함수 ($At$ 가 행렬, t는 시간)
$e^x = I + At + \frac {(At)^2} {2!} + \frac {(At)^3} {3!} + ... + \frac {(At)^n} {n!} = \sum \limits_{n = 0}^{\infty} \frac {(At)^n} {n!}$
정리해본다면 다음과 같습니다.
$(I - At)^{-1} = I + At + (At)^2 + (At)^3 + ... + (At)^n = \sum \limits_{n = 0}^{\infty}(At)^n$, $\forall |\lambda| < 1$
기하급수와 비슷한 꼴 $I - At$의 역행렬이니 $|x| < 1$인 것처럼 $|\lambda \, of \, At| < 1$ 다음 조건이 성립해야 합니다.
행렬지수함수는 시간이 흐를수록 0에 가까워집니다. 기하급수인 경우에는 At의 고유값이 1보다 큰 경우 발산을 합니다.
즉 고유값이 1보다 작다는 가정하에 둘을 같이 진행하면 기하급수가 더 뛰어납니다. 하지만 기하급수는 1보다 작다라는 조건이 붙어서 사용하기가 불편합니다.
'수학 > Gilbert Strang Linear Algebra' 카테고리의 다른 글
22. Diagonalization and Powers of A (0) | 2022.05.15 |
---|---|
21. Eigenvalues - Eigenvectors (0) | 2022.05.01 |
20. Cramer's Rule, Inverse Matrix, and Volume (0) | 2022.04.09 |
19. Determinant Formulas and Cofactors (0) | 2022.04.01 |
18. Properties of Determinants (0) | 2022.03.31 |