C2 · 같은 배율 안의 연결이 반복 반응을 어떻게 바꿀까?#
C1에서 서로 다른 고윳값에 대응하는 상태를 분리했습니다. 그러나 한 성분 안에서는 \(T=\lambda I+N\)이고 \(N\)이 0이 아닐 수 있었습니다. 이번에는 \(N\)이 몇 단계를 거쳐 상태를 연결하는지 조사합니다. 그 결과가 Jordan 표준형입니다.
처음부터 표준형의 모양을 외우지 않겠습니다. 세 변수가 순서대로 영향을 주는 작은 시간 모형을 계산하고, 왜 \(n\), \(n(n-1)/2\) 같은 계수가 생기는지 먼저 확인합니다. 그 뒤 모든 멱영사상에 이런 기저가 존재한다는 것을 증명합니다.
1. 두 번째 변수가 첫 번째 변수에 영향을 주는 모형#
두 무차원 편차 \(x_n,y_n\)의 갱신을
으로 정합니다. 시간 \(n\)은 정수이고 \(r\)은 한 기간 동안 남는 비율입니다. 경제학의 두 상태변수 사이 충격 전달이나, 물리계의 선형화한 상태 결합을 단순화한 모형입니다. 잡음·비선형항은 넣지 않았습니다.
초기값 \((x_0,y_0)=(0,1)\)에서 차례로 계산하면
두 번째 변수의 영향이 시점마다 첫 번째 변수로 들어가므로 같은 크기의 기여가 누적됩니다. 일반적으로 \(y_n=r^n\)이고 \(n\ge1\)에서 \(x_n=nr^{n-1}\)입니다. \(x_{n+1}=r(nr^{n-1})+r^n=(n+1)r^n\)이므로 귀납이 완성됩니다.
\(r=1\)이면 \(x_n=n\)이어서 커집니다. \(r=4/5\)이면 처음에는 커져도 결국 작아집니다. “고윳값이 1보다 작다”는 말이 매 시점 모든 성분의 단조 감소를 뜻하지는 않습니다.
2. 세 번째 변수까지 연결하면 두 번 누적된다#
이제
로 확장합니다. 성분을 \(z_n=(x_n,y_n,w_n)\)라 쓰면
첫 시점부터 세 시점까지는
\(n\ge2\)에서 다음 식이 성립합니다.
첫 성분의 귀납 단계를 직접 쓰면
\(r=0\)일 때 음의 지수를 만들지 않도록 \(n=0,1\)은 직접 계산한 값을 씁니다. 뒤에서 줄 행렬 공식은 애초에 음의 지수가 없는 범위의 합으로 적습니다.
그림 40 점은 정수 시점의 반응이고 선은 점 사이를 읽기 쉽게 연결한 것입니다. 세 변수는 모두 무차원입니다. 고윳값은 모두 0.8이지만 세 성분의 반응 곡선은 같지 않습니다.#
감소한다는 주장에도 이유가 필요합니다. \(0<r<1\)이고 고정된 정수 \(j\ge0\)이면 \(a_n=n^jr^n\)에 대해 \(a_{n+1}/a_n=r(1+1/n)^j\)입니다. 유한 이항 전개로 \((1+1/n)^j\to1\)이므로 충분히 큰 \(n\)에서 이 비율은 \(r<q<1\)인 어떤 \(q\)보다 작습니다. 이후 \(a_n\)은 상수배의 기하수열 \(q^n\)으로 위에서 제어되어 0으로 갑니다. 음수 \(r\)도 절댓값으로 같은 논증을 적용합니다. \(r=0\)은 유한 번 뒤 정확히 0입니다.
3. 배율을 빼면 연결의 길이만 남는다#
\(N=J_r-rI\)로 놓으면
열을 읽으면
따라서 \(e_3\)은 두 번 적용해 \(e_1\)이 되고 세 번 적용해 0이 됩니다. 목록 \((e_1,e_2,e_3)\)을 길이 3의 사슬이라고 부릅니다. 이 책에서는 먼저 0으로 가는 벡터를 앞에 적습니다. 따라서 행렬의 1은 대각 바로 위에 놓입니다.
일반적인 사슬 \((v_1,\ldots,v_\ell)\)은
을 만족합니다. 사슬은 자동으로 독립입니다. 관계 \(\sum_{j=1}^{\ell}a_jv_j=0\)에서 가장 큰 \(j\) 중 \(a_j\ne0\)인 것을 고르고 \(N^{j-1}\)을 적용하면 \(a_jv_1=0\)입니다. 체에서 \(a_j\)를 나눌 수 있고 \(v_1\ne0\)이므로 모순입니다. 따라서 모든 계수가 0입니다.
다만 사슬 하나가 전체 공간을 생성한다는 보장은 없습니다. 길이 3의 사슬과 길이 2의 사슬이 서로 독립적으로 존재할 수 있습니다.
4. 한 번에 사라지는 방향이 몇 개인지 세기#
길이 3과 길이 2인 사슬이 하나씩 있는 5차원 공간을 생각합시다. 첫 사슬에서 \(N\)의 핵은 \(v_1\) 하나이고 둘째에서는 \(u_1\) 하나입니다. 따라서 \(\dim\ker N=2\)입니다.
\(N^2\)의 핵에는 각 사슬의 앞 두 벡터가 들어가므로 차원은 4입니다. \(N^3\)에서는 전체 5차원이 들어갑니다. \(d_k=\dim\ker N^k\), \(d_0=0\)이라 놓으면
증가량은 \((2,2,1,0)\)입니다. 첫 증가량 2는 사슬의 개수, 둘째 증가량 2는 길이가 2 이상인 사슬 수, 셋째 증가량 1은 길이가 3 이상인 사슬 수입니다.
따라서 크기가 정확히 \(k\)인 블록 수는
이 예에서는 \(b_1=4-0-4=0\), \(b_2=8-2-5=1\), \(b_3=10-4-5=1\)입니다. 부호를 반대로 쓰면 블록 수가 음수가 됩니다. 실제로 세는 대상에서 공식을 유도해야 하는 이유입니다.
그림 41 가로로 읽으면 사슬 길이가 3과 2입니다. 같은 위치의 점을 세로로 세면 2,2,1입니다. 행과 열로 읽은 두 목록이 같은 구조를 다르게 기록합니다.#
5. 같은 고윳값과 최소다항식만으로는 부족하다#
4차원에서
를 비교합시다. 두 행렬 모두 0이 아니면서 제곱이 0이므로 최소다항식은 \(z^2\)입니다. 고윳값도 0뿐입니다. 그러나 \(A\)의 상은 한 사슬의 첫 벡터만 생성하므로 계수가 1이고, \(B\)의 상은 두 사슬의 첫 벡터를 생성하므로 계수가 2입니다.
상사변환은 상의 차원을 보존하므로 두 행렬은 상사가 아닙니다. 같은 최소다항식은 “최대 사슬 길이”를 알려 주지만, 각 길이의 사슬이 몇 개 있는지는 알려 주지 않습니다. 위 예는 이미 4차원에서 성립합니다.
C1의 일반화 고유공간마다 이러한 사슬 기저를 구성한 뒤 합치면 전체 Jordan 기저를 얻습니다. 이 장 마지막에서 사슬 기저의 존재를 빠짐없이 증명합니다.
6. 아주 작은 섭동이 연결 구조를 바꿀 수 있다#
길이 \(m\)의 \(N=J_m(0)\)에서 맨 아래 왼쪽 원소에 \(\varepsilon>0\)을 넣습니다.
\(A_\varepsilon v=\lambda v\)의 첫 \(m-1\)개 식은
\(v_1=0\)이면 모든 성분이 0이므로 고유벡터에서는 \(v_1\ne0\)입니다. 이를 1로 정규화하면 \(v=(1,\lambda,\ldots,\lambda^{m-1})\)입니다. 마지막 행의 식은
따라서 복소 고윳값은
입니다. 이 값들을 대입한 벡터는 실제로 각 행의 식을 만족합니다. 서로 다른 \(m\)개 고윳값이므로 A5의 독립성 정리에 의해 이 벡터들이 기저입니다. \(\varepsilon=0\)에서는 길이 \(m\)의 단일 사슬이었지만, 임의의 \(\varepsilon>0\)에서는 대각화됩니다.
\(m=20\), \(\varepsilon=10^{-10}\)이면 반지름은
이 값은 반올림오차의 보편적인 크기가 아니라 우리가 넣은 특정 섭동의 결과입니다. 모든 크기 \(\varepsilon\)의 섭동이 정확히 이 원을 만든다고 주장하지 않습니다.
그림 42 특정한 맨 아래 왼쪽 섭동에 대한 정확한 근 공식으로 그린 점들입니다. 원은 점들이 놓이는 반지름을 표시하며, 내부 모든 점이 이 행렬의 고윳값이라는 뜻은 아닙니다.#
7. 정확한 구조와 자료에서 추정하는 구조는 다르다#
행렬 \(\operatorname{diag}(1,\delta)\)는 \(\delta=0\)에서 계수 1이고 \(\delta\ne0\)에서 계수 2입니다. 어떤 양의 허용 오차를 정해도 그보다 작은 \(\delta\ne0\)을 고를 수 있습니다. 따라서 오차가 있는 입력만으로 두 경우를 항상 정확하게 구별할 수는 없습니다.
Jordan 구조는 이런 계수를 여러 번 계산해 결정됩니다. 정확한 정수·유리수 행렬에서 구조를 구하는 일은 가능하지만, 근사 자료에서 미세한 구조까지 안정적으로 복원하는 것은 별도 문제입니다. “Jordan 형은 존재하지 않는다”거나 “어떤 경우에도 계산할 수 없다”는 뜻이 아닙니다.
아래 코드는 정확한 계수로 블록 수를 복원합니다. 이 알고리즘에서 \(\lambda\)는 정확한 수로 입력하며, 0과 아주 작은 수를 임의의 허용 오차로 합치지 않습니다.
from sympy import Matrix, eye, diag, zeros
def jordan_block(size, lam=0):
A=lam*eye(size)
for j in range(size-1):
A[j,j+1]=1
return A
def block_sizes_exact(A, lam):
A=Matrix(A)
n=A.rows
if n!=A.cols:
raise ValueError("정사각행렬이어야 합니다.")
M=A-lam*eye(n)
d=[n-(M**k).rank() for k in range(n+2)]
sizes=[]
for k in range(1,n+1):
count=2*d[k]-d[k-1]-d[k+1]
assert count>=0
sizes.extend([k]*count)
return sorted(sizes,reverse=True)
A=diag(jordan_block(4,3),jordan_block(2,3),
jordan_block(2,3),jordan_block(1,3))
assert block_sizes_exact(A,3)==[4,2,2,1]
assert block_sizes_exact(A,5)==[]
N=diag(jordan_block(3),jordan_block(2))
assert [5-(N**k).rank() for k in range(5)]==[0,2,4,5,5]
S=eye(5)
S[0,3]=2
S[2,4]=-1
assert block_sizes_exact(S*N*S.inv(),0)==[3,2]
print("정확한 핵 차원에서 사슬 길이 복원:", block_sizes_exact(N,0))
정확한 핵 차원에서 사슬 길이 복원: [3, 2]
뒤의 내적·수치 파트에서는 길이를 보존하는 기저변환으로 상삼각화하는 Schur 형을 다룹니다. 여기서 그 알고리즘의 안정성을 증명한 것은 아닙니다. 지금 확실히 얻은 것은 어떤 정보가 입력의 작은 변화에 불연속적인지에 관한 명시적인 반례입니다.
8. 직접 써 보는 문제와 전체 풀이#
문제 1 · 핵 차원으로 블록 복원하기#
7차원 멱영사상의 핵 차원이 \(d_1=3,d_2=5,d_3=6,d_4=7\)입니다. 블록 크기와 계수를 구하세요.
풀이. \(d_0=0\), 안정화 뒤 \(d_5=7\)입니다. 증가량은 \(3,2,1,1,0\)이므로 정확한 크기별 수는 \(1,1,0,1\)입니다. 블록 크기는 \(4,2,1\)이며 합이 7입니다. 계수는 \(7-d_1=4\), 멱영 지수는 최대 길이 4입니다.
문제 2 · 지연된 충격의 반응#
\(r=1\)인 길이 3 모형에서 \(z_0=e_3\)일 때 \(z_4\)를 구하세요.
풀이. \(x_4=\binom42=6\), \(y_4=4\), \(w_4=1\)이므로 \((6,4,1)\)입니다. 바로 전 상태 \((3,3,1)\)에 행렬을 곱하면 \((3+3,3+1,1)=(6,4,1)\)입니다. 고윳값 1이 있다는 것만으로 반응이 상수라고 말할 수 없습니다.
문제 3 · 불가능한 핵 차원 목록#
\((d_0,d_1,d_2,d_3)=(0,1,3,4)\)가 멱영사상에서 가능한가요?
풀이. 증가량은 \(1,2,1\)입니다. 길이가 2 이상인 사슬이 2개인데 전체 사슬이 1개일 수는 없습니다. 정확한 공식도 \(b_1=2\cdot1-0-3=-1\)을 주므로 불가능합니다.
문제 4 · 사슬 순서를 뒤집으면#
길이 3의 기저를 \((v_3,v_2,v_1)\)로 적으면 행렬이 어떻게 되나요?
풀이. 첫 벡터의 상은 두 번째, 두 번째의 상은 세 번째, 마지막은 0입니다. 따라서 열은 \((0,1,0)\), \((0,0,1)\), \((0,0,0)\)이고 1이 대각 아래에 놓입니다. 같은 사상을 다른 순서로 표현한 것이므로 상사이며, 표준형의 위·아래 규약을 고정해야 합니다.
문제 5 · 길이 2 섭동을 직접 구하기#
\(\begin{pmatrix}0&1\\\varepsilon&0\end{pmatrix}\)의 \(\varepsilon>0\)에서 고유벡터를 구하세요.
풀이. \(\lambda^2=\varepsilon\)이므로 \(\lambda=\pm\sqrt\varepsilon\)입니다. 대응 벡터는 \((1,\pm\sqrt\varepsilon)\)입니다. 두 벡터의 차는 \((0,2\sqrt\varepsilon)\)로 작아집니다. \(\varepsilon=0\)에서는 두 벡터가 같은 방향이 되지만, \(\varepsilon>0\)에서는 독립입니다. 대각화의 존재와 기저의 민감도를 구별해야 합니다.
9. 지금까지의 내용을 수학의 언어로 정리해 봅시다#
앞의 사슬과 핵 차원 계산을 일반적인 존재·유일성 정리로 옮깁니다. \(V\)는 유한차원이고, 멱영 이론은 임의의 체에서 성립합니다. 일반 \(T\)의 Jordan 형은 최소다항식이 현재 체에서 일차식으로 분해될 때 주장합니다.
9.1 사슬 기저가 항상 존재한다#
정리 58 (멱영사상의 사슬 기저)
\(N\)이 멱영이면 \(V\)에는 여러 사슬을 이어 붙인 기저가 존재합니다.
증명. \(\dim V\)에 대한 귀납법입니다. \(N=0\)이면 임의의 기저벡터 하나하나가 길이 1의 사슬이므로 성립합니다. 이제 \(N\ne0\)이라고 합시다.
\(W=\operatorname{im}N\)은 불변이고 \(N|_W\)도 멱영입니다. \(W\)는 진부분공간입니다. 만약 \(N\)이 전사이면 모든 \(N^k\)도 전사인데 어떤 \(N^k=0\)이므로 0 아닌 \(V\)에서 모순입니다. 따라서 \(\dim W<\dim V\)이고 귀납가정으로 \(W\)의 사슬 기저를 얻습니다. 이를 \((w_{j,1},\ldots,w_{j,\ell_j})\)라고 씁니다.
각 사슬의 마지막 벡터 \(w_{j,\ell_j}\)는 \(W=\operatorname{im}N\)의 원소이므로 \(Nv_j=w_{j,\ell_j}\)인 \(v_j\in V\)를 고를 수 있습니다. 이렇게 사슬을 하나씩 늘립니다.
늘린 전체 목록이 독립인지 확인합니다. \(w+\sum_j a_jv_j=0\)이고 \(w\in W\)라면 \(N\)을 적용하여
을 얻습니다. \(N(W)\)는 각 원래 사슬에서 마지막 벡터를 제외한 벡터들로 생성됩니다. 원래 사슬들이 \(W\)의 기저이므로 마지막 벡터들의 동치류는 \(W/N(W)\)에서 독립입니다. 따라서 모든 \(a_j=0\)이고 원래 관계에서 \(w=0\)입니다. \(w\)를 이루는 기저 계수도 모두 0입니다.
늘린 사슬들이 생성하는 공간을 \(U\)라고 합시다. \(U\)는 불변이고 \(N(U)=W\)입니다. 실제로 원래 기저의 마지막 벡터는 \(Nv_j\)로, 나머지는 원래 사슬에서 바로 다음 벡터의 상으로 얻습니다. 임의의 \(x\in V\)에 대해 \(Nx\in W=N(U)\)이므로 \(Nu=Nx\)인 \(u\in U\)가 있습니다. 그러면 \(x-u\in\ker N\)이고 \(V=U+\ker N\)입니다.
\(\ker N\cap U\)의 기저를 \(\ker N\)의 기저로 확장하고 추가 벡터들의 생성공간을 \(Z\)라 놓습니다. 그러면 \(\ker N=(\ker N\cap U)\oplus Z\)이고 \(Z\cap U=0\)입니다. 따라서 \(V=U\oplus Z\)입니다. \(Z\)의 기저벡터들은 \(N\)에 의해 0으로 가므로 길이 1의 사슬들입니다. 늘린 사슬들과 이 벡터들을 합치면 요구한 기저가 됩니다. \(\square\)
9.2 블록 수와 핵 차원의 정확한 관계#
정리 59 (핵 차원에 의한 블록 수 결정)
\(d_k=\dim\ker N^k\), \(d_0=0\)이면 길이가 \(k\) 이상인 사슬 수는 \(d_k-d_{k-1}\), 길이가 정확히 \(k\)인 사슬 수는 \(2d_k-d_{k-1}-d_{k+1}\)입니다.
증명. 길이 \(\ell\)인 사슬에서 \(N^k\)는 앞 \(k\)개의 벡터를 0으로 보내며, \(k<\ell\)이면 나머지를 서로 다른 사슬 벡터로 보냅니다. 따라서 그 핵 차원은 \(\min(k,\ell)\)입니다.
서로 다른 사슬 공간은 불변 직합입니다. \(\sum_jx_j\)가 전체 핵에 있으면 \(\sum_jN^kx_j=0\)이고 직합성 때문에 각 \(N^kx_j=0\)입니다. 역으로 각 항이 0이면 합도 핵에 있습니다. 따라서 핵도 각 사슬 핵의 직합이고
차분을 취하면 \(\min(k,\ell)-\min(k-1,\ell)\)은 \(\ell\ge k\)에서 1, 나머지에서 0입니다. 따라서 첫 차분은 길이 \(k\) 이상인 사슬 수입니다. 여기서 길이 \(k+1\) 이상인 수를 빼면 정확히 \(k\)인 수를 얻습니다. \(\square\)
차원은 기저에 무관하므로 블록 길이의 다중집합도 유일합니다. \(d_k=n-\operatorname{rank}N^k\)이므로 계수 수열로도 같은 정보를 얻습니다.
9.3 Jordan 형과 상사 판정#
정리 60 (Jordan 형의 존재와 유일성)
\(m_T\)가 \(F\)에서 완전히 분해되면 어떤 기저에서 \(T\)는 \(J_{\ell_j}(\lambda_j)\)들의 블록 대각행렬입니다. 블록의 다중집합은 순서를 제외하고 유일합니다.
증명. C1의 준분해로 \(V=\bigoplus_\lambda G(\lambda,T)\)입니다. 각 성분에서 \(N_\lambda=T-\lambda I\)는 멱영이므로 앞 존재 정리로 사슬 기저를 고릅니다. 이 기저에서 \(T=\lambda I+N_\lambda\)의 행렬은 각 사슬에 \(\lambda\)를 대각에, 1을 대각 위에 놓은 블록입니다. 전체 기저는 직합의 기저들을 이어 붙여 얻습니다.
다른 고윳값의 성분에서는 \(T-\lambda I\)가 가역이므로 전체 \(\ker(T-\lambda I)^k\)의 차원은 해당 \(\lambda\) 성분의 핵 차원과 같습니다. 따라서 이 수열이 앞 공식으로 모든 \(\lambda\)의 블록을 유일하게 결정합니다. \(\square\)
같은 크기의 두 행렬이 완전히 분해되는 체 위에 있을 때, 모든 \(\lambda\)와 \(k\ge1\)에 대해 \(\operatorname{rank}(A-\lambda I)^k=\operatorname{rank}(B-\lambda I)^k\)이면 두 행렬은 상사입니다. 이 수열이 같은 Jordan 블록을 주므로 각 Jordan 기저를 통해 서로 변환되기 때문입니다. 역으로 \(B=S^{-1}AS\)이면 귀납으로 \((B-\lambda I)^k=S^{-1}(A-\lambda I)^kS\)이므로 계수가 같습니다. 임의의 체에서 실근만 검사하는 방식으로 이 판정을 확장하면 기약 이차 성분 등을 놓칩니다.
9.4 사슬에서 모든 반복식 얻기#
\(N^\ell=0\)이면 \(n\ge0\)에서
증명. \(n=0\)의 합은 \(I\)입니다. \(n\)에서 맞다고 하고 \(\lambda I+N\)을 곱하면 \(\lambda I\)가 만든 \(j\)항과 \(N\)이 만든 \(j-1\)항의 계수가 \(\binom nj+\binom n{j-1}\)로 합쳐집니다. 이 합이 \(\binom{n+1}j\)인 이유는 \(n+1\)개 중 \(j\)개를 고를 때 마지막 원소를 포함하지 않는 경우와 포함하는 경우를 나누기 때문입니다. \(N^\ell\) 이상의 항은 0이고, 끝점은 한쪽 항만 남습니다. 따라서 다음 \(n+1\)에서도 식이 성립합니다. \(\square\)
계수 \(\binom nj\)는 먼저 정수로 정의한 뒤 체의 원소로 읽습니다. 따라서 유한체에서도 “팩토리얼로 나눌 수 없는 문제” 없이 이항식이 성립합니다. \(\lambda=0\)일 때도 합의 지수는 모두 음이 아니며 \(0^0=1\)로 읽으면 정확히 \(N^n\)만 남습니다.
관찰한 반응 |
수학적 구조 |
|---|---|
두 번째 변수의 영향이 계속 더해짐 |
길이 2의 Jordan 사슬 |
\(n(n-1)/2\) 항이 생김 |
길이 3과 이항 전개 |
핵 차원의 증가량 |
일정 길이 이상인 블록 수 |
같은 최소다항식인데 다른 계수 |
최대 길이와 전체 블록 목록의 차이 |
작은 섭동에서 블록 구조가 달라짐 |
정확한 상사 불변량의 불연속성 |
Jordan 사슬은 하나의 사상이 반복되는 방식을 분류합니다. 다음 장에서는 미지수가 행렬이거나 두 공간을 함께 다루는 경우로 옮겨, 성분을 펼치는 순서와 텐서곱의 의미를 연결합니다. C3로 이어 읽기.