1. 행렬의 대각화(Diagonalization)
1.1 AS=SΛ,S−1AS=Λ
■ 고유방정식 Ax=λx에서 λ는 고윳값, x는 고유벡터이다.
■ 고유방정식은 행렬 A에 의해 선형변환된 Ax가 방향은 유지하면서 길이(크기)만 달라지는(즉, 스칼라배가 되는) 특수한 벡터인 고유벡터와 그때 적용되는 스칼라인(길이(크기)의 변화량을 나타내는) 고윳값 λ을 나타낸다.
■ 선형변환은 선형변환의 행렬표현인 A가 x에 적용될 때, 대부분의 벡터는 크기와 방향이 모두 달라지지만, 특별한 경우 선형변환된 Ax가 원래 벡터 x와 단지 길이(크기)가 고윳값 λ만큼 변화된 x와 평행한 벡터가 된다. 이때의 λ가 고윳값, x가 고유벡터가 된다.
■ 고윳값과 고유벡터를 알면, 선형변환의 행렬표현인 행렬 A의 특성을 알 수 있으며, 이를 응용할 수 있는데 그 중 하나가 행렬의 대각화이다.
■ 행렬의 대각화에 대한 식은 S−1AS=Λ이다.
- 여기서 행렬 행렬 A는 n×n 크기의 행렬로 n개의 고윳값과 고유벡터를 갖는다.
- 행렬 A는 n×n 정방행렬이므로 행렬 S도 n×n 크기의 정방행렬이다.
- 행렬 S는 행렬 A의 고유벡터들이 열벡터로 구성된 행렬이다. 이 행렬 S를 고유벡터 행렬이라고 부른다.
- 행렬 A의 앞에는 S−1과 뒤에는 S가 곱해지며, S−1AS의 계산 결과가 대각행렬 Λ이다. 이 대각행렬의 대각 원소들은 고윳값들의 순서대로 λ1,λ2,⋯,λn 채워진다.
■ \( S^{-1} A S = \Lambda \)에서 행렬 S는 행렬 A의 고유벡터들이 열벡터로 구성된 행렬이다. 그러므로, S−1처럼 S가 역행렬을 가지려면(비특이행렬이 되려면) 이는 A의 n개의 고유벡터들이 모두 독립 관계를 갖는 벡터들이어야 한다는 것을 의미한다.
■ 행렬 A가 n개의 독립인 고유벡터들을 가진다는 조건 하에, 행렬 A와 S를 곱한 AS는 AS=A[|||x1x2⋯xn|||]가 된다.
■ 행렬 A의 고윳값 λi와 λi에 대응하는 고유벡터 mathbfxi는 Axi=λixi,i=1,2,⋯,n의 관계를 만족하며, 행렬 S는 S=[|||x1x2⋯xn|||]이므로,
■ 행렬곱 AS를 A의 열벡터들의 일차결합으로 이해했을 때, AS=A[|||x1x2⋯xn|||]=[|||Ax1Ax2⋯Axn|||]이며 Axi=λixi이므로 AS=A[|||x1x2⋯xn|||]=[|||Ax1Ax2⋯Axn|||]=[|||λ1x1λ2x2⋯λnxn|||]가 성립한다.
■ 다음 단계는, 곱해지는 스칼라인 고윳값들 λi를 xi로부터 분리하는 것으로, 다음과 같이 행렬 S를 앞에 두고 고윳값 λi이 대각 원소로 구성된 대각행렬을 S 뒤에 곱하는 것이다.
AS=A[|||x1x2⋯xn|||]=[|||λ1x1λ2x2⋯λnxn|||]=[|||x1x2⋯xn|||][λ10⋯00λ2⋯0⋮⋮⋱⋮00⋯λn]=SΛ
■ 행렬곱 AS를 통해 만들어진 SΛ에서 Λ가 행렬 A의 고윳값들로 구성된 대각행렬이다.
■ 행렬 A가 n개의 독립적인 고유벡터들을 가질 때, AS=SΛ가 의미하는 것은 행렬 A에 A의 고유벡터들로 구성된 고유벡터 행렬 S를 곱하면, 그 결과는 고유벡터 행렬에 A의 고윳값으로 구성된 대각행렬을 곱한 것과 같다는 것이다.
■ 행렬 A가 n개의 독립적인 고유벡터들을 가져 고유벡터 행렬 S는 비특이행렬이므로, 양변의 왼쪽에 S의 역행렬인 S−1을 곱할 수 있다. 그 결과는 다음과 같다.
AS=SΛ⇒S−1AS=Λ
■ 그러므로 S−1AS=Λ식에서 S−1AS는 n×n 정방행렬 A를 대각화하는 과정을 나타내는 식이라고 할 수 있다.
- 이 식이 성립하는 중요한 조건은 A가 n×n일 때, n개의 독립적인 고유벡터들을 가져야 한다는 것이다. 그래야 S가 가역행렬이 되어 S−1AS=Λ식을 유도할 수 있다.
- 참고로 대부분의 n×n의 대부분의 행렬들은 n개의 독립적인 고유벡터를 가지고 있으므로, 대부분의 경우 대각화할 수 있다.
1.2 A=SΛS−1
■ S−1AS=Λ식에서 반대로 S−1과 S를 우변에 넘기면 행렬 A에 대한 식 A=SΛS−1이 성립한다.
- AS=SΛ에서는 양변의 우측에 S−1을 곱하면 A=SΛS−1을 얻을 수 있다.
■ A=SΛS−1식은 가우스 소거법에서의 LU분해 또는 그람-슈미트의 QR분해처럼 정방행렬 A를 행렬 A의 고윳값과 고유벡터들의 행렬들로 인수분해(factorization)하는 방법이다.
■ A=SΛS−1을 이용하면 A가 n×n행렬이고 S가 가역행렬일 때, A를 k번 곱한 Ak나 Lambda를 k번 곱한 Λk를 쉽게 계산할 수 있다.
■ Ax=λx의 양변의 좌측에 A를 곱하면 λ는 스칼라이므로 A2x=λAx가 되고 Ax=λx이므로 다음과 같은 식이 성립한다.
A2x=λAx⇔A2x=λ2x
■ 이를 통해, 행렬 A의 고윳값 λ는 A의 제곱과 동일하게 움직이고, 고유벡터는 A의 제곱과 무관하게 그대로 유지된다는 것을 알 수 있다.
■ A=SΛS−1 식에도 위와 같이 양변의 좌측에 A를 곱하면 A2=SΛS−1SΛS−1이 되며 S−1S=I이므로 A2=SΛ2S−1이 된다. A를 3번, 4번, ⋯,k번 곱해도 S−1S=I이 되므로 Ak=SλkS−1이 성립한다.
- 이것이 가능한 이유는 A를 k번 곱했을 때, A의 고유벡터 행렬인 S는 그대로 유지되고, A의 고윳값을 원소로 가지는 대각행렬 Λ만 A의 제곱과 동일하게 움직이기 때문이다.
- 대각행렬인 Λ 행렬의 대각 원소는 스칼라인 λ1,λ2,⋯,λn이므로 k번 제곱했을 때, Λk의 대각 원소는 스칼라 λk1,λk2,⋯,λkn이 된다.
■ A=LU에서 A를 100번 곱한다면, 백개의 LU를 갖게되므로 어떤 작업을 하기 어렵다. 하지만, Ak=SλkS−1는 그 과정에서 S−1S=I로 상쇄된다. 즉, 고윳값들은 행렬의 거듭제곱에 대해 이전에 접근할 수 없었던 방식을 알려준다.
■ 예를 들어, k→∞로 갈 때, Ak→0. 즉, 정방행렬 A를 거듭제곱(power) 할수록 Ak가 0으로 수렴한다고 했을 때, 행렬 A를 안정행렬(stable matrix)이라고 한다.
- A의 더 높은 거듭제곱을 취할 때 Ak,k=1,2,3,⋯이 점점 작아지기 위한 조건은 고윳값들의 절댓값이 1보다 작아야 한다.
- 절댓값을 쓰는 이유는 고윳값들이 음수일 수도 있고, 복소수일 수도 있기 때문이다. 그러므로 절댓값을 취한다.
■ 정리하면, 모든 고윳값들의 절댓값이 1보다 작다는 조건 하에, |λi|<1
n개의 독립적인 고유벡터들을 가지는 행렬 A에 대해서 k→∞으로 갈 때, Ak→0. 즉, 행렬 A가 0으로 수렴하면, 이때의 행렬 A를 안정적(stable)이다 라고 하며, A를 안정행렬(stable matrix)라고 한다.
■ 이렇게 A의 고윳값들을 알고 있는 상태에서, Ak=SΛkS−1를 이용하면 행렬 A의 거듭제곱을 무한대로 했을 때의 결과를 예측할 수 있고, S−1AS=Λ의 Λ를 통해 선형변환의 특성을 알 수 있다.
2. 대각화 가능한 행렬(Diagonalizable matrices)
2.1 Diagonalizable
■ 대각화 가능한 행렬의 조건. 즉, \( S^{-1} A S = \Lambda \)나 A=SΛS−1이 성립하기 위한 조건은 n×n행렬 A가 n개의 독립적인 고유벡터들을 가져야 한다는 것이다.
그리고 고유벡터들은 하나의 고윳값 λ에 대응된다는 점을 고려하면, 가장 좋은 경우는 모든 λ가 다를 때이다.
λ가 모두 다르다는 것은 i=1,2,⋯,n에서 λi가 모두 다른 것이며, 이는 λi가 만드는 고유공간이 모두 다르다는 것을 의미한다.
λi가 만드는 고유공간이 모두 다르면, 각 λi에 대응하는 고유벡터 xi가 모두 다르다는 것이기 때문에(고유벡터 xi가 속하는 고유공간이 각각 다르므로 고유벡터 xi가 모두 다를 수밖에 없다.) A는 n개의 독립적인 고유벡터들 xi=1,2,⋯,n을 가질 수 있다.
■ 가장 좋은 경우는 모든 λ가 다른 경우이다. 하지만, 고유방정식에서 λ가 중근을 갖는다면. 즉, λi가 반복된다면 확인이 필요하다. λ가 중근을 갖는다면, n개의 독립적인 고유벡터들을 가질 수 있고, 가지지 않을 수도 있다.
■ 고유방정식에서 λ가 중근을 갖을 때, 즉 고윳값 λ가 반복될 때, n개의 독립적인 고유벡터를 가지는 행렬로 단위행렬이 있다.
■ 예를 들어 행렬 A가 2×2 단위행렬이라면, A=[1001] A의 고윳값은 λ1=1,λ2=1로 고윳값은 중근을 갖는다. 하지만 (A−λI)x=0을 통해 λ1에 대응하는 고유벡터와 λ2에 대응하는 고유벡터는 각각 x1=[10],x2=[01]로 서로 독립인 2개의 고유벡터가 나온다.
- 고유벡터 x1,x2말고도 λ1,λ2에 대응하는 고유벡터는 무수히 많다. x1과 x2에 스칼라배를 적용한 고유벡터는 모두 각각 λ1과 λ2에 대응하는 고유공간에 있는 고유벡터이기 때문이다.
■ 그리고 2×2 단위행렬인 A에 대해 S−1AS로 대각화하면 [1001][1001][1001]=[1001]으로, 이렇게 S−1AS=Λ이 성립하는 것을 볼 수 있다.
■ 그러므로 n×n 크기를 갖는 단위행렬은 동일한 고윳값을 가져도 n개의 독립적인 고유벡터들을 갖는다.
■ n×n 단위행렬처럼 고윳값이 중근이아도 n개의 독립적인 고유벡터들을 갖는 또 다른 경우는 바로 회전행렬이다. 회전행렬 Q가 Q=[−100−1]라면, λ1=−1,λ2=−1으로 고윳값이 중근을 가져도, λ1,λ2에 대응하는 고유벡터는 독립 관계를 갖으며, S−1AS=Λ도 성립한다.
■ 반대로 n×n 행렬 A의 고윳값이 중근을 가질 때, n개의 독립적인 고유벡터들을 가지지 않는 경우는 행렬이 삼각행렬인 경우이다.
■ 예를 들어 삼각행렬 A가 A=[2102]라면, 삼각행렬의 대각 원소들이 삼각행렬의 고윳값이므로 A의 고윳값은 λ1=2,λ2=2로 중근을 갖는다.
- 이렇게 되는 이유는 det(A−λI)를 계산할 때, 반대편 대각 원소가 0이므로 det(A−λI) 계산에 포함되지 않기 때문이다.
- 고윳값이 반복되는 횟수는 대수적 중복도이다. 이 예에서는 λ=2,2로 이중근을 갖으므로 대수적 중복도는 2이다.
■ 이 예에서 고윳값에 대응하는 고유벡터를 찾기 위해 A−2I의 영공간을 찾아야 하는데, (A−2I)x=0
(A−2I)x=0⇔[0100]이므로 x=[x1x2]에서 x1에는 임의의 값을 넣을 수 있지만, x2는 무조건 0이어야 한다. 그러므로 유일한 고유벡터는 [10]이다.
■ 고윳값의 대수적 중복도는 행렬 A가 서로 다른 k개의 고윳값을 가지며 λi가 ai개만큼 중복될 때, 고윳값 λi가 대수적 중복도 ai를 갖는다고 정의한다. 이 예에서 대수적 중복도는 2이다.
■ 고윳값의 기하적 중복도는 행렬 A의 고윳값 λi를 공유하되(같은 고윳값을 갖되), 그 고윳값에 대응하는 선형 독립적인 고유벡터의 수를 의미한다. 이 예에서 고유벡터는 t∈R이라 할 때, [t0]이므로 단 1개의 고유벡터만 존재한다. 기하적 중복도는 1이다. 즉, 이 예에서 (A−λI)의 영공간은 1차원이다.
■ 이렇게 되면 n개의 독립적인 고유벡터가 존재하지 않으므로 삼각행렬 A는 대각화가 불가능하다.
■ 이 예의 고유방정식은 2−λ)2으로 (2−λ)가 2번 곱해져있다. (x−λ)가 몇 번 곱해졌는지를 대수적 중복도(algebraic multiplicity)라 하고
■ 고유공간의 차원을 기하적 중복도(geometric multiplicity)라 한다. 행렬 A의 고유공간은 (A−λI)의 영공간이므로, 기하적 중복도는 (A−λI)의 영공간의 차원이다.
■ 위에서 단위행렬이나 회전행렬의 경우 대수적 중복도는 2, 기하적 중복도도 2로 대수적 중복도와 기하적 중복도가 동일했다. 이때, 단위행렬과 회전행렬은 대각화 가능했다. 하지만 삼각행렬 예에서는 대수적 중복도와 기하적 중복도가 다르며, 대각화가 불가능한 것을 알 수 있다. 또한 단위행렬, 회전행렬, 삼각행렬의 예시는 2×2행렬이므로 전체 차원은 2차원이다. 이때, 대각화가 가능한 단위행렬이나 회전행렬의 대수적 중복도 = 기하적 중복도 = 2로 전체 차원과 동일한 것을 알 수 있다. 반면, 대각화가 불가능한 삼각행렬의 경우 대수적 중복도 ≠ 기하적 중복도임을 알 수 있다.
■ 그러므로 대각화가 가능할 필요충분조건은 모든 고윳값에 대한 대수적 중복도와 기하적 중복도가 동일하며, '대수적 중복도 = 기하적 중복도 = 전체 차원'이라고 할 수 있다.
■ 정리하면, n×n 행렬 A가 서로 다른 고윳값을 가지는 경우, A는 서로 독립적인 n개의 고유벡터를 가지며, 행렬 A는 대각화 가능하다.
반면, 행렬 A의 고윳값이 중근인 경우(고윳값이 반복되는 경우), A는 서로 독립적인 n개의 고유벡터를 가질 수도, 가지지 않을 수도 있으며, 서로 독립적인 n개의 고유벡터를 가지는 경우는 A의 모든 고윳값에 대한 대수적 중복도와 기하적 중복도가 동일하며 '대수적 중복도 = 기하적 중복도 = 전체 차원'을 만족하는 경우이다.
3. 대각화와 차분 방정식(Difference Equation)
3.1 Difference Equation
■ 대각화를 이용하면 차분 방정식(계차 방정식)을 쉽게 풀 수 있다.
■ 차분(difference)이란, 임의의 두 점에서의 함수값들의 차이이다.
- 함수가 f라고 했을 때, 차분은 fk+1−fk
■ 차분 방정식은 미분방정식의 이산적인 표현. 즉, 이산적 현상에 대한 모델링을 의미한다. 차분 방정식의 형태는 수열의 점화식과 같은 형태를 취한다. an+1=an+an−1
- 예를 들어, 번식하는 종들의 개체수 증가라는 이산적인 문제를 모델링할 때 차분 방정식을 사용한다.
- 번식하는 종들의 개체수 증가 문제는 예를 들어 1초에 개체수가 2배 증가한다면, 처음 개체수가 2일 때, 100초 후 개체수를 구하는 문제
■ 미분 방정식(differential equation)은 차분 방정식과 반대로, 어떤 연속적인 현상에 대한 모델링을 의미한다.
- 미분 방정식은, 예를 들어 시간에 따른 변화율 문제 같이 연속적인 현상에 대한 문제를 모델링할 때 사용한다. 미분 방정식의 형태는 dydx로 x가 아주 작은 값인 delta만큼 변화했을 때( = dx), y가 얼마만큼 변했는지(= dy)에 대한 비율이다.
■ 초깃값이 u0일 때, uk+1=Auk라는 식이 선형대수에서 차분 방정식이다. 이 식은 u에 대한 차분 방정식이며 k번째 u를 행렬 A와 계산했을 때, 다음 시점인 k+1번째 u를 구하는 방정식이다. 이를 찾기 위해 0번째 u인 초깃값 u0을 이용한다.
■ 이 차분 방정식을 푸는 아이디어는, 초깃값 u0가 주어지면, u0를 이용해서 u1=Au0으로 u1를 계산할 수 있다.
u2도 계산한 u1을 이용하여 u2=Au1으로 계산할 수 있다. 이와 같은 방식으로 uk+1=Auk를 통해 k+1번째 u인 uk+1을 계산할 수 있다.
이때, u2=Au1의 과정에서 u2를 계산하기 위해 Au1를 계산하는 것을 볼 수 있다. 이때의 u1은 u1=Au0이므로
u2=Au1=AAu0을 계산하는 것으로 볼 수 있다. 이 과정을 일반화하면, uk=Aku0으로 나타낼 수 있다. 즉, k번째 u인 uk를 계산하는 방법은 Ak에 초깃값인 u0를 곱해주기만 하면 된다.
그리고 이 차분 방정식 uk+1=Auk을 1차 차분 방정식(계차 방정식)이라고 부른다. k에서 k+1로 한 단계만 올라가는(연결하는) 방정식이기 때문이다.
■ 앞서 A가 대각화 가능한 행렬이라면 Ak는 Ak=SΛkS−1로 쉽게 구할 수 있음을 확인하였다.
■ 이를 이용하면, u100,u1000,⋯을 구하기 위해 행렬 A를 100번, 1000번, ... 곱해서 구할 수 있지만, Ak=SΛkS−1를 이용하면 1차 차분 방정식을 쉽게 계산할 수 있다.
■ n×n 크기를 갖는 A가 n개의 독립적인 고유벡터들을 갖는다고 하자.(= A가 대각화 가능이라고 하자.)
■ 차분 방정식을 푸는 과정은 먼저, 초깃값인 u0 벡터를 행렬 A의 고유벡터들의 선형결합으로 표현한다. u0=c1x1+c2x2+⋯+cnxn
이 표현에서 c는 상수 x는 고유벡터이며, 이 선형결합 표현은 다음과 같이 A의 n개의 독립적인 고유벡터들을 열벡터로 구성하는 고유벡터 행렬 S와 상수값 벡터 c의 곱으로 나타낼 수 있다. u0=c1x1+c2x2+⋯+cnxn=S→c
S→c=[|||x1x2⋯xn|||][c1c2⋮cn]
- u0을 A의 서로 독립적인 n개의 고유벡터들의 선형결합으로 표현할 수 있는 이유는 다음과 같다.
- 행렬 A가 n×n이며 n개의 독립적인 고유벡터를 갖는다면, n개의 독립적인 고유벡터가 n차원 공간인 Rn을 생성하는 기저이다.
- 이때의 u0이라는 벡터는 전체 공간 내에 존재하는 벡터이므로, n개의 독립적인 고유벡터들의 선형결합으로 u0를 만들 수 있는 것이다.
■ u0=c1x1+c2x2+⋯+cnxn이므로 Au0은 Au0=c1Ax1+c2Ax2+⋯+cnAxn이며, Axi=λxi이므로
Au0=c1Ax1+c2Ax2+⋯+cnAxn=c1λ1x1+c2λ2x2+⋯+cnλnxn이 성립한다.
■ 이렇게 초깃값 u0에 행렬 A를 적용시킨 결과는 Au0=c1λ1x1+c2λ2x2+⋯+cnλnxn으로 고윳값과 고유벡터의 선형결합 형태로 표현할 수 있다.
■ 여기서 AAu0=A2u0을 전개하면, A2u0=c1λ1Ax1+c2λ2Ax2+⋯+cnλnAxn이므로 Axi=λixi에 의해 A2u0=c1λ21x1+c2λ22x2+⋯+cnλ2nxn가 성립한다.
■ 여기서, 예를 들어 u100=A100u0를 구하고 싶다면, 이는 A100u0=c1λ1001x1+c2λ1002x2+⋯+cnλ100nxn가 될 것이다.
■ 이 문제를 행렬의 대각화를 이용하여 계산한다면, u100=A100u0=SΛ100S−1S→c이며 S−1S=I이므로 u100=A100u0=SΛ100→c가 성립한다.
■ 이 식을 일반화하면 uk=Aku0=SΛk→c가 된다.
■ 예를 들어 피보나치 수열의 F0=0,F1=1일 때, F0,F1,F2,⋯은 0, 1, 1, 2, 3, 5, 8, 13, 21, ... 이 된다. 이때 F100의 값을 구해 피보나치 수들이 얼마나 빠르게 증가하는지에 대한 문제는 시간에 따라 어떤 규칙에 의해 값이 변화하는 문제이므로 차분 방정식을 통해 풀 수 있는 문제이다.
■ 이전 시점의 두 개의 값의 합이 현재의 값이 되는 규칙을 가지므로 Fk+2=Fk+1+Fk로 나타낼 수 있다.
■ Fk+2=Fk+1+Fk는 단일 방정식이고 2개의 단계에 대한 식이기 때문에 2차 도함수가 있는 2차 미분 방정식과 같다.
- Fk+2=Fk+1+Fk는 k가 2번 변화했을 때, 그 값에 대한 변화를 보는 식이기 때문에 2차 미분 방정식과 같다.
■ 여기서 1차 차분을 얻고 싶으면 벡터 uk를 사용해야 하는데, 약간의 트릭을 이용하면 된다. 바로 Fk+2=Fk+1+Fk의 입력값인 Fk+1과 Fk를 벡터 uk로 정의하는 것이다. uk=[Fk+1Fk]
■ 1차 차분 방정식을 만들기 위해선 uk와 uk+1이 필요한데, uk=[Fk+1Fk]로 정의하였으니, uk+1은 uk+1=[Fk+2Fk+1]로 정의할 수 있다.
■ 1차 차분 방정식에 필요한 uk와 uk+1를 정의한 다음, 필요한 것은 행렬 A이다. 행렬 A를 미지수 uk를 적용했을 때(곱했을 때), uk+1로 미지수가 변화한다. 즉, 행렬 A는 이 문제에 대한 관계(방정식)에서 구해야 하는데, 이는 Fk+2=Fk+1=Fk라는 방정식과 Fk+1=Fk+1이라는 방정식을 통해 행렬 A를 정의할 수 있다.
- Fk+1=Fk+1 방정식은 행렬 A를 정의하기 위한 트릭이다.
■ 방정식 Fk+2=Fk+1+FkFk+1=Fk+1를 이용하면 1차 차분 방정식 uk+1=Auk는 [Fk+2Fk+1]=[1110][Fk+1Fk]로 나타낼 수 있다.
- 이렇게 2차 미분방정식 형태였던 피보나치 수열 문제를 1차 차분 방정식으로 바꿀 수 있다.
■ 행렬 A에 대한 고유방정식은 λ2−λ−1=0이다. 이 고유방정식은 피보나치 수열의 차분방정식 행렬 A를 통해 만든 것이고, 행렬 A는 피보나치 수열의 규칙인 Fk+2=Fk+1+Fk라는 2차 미분 방정식 형태에서 트릭을 이용해 만든 것이다.
■ Fk+2=Fk+1+Fk식을 λ2−λ−1=0 형태로 나타내면 Fk+2−Fk+1−Fk=0으로 고유방정식과 같은 모양을 보인다.
- Fk+2는 λ2, −Fk+1은 −λ, −Fk는 −1
■ 즉, 행렬 A의 고유방정식은 어떤 문제에 대한 특성을 나타내는 식이 된다.
- 이 예에서는 피보나치 수열에 대한 식 Fk+2=Fk+1+Fk이 행렬 A의 고유방정식 λ2−λ−1=0으로 나타난 것이다.
■ λ2−λ−1=0에서 고윳값 λ=1±√52이므로 λ1=1+√52이고 λ2=1−√52로 실수(real number)값을 갖는다. 그리고 각 고윳값이 서로 다르기 때문에 A는 서로 독립인 고유벡터가 존재하므로 A는 대각화 가능하다.
■ 그러므로 F100을 구하는 문제는 u100을 구하는 문제로 바뀌었으며, u100=A100u0을 계산하면 된다.
■ 이때, 피보나치 수열이 얼마나 빠르게 증가하는지도 u100=A100u0을 통해 알 수 있다. A100u0=c1λ1001x1+c2λ1002x2=c1(1+√52)100x1+c2(1−√52)100x2에서 두 번째 고윳값인 λ2의 절댓값은 1보다 작은 수이므로 A에 거듭제곱을 할수록 0으로 수렴한다는 것을 알 수 있다. 즉, 이 식에서 유의미한 것은 첫 번째 항이며, 이 첫 번째 항에서 피보나치 수열의 값의 증가 속도를 결정하는 요소는 정수 1보다 큰 λ1이다.
- λ1은 약 1.6, λ2는 약 -0.6
■ 고유벡터를 구하기 위해 (A−λI)x=0을 계산해야 한다. 이때 (A−λI)=[1−λ11−λ]이며 이 행렬과 x의 곱을 통해 0이 되야하므로 x=[λ1]가 되야한다.
- λ2−λ−1=0이므로 [1−λ11−λ][λ1]=[00]는 [λ2−λ−1λ−λ]=[00]이 된다.
■ x=[λ1]이므로 고유벡터 x1=[λ11]=[1+√521]이며, x2=[λ21]=[1−√521]가 된다.
■ x1과 x2를 알았으니, c1,c2를 구할 수 있다. c1,c2는 u0=A0u0이며 A0u0=c1x1+c2x2임을 이용하면 u0=[1+√521−√5211][c1c2]=[10]
c1=√5/5,c2=−√5/5
- u0의 원소는 F1,F0이므로 u0=[10]
■ 현재 구해야 하는 F100는 u100을 구하는 문제로 바뀌었으며, u100은 u100=A100u0=c1λ1001x1+c2λ1002x2=c1(1+√52)100x1+c2(1−√52)100x2을 계산해야 한다. 이 계산에 필요한 c1,c2,x1,x2을 모두 구하였으니, 이 값들을 대입하면, 피보나치 수열의 100번째 값인 F100 값을 구할 수 있다.
'선형대수' 카테고리의 다른 글
Differential equations (0) | 2025.02.26 |
---|---|
[개념] 대칭행렬의 직교 대각화, 스펙트럼 분해, 2차형식 (0) | 2025.02.24 |
[개념] 행렬의 대각화(Diagonalization) (0) | 2025.02.20 |
[개념] 고유치, 고윳값(eigenvalue), 고유벡터(eigenvector) (0) | 2025.02.19 |
[개념] 선형 변환(사상)과 표준행렬 (0) | 2025.02.16 |