1. 개요[편집]
| 유리 표준형 Rational canonical form (Frobenius form) | |
|---|---|
| 형태 | $S^{-1}AS = C(f_1)\oplus C(f_2)\oplus\cdots\oplus C(f_k)$ |
| 블록 | 동반행렬, $f_1 \mid f_2 \mid \cdots \mid f_k$ |
| 마지막 인자 | $f_k$ = 최소다항식 |
| 인자들의 곱 | 특성다항식 |
| 체 의존성 | 없음 — 임의의 체에서 존재·유일 |
| 계산 | $\lambda I - A$ 의 스미스 표준형 (정확 산술) |
| 수치 계산 | 위험 — 동반행렬은 대체로 악조건 |
조르당 형은 복소수를 빌려야 완성되고, 유리 표준형은 아무것도 빌리지 않는다. 이름의 “유리”가 그 뜻이다.
유리 표준형(rational canonical form) 또는 프로베니우스 표준형(Frobenius normal form)은 체 위의 정사각행렬 를 상사변환으로 도달하는 표준형으로, 동반행렬 블록들의 직합이다. 유일하게 결정되는 모닉 다항식 사슬 (전부 상수가 아님)가 존재해
가 성립한다(). 이 들이 스미스 표준형에서 온 불변인자이고, 그래서 곧바로 두 가지가 읽힌다 — 는 최소다항식이고, 는 특성다항식이다.
이름의 “유리(rational)“는 유리수와는 상관이 없다. 의 성분이 사는 체 안에서 사칙연산만으로 도달할 수 있다는 뜻이다. 조르당 표준형은 특성다항식이 일차식으로 완전히 쪼개져야 존재하므로 실수 행렬을 다루면서도 복소수로 나가야 하지만, 유리 표준형은 유리수 행렬이면 유리수 안에서, 위의 행렬이면 안에서 끝난다.
2. 어디서 나오는가 — -가군 한 줄[편집]
증명의 뼈대가 놀랄 만큼 짧아서 적어 둘 가치가 있다. 위에 다항식의 작용을 로 정의하면 은 -가군이 된다. 케일리-해밀턴 정리가 이 가군이 꼬임 가군임을 보장하고, 가 주 아이디얼 정역이므로 유한생성 꼬임 가군의 구조정리가 그대로 적용된다.
각 조각 에서 기저 을 잡고 ” 를 곱하는 사상”의 행렬을 쓰면 그것이 정확히 다. 끝이다. 유리 표준형은 정수 아벨군의 구조정리와 문자 그대로 같은 정리이고, 를 로 바꿔 쓴 것뿐이다. 계산 절차가 의 스미스 표준형인 것도 같은 이유다.
2.1. 예제 — 멱영행렬 세 개[편집]
멱영행렬로 감을 잡자. 조르당 블록 구성이 인 행렬의 초등인자는 이고, 이를 사슬로 다시 묶으면 불변인자는 , 다(큰 것부터 뒤로, 작은 것을 앞으로 채우는 것이 규칙). 따라서 유리 표준형은
이고, 최소다항식은 , 특성다항식은 이다. 같은 논리로 은 불변인자가 하나뿐이라 블록이 하나, (즉 영행렬)은 라 블록이 셋이다.
반대쪽 극단도 짚어 두자. 단위행렬 의 불변인자는 세 개이므로 유리 표준형이 블록 셋 — 즉 자기 자신이다. 반면 최소다항식과 특성다항식이 같은 비퇴화(nonderogatory) 행렬은 불변인자가 하나뿐이라 동반행렬 하나가 통째로 답이 된다. 무작위로 뽑은 행렬은 거의 확실히 이쪽이고, 그래서 “유리 표준형이 알려주는 정보가 있다”는 것 자체가 이미 특수한 구조가 박혀 있다는 신호다.
2.2. 순환 벡터라는 다른 말[편집]
블록이 하나뿐이라는 것은 순환 벡터가 존재한다는 것과 같은 말이다. 어떤 에 대해 가 의 기저가 되면 그 기저에서 의 행렬이 곧 동반행렬이기 때문이다. 즉 크릴로프 행렬 가 가역이면 다.
이 관점이 크리로프 부분공간법과 정확히 맞물린다. 크릴로프 부분공간이 자라기를 멈추는 차원이 의 등급이고, 그 등급이 에 도달하는 것이 순환 벡터 조건이다. 유리 표준형은 그 이야기를 벡터 하나가 아니라 공간 전체에 대해 한 것 — ” 을 -순환 부분공간 몇 개의 직합으로 최소 개수로 쪼개면 몇 조각이 나오는가”에 답한다. 조각의 개수는 어떤 고유값에 대해서든 기하적 중복도의 최댓값과 같다.
3. 체를 바꿔도 변하지 않는다[편집]
유리 표준형이 실무에서 값을 하는 지점은 유일성의 강도다.
이고 라 하자. 와 가 위에서 상사이면, 와 는 이미 위에서 상사다.
증명은 한 줄이다. 유리 표준형은 안의 사칙연산만으로 유일하게 결정되므로 에서 계산하든 에서 계산하든 같은 결과가 나오고, 에서 같다면 에서도 같다. 실수 행렬 두 개가 복소수 위에서 상사면 실수 위에서도 상사라는, 처음 들으면 전혀 자명하지 않은 사실이 이렇게 공짜로 떨어진다.1
여기서 상사 판정 알고리즘이 나온다. 조르당 형으로 판정하려면 특성다항식의 근을 구해야 하는데, 근은 일반적으로 그 체 안에 없고 있더라도 정확히 표현할 수 없다. 반면
- 와 의 스미스 표준형을 각각 구하고,
- 불변인자 목록을 비교한다.
이 절차는 근을 전혀 건드리지 않고 다항식의 gcd와 나눗셈만 쓴다. 유한체 위에서라면 완전히 정확하게, 유리수 위에서라면 다중정밀 유리수 산술로 끝까지 정확하게 돌아간다. 소박한 구현은 다항식 성분의 차수와 계수가 부풀어 스미스 표준형 특유의 성분 폭발을 겪지만, 크릴로프 수열에서 곧바로 불변인자를 뽑는 현대 알고리즘(오첼로, 스토르요한 계열)은 체 연산 규모로 유리 표준형을 계산한다. 컴퓨터 대수 시스템의 FrobeniusForm/rational_form 이 이 계열이다.
4. 조르당 형과의 관계[편집]
두 표준형은 경쟁 관계가 아니라 같은 정보를 다른 해상도로 쪼갠 것이다.
불변인자 를 그 체 위의 기약 다항식 거듭제곱으로 분해하면 이고, 중국인의 나머지 정리로 가군을 더 잘게 쪼개면
가 된다. 이 들을 초등인자(elementary divisor)라 하고, 대응하는 표준형을 1차 유리 표준형(primary rational canonical form)이라 한다. 그런데 가 대수적으로 닫혀 있으면 기약 다항식은 뿐이므로 초등인자가 전부 꼴이고, 는 조르당 블록 와 상사다. 조르당 표준형은 대수적으로 닫힌 체 위의 1차 유리 표준형이다 — 기저를 예쁘게 다시 고른 것 말고는 새로운 내용이 없다.
이면 기약 다항식이 일차식과 판별식 음수인 이차식 두 종류라, 이차식 쪽 초등인자가 회전-확대 블록으로 나타난다. 이것이 실 조르당 형이며, 복소 고유값 쌍을 복소수 없이 다루는 진동 해석·슈어 분해의 실수 버전과 같은 발상이다.
| 유리 표준형 | 조르당 표준형 | |
|---|---|---|
| 필요 조건 | 없음 (임의의 체) | 특성다항식이 일차식으로 분해 |
| 블록 | 동반행렬 | |
| 결정 데이터 | 불변인자 (사슬) | 초등인자 (고유값별 블록 크기) |
| 계산에 근이 필요? | 아니오 | 예 |
| 성분이 원래 체 안? | 예 | 아니오일 수 있음 |
5. 수치해석에서는 왜 쓰지 않는가[편집]
이론적 매력과 별개로, 부동소수점에서 유리 표준형을 계산하는 것은 조르당 표준형만큼이나 나쁜 생각이다. 이유가 두 겹이다.
불변인자가 불연속이다. 대부분의 행렬은 불변인자가 하나뿐이고( 특성다항식 최소다항식, 즉 비퇴화) 블록이 여러 개인 것은 측도 0의 사건이다. 반올림 한 번이면 블록 구조가 통째로 무너진다. 최소다항식 문서에서 다룬 논리 그대로 — 후진 안정한 알고리즘은 원리적으로 이 구조를 복원할 수 없다.
설령 구조를 안다 해도 동반행렬 자체가 악조건이다. 다항식 계수를 그대로 성분으로 갖는 행렬은 고유값이 계수 섭동에 극도로 민감할 수 있다(윌킨슨의 20차 다항식이 그 교과서적 예다). 게다가 유리 표준형에 도달하는 고전적 절차인 다닐렙스키 방법은 비직교 상사변환을 쓰고 그 과정에서 작은 피벗으로 나누는 자리가 생기므로, 변환행렬 의 조건수에 상한이 없다. 정확한 답을 얻으려면 정확 산술로 가야 하고, 부동소수점에서는 슈어 분해로 가야 한다.
제어공학은 이 교훈을 비싸게 배웠다. 상태공간 모형을 제어 표준형(controllable canonical form)으로 바꾸는 변환이 본질적으로 동반행렬로 가는 변환인데, 극배치 공식이 예뻐진다는 이유로 이 경로가 오래 애용되다가 차수가 조금만 높아져도(대략 ) 결과가 무의미해진다는 것이 1970~80년대에 정리됐다. 요즘 제어 라이브러리가 직교변환 기반의 헤센베르크 형이나 균형 실현으로 극배치를 푸는 이유가 이것이다.2
그렇다고 동반행렬이 완전히 추방된 것은 아니다. 다항식 근을 구하는 표준 관행 — MATLAB roots 나 NumPy roots — 이 정확히 계수로 동반행렬을 만들고 QR 알고리즘을 돌리는 것이다. 이때는 균형화(balancing)를 먼저 걸어 조건수를 낮추는 것이 필수이고, 균형화를 끄면 고차 다항식에서 눈에 띄게 나빠진다. “동반행렬을 피하라”는 원칙과 “근은 동반행렬로 구한다”는 관행이 공존하는 이유는, 근 문제에서는 애초에 계수 자체가 데이터라 조건수의 책임 소재가 다르기 때문이다.3
6. 정확 산술에서의 쓰임새[편집]
유리 표준형이 실제로 밥값을 하는 곳은 유한체와 정확 산술 세계다.
- 상사 판정. 위에서 본 그대로. 유한체 위 선형변환의 분류, 표현론 계산, 군의 원소가 켤레인지 판정하는 문제에 그대로 들어간다.
- 가군 구조 읽기. 순환 부분공간 분해가 곧 불변인자 분해이므로, “이 벡터로 생성되는 -불변 부분공간의 차원”이 의 차수로 즉시 나온다. 크릴로프 부분공간이 언제 자라기를 멈추는지와 정확히 같은 질문이다.
- 부호이론·암호. 선형되먹임 시프트 레지스터의 상태 전이 행렬이 곧 동반행렬이고, 그 최소다항식이 원시 다항식인지가 주기를 결정한다. 유한체 위에서는 나눗셈에 오차가 없으므로 여기서는 유리 표준형이 최선의 도구다.
- 미분방정식 이론. 차 상수계수 선형 상미분방정식을 1차 연립으로 바꾸면 계수행렬이 동반행렬이다. 즉 스칼라 고차 방정식과 동반행렬은 같은 대상이고, 유리 표준형은 “임의의 선형계는 몇 개의 고차 스칼라 방정식으로 쪼개진다”는 진술이다.
7. 관련 문서[편집]
- 스미스 표준형 · 조르당 표준형 · 최소다항식 · 케일리-해밀턴 정리
- 동반행렬 · 특성다항식 · 수반행렬 · 행렬식
- 슈어 분해 · 고유값 문제 · 조건수 · 후진 오차 해석
- 크리로프 부분공간법 · 유한체 · 부동소수점 연산
8. Footnotes[편집]
-
이 따름정리를 처음 보면 “당연한 거 아닌가?” 싶은데, 반례가 될 뻔한 상황을 생각해 보면 전혀 당연하지 않다. 위의 상사변환 행렬 는 성분이 밖에 있어도 되기 때문이다. 정리가 말하는 것은 “그런 가 존재하면 안에서만 성분을 갖는 다른 도 반드시 존재한다”이고, 이건 표준형의 유일성이 없으면 결코 나오지 않는다. ↩
-
프로베니우스 형이 수치적으로 위험하다는 것은 수치선형대수와 제어이론이 서로를 발견하게 만든 사건 중 하나다. 극배치 공식을 손으로 유도하면 동반행렬이 제일 예쁜데, 컴퓨터에 넣으면 제일 못생긴 답이 나온다. “예쁜 공식이 좋은 알고리즘이 아니다”라는 이 바닥 격언의 대표 사례. ↩
-
여담으로 동반행렬의 QR 알고리즘은 헤센베르크 형이 이미 갖춰져 있고 랭크 구조가 있어서, 잘 짜면 메모리· 시간으로 돌릴 수 있다. 그냥 밀집 행렬로 던지면 이다. 근 하나 구하자고 짜리 밀집 행렬을 만드는 코드가 실제로 야생에 존재한다. ↩