76강에서 선형변환을 좌표 없이 정의했습니다. 그리고 기저를 잡으면 행렬로 표현된다고 했습니다.
그런데 기저는 여럿입니다. 그러면 같은 변환에 여러 행렬이 대응하고, 이런 질문이 나옵니다.
두 행렬이 같은 변환의 표현인지 어떻게 압니까.
75강에서 그 관계를 로 적고 닮음이라 불렀습니다. 그때는 "같은 변환을 다른 기저에서 본 것"이라고만 했는데, 76강에서 변환을 정의했으므로 이제 그 말이 정확한 뜻을 갖습니다.
이 강의는 세 가지를 합니다.
첫째, 표현행렬을 정확히 정의하고 기저를 바꿀 때의 변환 규칙을 세웁니다.
둘째, 닮음이 보존하는 양을 찾습니다. 그것이 불변량이며, 좌표를 벗어난 변환 자신의 성질입니다.
셋째, 자연스러운 질문에 이릅니다. 표현이 여럿이라면 가장 단순한 표현이 무엇입니까. 그 답이 06단원의 대각화입니다.
문제. 이고 입니다. 기저 을 씁니다.
(1) 과 를 구하세요.
(2) 각각을 좌표로 쓰세요.
(3) 표현행렬 를 만드세요.
생각의 실마리. 76강 문제 2의 규칙을 씁니다. 표현행렬의 번째 열은 번째 기저벡터의 상을 그 기저의 좌표로 적은 것입니다. 표준기저에서는 좌표 변환이 필요 없었는데, 여기서는 한 단계가 더 붙습니다.
풀이. (1) 계산합니다.
(2) 각각을 좌표로 적습니다.
(3) 열로 놓습니다.
검산에서 확인되며, 한꺼번에 계산하는 방법도 나옵니다.
이 문제에서 배우는 것: 표현행렬의 정의.
표현행렬. 이고 가 의 기저일 때
를 만족하는 행렬을 의 에 대한 표현행렬이라 합니다. 번째 열은 입니다.
만드는 절차가 세 단계입니다.
| 단계 | 하는 일 |
|---|---|
| 1 | 기저벡터에 를 적용합니다 |
| 2 | 결과를 같은 기저의 좌표로 씁니다 |
| 3 | 그 좌표들을 열로 놓습니다 |
2단계를 빠뜨리기 쉽습니다. 표준기저에서는 상이 곧 좌표라 이 단계가 보이지 않는데, 다른 기저에서는 반드시 좌표로 옮겨야 합니다.
한꺼번에 계산하는 식도 유도합니다. 75강 문제 1에서 였으므로
이 예에서 가 대각행렬이 되었습니다. 우연이 아니라 의 두 벡터가 고유벡터이기 때문이며, 84강의 주제입니다.
바로 확인 1.
확인 1-1. 표현행렬의 번째 열이 무엇입니까?
답. 번째 기저벡터의 상을 그 기저의 좌표로 적은 것입니다.
확인 1-2. 만들 때 빠뜨리기 쉬운 단계를 쓰세요.
답. 상을 같은 기저의 좌표로 옮기는 단계입니다.
확인 1-3. 를 와 로 쓰세요.
답. 입니다.
문제. 문제 1의 와 에 대해 를 봅니다.
(1) 를 직접 계산하세요.
(2) 좌표로 옮겨 계산하고 되돌리세요.
(3) 두 경로가 같은 이유를 설명하세요.
생각의 실마리. 75강 문제 4에서 같은 계산을 했습니다. 이번에는 그 도식이 왜 닫히는지를 표현행렬의 정의로 설명합니다.
풀이. (1) 입니다.
(2) 좌표로 옮깁니다. 이고
되돌리면 입니다. 같습니다.
(3) 표현행렬의 정의가 곧 그 진술입니다.
양변에 를 곱하면 이므로 입니다.
이 문제에서 배우는 것: 도식이 닫힙니다.
가환 도식.
어느 경로로 가도 같은 곳에 도착합니다.
이 그림이 이 강의의 중심입니다. 위쪽 길은 원래 공간에서 계산하는 것이고 아래쪽 길은 좌표로 옮겨 계산하는 것인데, 두 길이 같으므로 편한 쪽을 고르면 됩니다.
두 식이 같은 내용의 양방향입니다. 왼쪽은 "좌표에서 계산한 뒤 되돌린다"이고 오른쪽은 "원래 공간의 계산을 좌표로 옮긴다"입니다.
75강 문제 4에서 을 얻은 것도 이 도식에서 나옵니다. 아래쪽 길을 번 반복하면
이고, 가 대각이면 거듭제곱이 쉽습니다.
바로 확인 2.
확인 2-1. 표현행렬의 정의식을 쓰세요.
답. 입니다.
확인 2-2. 를 로 나타내세요.
답. 입니다.
확인 2-3. 도식이 닫힌다는 말의 뜻을 쓰세요.
답. 어느 경로로 계산해도 결과가 같다는 뜻입니다.
문제. 무작위 행렬 과 가역 에 대해 를 봅니다.
(1) 대각합, 행렬식, 계수를 비교하세요.
(2) 고유값은 어떻습니까?
(3) 프로베니우스 노름은 어떻습니까?
생각의 실마리. (3)이 함정입니다. 직교인 를 쓰면 노름이 보존되므로, 일반적인 결론을 내리려면 직교가 아닌 를 써야 합니다.
풀이. (1) 검산에서 세 경우 모두 일치합니다.
| \operatorname | ||||
|---|---|---|---|---|
| , | ||||
| , | ||||
| , |
(2) 의 고유값이 이고 도 같습니다.
(3) 보존되지 않습니다. 직교가 아닌 을 쓰면
이고 노름이 에서 로 커집니다. 여덟 배 가까이 달라집니다.
그런데 대각합은 이고 고유값은 여전히 입니다.
이 문제에서 배우는 것: 닮음 불변량.
불변량. 닮음으로 변하지 않는 양을 닮음 불변량이라 합니다. 그것은 좌표가 아니라 변환 자신의 성질입니다.
무엇이 보존되고 무엇이 아닌지 정리합니다.
| 양 | 보존 | 이유 |
|---|---|---|
| 대각합 | 예 | |
| 행렬식 | 예 | |
| 계수 | 예 | 가역을 곱해도 계수 보존 |
| 고유값 | 예 | 고유벡터의 좌표만 바뀝니다 |
| 특성다항식 | 예 | 위의 것들을 담습니다 |
| 성분 | 아니오 | 좌표에 딸립니다 |
| 노름 | 아니오 | 길이 구조를 씁니다 |
| 대칭성 | 아니오 | 전치와 어울리지 않습니다 |
| 특이값 | 아니오 | 길이 구조를 씁니다 |
대각합의 보존은 66강 심화 5의 순환 성질입니다.
고유값의 보존도 확인합니다. 이면 에 대해
고유값은 그대로이고 고유벡터의 좌표만 바뀝니다. 당연한 결과입니다. "이 방향은 배 된다"는 사실이 좌표계를 바꾼다고 달라질 리 없습니다.
노름이 보존되지 않는 이유가 중요합니다. 노름은 길이를 재는데, 일반적인 는 길이를 바꿉니다. 은 전단이라 벡터를 늘이므로, 그 좌표계에서 본 행렬의 크기가 달라집니다.
가 직교행렬이면 이야기가 다릅니다.
직교 닮음. 가 직교행렬일 때 를 직교 닮음이라 합니다. 길이 구조까지 보존하므로 노름, 특이값, 대칭성이 모두 유지됩니다.
| 변환 | 보존하는 것 |
|---|---|
| 일반 닮음 | 고유값, 대각합, 행렬식, 계수 |
| 직교 닮음 | 위의 것 노름 특이값 대칭성 |
86강의 스펙트럼 정리와 88강의 특이값 분해가 직교 닮음을 쓰는 이유가 이것입니다. 수치적으로도 안전하며 75강 심화 4에서 본 조건수 이야기와 이어집니다.
바로 확인 3.
확인 3-1. 닮음 불변량을 네 개 쓰세요.
답. 대각합, 행렬식, 계수, 고유값입니다.
확인 3-2. 노름이 보존되지 않는 이유를 쓰세요.
답. 일반적인 기저 변환이 길이를 바꾸기 때문입니다.
확인 3-3. 직교 닮음이 추가로 보존하는 것을 쓰세요.
답. 노름, 특이값, 대칭성입니다.
문제. 다음 두 쌍이 닮았는지 판정하세요.
(1) 와
(2) 와 (영행렬)
(3) 불변량이 모두 같으면 반드시 닮았습니까?
생각의 실마리. 닮지 않음을 보이는 것이 훨씬 쉽습니다. 불변량 하나가 다르면 끝입니다. 반대로 닮았음을 보이려면 실제로 를 찾아야 합니다.
풀이. (1) 닮지 않았습니다. 검산에서 대각합이 과 로 다릅니다. 불변량 하나면 충분합니다.
(2) 흥미로운 경우입니다. 검산에서
| 불변량 | ||
|---|---|---|
| 대각합 | ||
| 행렬식 | ||
| 고유값 | \ | \ |
| 계수 |
대각합, 행렬식, 고유값이 모두 같은데 계수가 다릅니다. 따라서 닮지 않았습니다.
직접 확인할 수도 있습니다. 이므로 영행렬과 닮은 것은 영행렬뿐입니다.
(3) 아닙니다. 반례가 있습니다.
앞의 것은 계수가 이고 뒤의 것은 이므로 이 쌍은 계수로 갈립니다. 그런데 계수까지 같으면서 닮지 않은 예도 존재하며, 완전한 판정에는 조르당 표준형이 필요합니다.
이 문제에서 배우는 것: 불변량의 용도와 한계.
판정의 비대칭.
목적 방법 비용 닮지 않음 불변량 하나가 다름을 보입니다 쌉니다 닮음 를 실제로 찾습니다 비쌉니다
71강과 76강에서 본 것과 같은 구조입니다. 부정은 반례 하나, 긍정은 일반 증명입니다.
와 의 예가 특히 교훈적입니다. 고유값만으로는 부족합니다. 둘 다 고유값이 뿐인데 다른 행렬이며, 그 차이가 계수입니다.
이 현상이 대각화의 한계를 예고합니다. 는 고유값이 뿐이므로 대각화된다면 영행렬과 닮아야 하는데, 방금 아니라고 확인했습니다. 따라서 는 대각화되지 않습니다.
66강 문제 3에서 멱영행렬을 만들었고 76강 문제 5에서 미분이 멱영임을 보았는데, 그런 사상은 대각화되지 않습니다. 85강에서 조건을 정리합니다.
불변량을 실무적으로 정리합니다.
| 상황 | 쓰는 불변량 |
|---|---|
| 빠른 배제 | 대각합, 행렬식 |
| 구조 확인 | 계수 |
| 본질적 판정 | 고유값과 그 중복도 |
| 완전한 판정 | 조르당 표준형 |
바로 확인 4.
확인 4-1. 닮지 않음을 보이는 가장 싼 방법을 쓰세요.
답. 불변량 하나가 다름을 보입니다.
확인 4-2. 과 를 무엇으로 구별합니까?
답. 계수입니다. 과 으로 다릅니다.
확인 4-3. 고유값이 같으면 닮았습니까?
답. 아닙니다. 위의 예가 반례입니다.
문제. 을 미분이라 합니다.
(1) 표준기저에 대한 표현행렬을 구하세요.
(2) 정의역 기저를 , 공역 기저를 로 바꾸세요.
(3) 관찰한 것을 설명하세요.
생각의 실마리. 문제 1의 절차를 쓰되, 상을 적을 때는 공역의 기저를 씁니다. 정의역과 공역이 다르므로 기저가 둘 필요합니다.
풀이. (1) 기저를 미분합니다.
공역 의 좌표로 적어 열로 놓으면
검산에서 의 좌표 에 곱하면 이고, 이것이 입니다.
(2) 새 기저를 미분합니다.
공역 기저 의 좌표로 적으면
표준기저에서와 똑같습니다. 검산에서 확인되며, 새 좌표 에 곱하면 이고 이것이 표준 결과를 새 공역 좌표로 옮긴 값과 같습니다.
(3) 우연이 아닙니다. 미분은 평행이동과 교환됩니다.
기저를 에서 로 옮긴 것이 평행이동이므로, 미분의 표현이 변하지 않습니다.
이 문제에서 배우는 것: 동치.
일반 표현행렬. 이고 의 기저가 , 의 기저가 일 때
이고 번째 열은 입니다.
기저를 양쪽에서 바꾸면
입니다. 양쪽에서 서로 다른 행렬이 곱해집니다.
이 관계를 동치라 합니다. 닮음과 비교합니다.
| 관계 | 형태 | 언제 | 불변량 |
|---|---|---|---|
| 닮음 | , 기저 하나 | 고유값, 대각합, 행렬식, 계수 | |
| 동치 | , 기저 둘 | 계수뿐 | |
| 직교 닮음 | 길이 보존 | 위의 것 노름, 특이값 |
동치는 훨씬 헐겁습니다. 계수만 같으면 동치이며, 표준형이 아주 단순합니다.
검산에서 행렬 에 대해 실제로 이 꼴을 만듭니다. 계수가 이고 결과가 입니다.
74강 문제 4의 그림을 행렬로 적은 것입니다. 정의역에서 행공간 기저와 영공간 기저를 잡고, 공역에서 열공간 기저와 좌영공간 기저를 잡으면 이 모양이 됩니다.
왜 동치가 이렇게 단순한가. 기저를 양쪽에서 독립적으로 고를 수 있어 자유도가 크기 때문입니다. 닮음은 같은 기저를 양쪽에 써야 하므로 제약이 큽니다.
그래서 동치류의 완전한 불변량이 계수 하나이고, 닮음류는 고유값과 그 구조까지 필요합니다.
바로 확인 5.
확인 5-1. 정의역과 공역의 기저가 다를 때 표현행렬의 열이 무엇입니까?
답. 정의역 기저벡터의 상을 공역 기저의 좌표로 적은 것입니다.
확인 5-2. 동치의 완전한 불변량을 쓰세요.
답. 계수 하나입니다.
확인 5-3. 동치가 닮음보다 헐거운 이유를 쓰세요.
답. 양쪽 기저를 독립적으로 고를 수 있어 자유도가 크기 때문입니다.
| 개념 | 식 |
|---|---|
| 표현행렬 | [T]_{B}[\mathbf{v}]_{B}=[T(\mathbf{v})]_ |
| 열 | 번째 열은 [T(\mathbf{b}_{j})]_ |
| 계산 | |
| 되돌리기 | A=B[T]_{B}B^ |
| 기저 교체 | , P=P_ |
| 동치 |
| 불변량 | 닮음 | 직교 닮음 | 동치 |
|---|---|---|---|
| 계수 | 예 | 예 | 예 |
| 대각합 | 예 | 예 | 아니오 |
| 행렬식 | 예 | 예 | 아니오 |
| 고유값 | 예 | 예 | 아니오 |
| 노름 | 아니오 | 예 | 아니오 |
| 특이값 | 아니오 | 예 | 아니오 |
| 판정 | 방법 |
|---|---|
| 닮지 않음 | 불변량 하나가 다름 |
| 닮음 | 를 찾아야 합니다 |
| 동치 | 계수만 비교 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 상을 좌표로 안 옮깁니다 | 2단계를 반드시 거칩니다 |
| 과 를 섞습니다 | 어느 쪽 좌표인지 확인합니다 |
| 노름이 보존된다고 봅니다 | 직교 닮음일 때만입니다 |
| 고유값 같으면 닮았다고 봅니다 | 계수가 다를 수 있습니다 |
문제 6. 표현행렬의 정의식을 쓰세요.
답. 입니다.
문제 7. 의 번째 열을 쓰세요.
답. 입니다.
문제 8. 를 와 로 나타내세요.
답. 입니다.
문제 9. 기저를 에서 로 바꿀 때의 변환 규칙을 쓰세요.
답. 이며 입니다.
문제 10. 닮음 불변량을 네 개 쓰세요.
답. 대각합, 행렬식, 계수, 고유값입니다.
문제 11. 대각합이 보존되는 이유를 쓰세요.
답. 입니다.
문제 12. 고유값이 보존되는 이유를 쓰세요.
답. 이면 가 의 같은 고유값의 고유벡터입니다.
문제 13. 노름이 보존되지 않는 이유를 쓰세요.
답. 일반적인 기저 변환이 길이를 바꾸기 때문입니다.
문제 14. 와 은 닮았습니까?
답. 닮았습니다. 좌표 순서를 바꾸는 순열행렬로 옮겨집니다.
문제 15. 과 를 무엇으로 구별합니까?
답. 계수입니다.
문제 16. 그 사실에서 대각화에 대해 무엇을 알 수 있습니까?
답. 고유값이 뿐인데 영행렬과 닮지 않으므로 대각화되지 않습니다.
문제 17. 동치의 완전한 불변량을 쓰세요.
답. 계수입니다.
문제 18. 동치의 표준형을 쓰세요.
답. 입니다.
심화 1. 특성다항식을 정의하고 그것이 닮음 불변임을 증명하세요.
풀이. 78강에서 행렬식을 정식으로 다루지만, 여기서 정의만 씁니다.
특성다항식.
닮음 불변입니다.
**중간 단계에서 **를 썼습니다. 단위행렬은 어떤 좌표계에서도 단위행렬입니다.
특성다항식이 여러 불변량을 담고 있습니다. 일 때 전개하면
계수에 대각합과 행렬식이 직접 나타납니다. 일반적으로
이고, 모든 계수가 닮음 불변입니다. 이 계수들을 주소행렬식의 합이라 하며, 대각합과 행렬식이 양 끝입니다.
문제 4의 로 확인합니다.
**근이 과 **이고 검산의 고유값과 같습니다.
특성다항식이 고유값을 담는 이유는 84강에서 봅니다. 미리 말하면 가 고유값인 것과 가 특이한 것이 같고, 69강에서 그것이 과 같습니다.
주의할 점이 있습니다. 특성다항식이 같아도 닮았다는 보장은 없습니다. 문제 4의 와 가 그 예입니다.
같은데 닮지 않았습니다. 특성다항식은 필요조건을 줄 뿐이며, 완전한 판정에는 최소다항식이나 조르당 구조가 필요합니다.
심화 2. 조르당 표준형을 소개하고 닮음의 완전한 분류를 논하세요.
풀이. 닮음류를 완전히 분류하는 것이 목표입니다.
대각화가 되면 간단합니다. 고유값의 목록(중복 포함)이 완전한 불변량입니다.
안 될 때가 문제입니다. 문제 4에서 이 대각화되지 않음을 보았습니다.
이런 경우까지 포함하는 표준형이 있습니다.
조르당 표준형. 복소수 위에서 모든 정사각행렬은
와 닮으며, 블록의 순서를 빼면 유일합니다.
대각선에 고유값이 놓이고 그 바로 위에 이 붙습니다. 블록 크기가 이면 그냥 대각 성분이며, 모든 블록이 크기 인 경우가 대각화 가능한 경우입니다.
의 조르당 형은 자신이고 의 것은 입니다. 블록 구조가 다르므로 닮지 않습니다.
이제 완전한 판정이 가능합니다.
블록 구조를 읽는 방법도 있습니다. 각 고유값 에 대해
를 계산하면 블록 크기의 분포가 정해집니다. 73강의 계수-퇴화차수를 반복 적용하는 것입니다.
에서 일 때 이고 입니다. 에서는 입니다. 첫 단계에서 이미 갈립니다.
조르당 형의 한계도 짚어 둡니다.
| 문제 | 내용 |
|---|---|
| 복소수가 필요합니다 | 실수 위에서는 실조르당 형을 씁니다 |
| 수치적으로 불안정합니다 | 성분을 조금 흔들면 구조가 바뀝니다 |
| 계산이 어렵습니다 | 고유값의 중복도를 정확히 알아야 합니다 |
둘째 줄 때문에 실무에서는 거의 쓰지 않습니다. 의 성분을 만큼 흔들면 고유값이 갈라져 대각화 가능해집니다. 그래서 수치 계산에서는 조르당 대신 슈어 분해나 특이값 분해를 씁니다. 88강에서 다룹니다.
심화 3. 표현행렬이 무엇에 쓰이는지 실제 사례로 정리하세요.
풀이. 추상적인 사상을 행렬로 옮겨 계산하는 사례를 봅니다.
미분과 적분. 76강 문제 5에서 다뤘습니다. 에서 미분이 행렬이 되므로, 다항식 조작이 행렬 연산이 됩니다. 스펙트럼법으로 미분방정식을 풀 때 이 형태를 씁니다.
회전의 합성. 3차원 회전을 표현행렬로 다루면 합성이 곱이 됩니다. 로봇공학과 컴퓨터그래픽스의 기본이며, 쿼터니언은 같은 군의 다른 표현입니다.
양자역학. 관측량이 자기수반 연산자이고, 기저를 잡으면 에르미트 행렬이 됩니다. 고유값이 측정값이고 고유벡터가 상태입니다. 86강의 스펙트럼 정리가 그 수학적 내용입니다.
마르코프 연쇄. 상태 전이가 선형사상이고 표현행렬이 전이행렬입니다. 단계 후의 분포가 이므로 75강의 대각화가 장기 거동을 줍니다.
그래프. 인접행렬이 "이웃으로 한 걸음"이라는 사상의 표현입니다. 의 성분이 길이 인 경로의 개수이며, 고유값이 그래프의 성질을 담습니다.
신경망. 각 층의 가중치 행렬이 선형 부분의 표현입니다. 다만 활성화가 비선형이라 층을 합성해도 곱으로 줄지 않으며, 그것이 깊이가 의미를 갖는 이유입니다.
정리합니다.
| 분야 | 사상 | 표현행렬 |
|---|---|---|
| 미적분 | 미분 | 위대각 행렬 |
| 그래픽스 | 회전 | 직교행렬 |
| 양자역학 | 관측량 | 에르미트 행렬 |
| 확률 | 전이 | 확률행렬 |
| 그래프 | 이웃 | 인접행렬 |
공통 구조는 이렇습니다. 대상이 무엇이든 선형이면 기저를 잡아 행렬로 옮기고, 이 과목의 도구를 그대로 씁니다. 선형대수가 널리 쓰이는 이유가 여기 있습니다.
심화 4. 좋은 기저를 찾는 문제로 이 강의를 정리하세요.
풀이. 이 강의의 결론은 표현이 여럿이라는 것이고, 그러면 자연스럽게 최선을 묻게 됩니다.
질문. 어떤 기저를 잡아야 가 가장 단순합니까.
"단순"의 뜻에 따라 답이 달라집니다.
대각. 좌표가 서로 섞이지 않으므로 가장 좋습니다. 가능하면 이것을 씁니다.
언제 가능한가가 85강의 주제이며, 조건은 고유벡터로 기저를 만들 수 있는 것입니다.
대각 + 직교. 대각화하는 기저가 정규직교이면 계산도 싸고 수치적으로도 안전합니다. 대칭행렬에서 언제나 가능하며 86강의 스펙트럼 정리입니다.
삼각. 대각화가 안 되어도 위삼각으로는 만들 수 있습니다. 복소수 위에서 직교 닮음으로 가능하며, 이것이 슈어 분해입니다. 수치적으로 안정해 실무의 표준입니다.
조르당. 이론적으로 가장 세밀하지만 수치적으로 불안정합니다.
두 기저를 쓰면. 정의역과 공역에서 각각 정규직교기저를 잡으면 언제나 대각으로 만들 수 있습니다. 88강의 특이값 분해입니다.
정리합니다.
| 표준형 | 조건 | 강의 |
|---|---|---|
| 대각 (일반 닮음) | 고유벡터가 기저를 이룹니다 | 85 |
| 대각 (직교 닮음) | 대칭입니다 | 86 |
| 위삼각 (직교 닮음) | 언제나 (복소수 위) | 88 예고 |
| 조르당 | 언제나 (복소수 위) | 심화 2 |
| (기저 둘) | 언제나 | 88 |
마지막 줄이 가장 강합니다. 제약을 줄인 대가로 언제나 성공합니다. 문제 5에서 자유도가 클수록 표준형이 단순하다고 한 원리입니다.
남은 단원의 지도가 이렇게 그려집니다. 05단원에서 직교기저를 만드는 법을 배우고, 06단원에서 고유값으로 대각화하며, 그것이 안 될 때 특이값으로 대체합니다.
심화 5. 표현행렬을 바꿀 때 수치적으로 주의할 점을 논하세요.
풀이. 이론적으로 인데, 부동소수점에서는 그대로가 아닙니다.
첫째, 의 조건수가 오차를 증폭합니다. 75강 심화 4에서 본 대로 기저가 나쁘면 좌표 계산이 불안정합니다. 여기서는 곱이 두 번 들어가므로 더 나빠집니다.
이면 배정밀도의 이 까지 커집니다.
둘째, 문제 3의 예가 경고입니다. 로 닮음 변환했더니 노름이 여덟 배가 되었습니다. 성분이 커지면 반올림 오차도 함께 커집니다.
셋째, 대각화가 거의 불가능한 경우가 위험합니다. 고유값이 아주 가까우면 고유벡터가 거의 평행해지고, 의 조건수가 폭발합니다.
에서 이면 두 고유벡터가 겹쳐 갑니다. 일 때는 대각화 자체가 불가능하고, 그 근처에서는 가능하지만 수치적으로 쓸모없습니다.
대응책은 언제나 같습니다.
가 직교이면 이므로 오차가 증폭되지 않습니다. 그래서 실무 알고리즘은 대각화 대신 슈어 분해를 씁니다. 위삼각까지만 가지만 직교 변환으로 얻으므로 안전합니다.
| 분해 | 변환 | 조건수 | 안정성 |
|---|---|---|---|
| 대각화 | 일반 | 클 수 있습니다 | 나쁠 수 있습니다 |
| 슈어 | 직교 | 좋습니다 | |
| SVD | 직교 둘 | 가장 좋습니다 |
이 과목에서 대각화를 배우는 것은 이해를 위해서이고, 실제 계산은 뒤의 두 줄로 합니다. 69강과 70강에서 반복한 "공식과 계산법은 다르다"가 여기서도 같습니다.
심화 6. 표현이 여럿이라는 사실이 다른 분야에서 어떻게 나타나는지 정리하세요.
풀이. "같은 대상, 여러 표현"이라는 구조는 수학 곳곳에 있습니다.
군의 표현론. 추상적인 군을 행렬군으로 나타내는 것이 표현이며, 같은 군에 여러 표현이 있습니다. 기약 표현으로 분해하는 것이 목표이고, 이 강의의 대각화와 같은 발상입니다. 물리의 대칭성 분석이 여기 기반합니다.
좌표계 선택. 물리 문제에서 극좌표를 쓸지 직교좌표를 쓸지가 계산의 난이도를 바꿉니다. 문제의 대칭성에 맞는 좌표계가 좋은 기저입니다.
게이지. 전자기학에서 퍼텐셜의 선택에 자유도가 있고, 물리량은 그 선택과 무관합니다. 불변량이 물리이고 나머지는 표현이라는 구조가 이 강의와 같습니다.
프로그래밍의 자료구조. 같은 집합을 배열로 담을지 해시로 담을지에 따라 연산 비용이 달라집니다. 저장 형식은 표현이고 집합 자체가 대상입니다.
기저 선택과 딥러닝. 임베딩 공간의 좌표는 학습으로 정해지며 회전에 대해 자유도가 있습니다. 그래서 개별 차원의 의미를 묻는 것이 대체로 잘못된 질문이고, 방향과 부분공간을 봐야 합니다. 256강에서 다시 다룹니다.
정리합니다.
| 분야 | 대상 | 표현 | 불변량 |
|---|---|---|---|
| 선형대수 | 선형변환 | 표현행렬 | 고유값 등 |
| 표현론 | 군 | 행렬군 | 지표 |
| 물리 | 물리량 | 좌표 성분 | 스칼라 |
| 전자기학 | 장 | 퍼텐셜 | 관측량 |
| 딥러닝 | 의미 구조 | 임베딩 좌표 | 상대 관계 |
공통 태도는 이렇습니다. 표현은 계산을 위해 고르는 것이고, 결론은 표현에 무관해야 합니다. 표현에 의존하는 결론이 나오면 무언가 잘못된 것이며, 이것이 불변량을 따지는 이유입니다.
이 강의에서는 numpy만 씁니다. 표현행렬을 정의대로 만들어 공식과 맞추고, 닮음 불변량을 무작위 행렬로 확인하며, 보존되지 않는 것도 반례로 보입니다. 닮지 않음은 불변량 하나로 끝나므로 코드가 완결된 증거를 줍니다.
import numpy as np
# --- 문제 1: 표현행렬을 기저의 상으로 만듭니다 ---------------------------
A = np.array([[2.,1.],[1.,2.]])
B = np.column_stack([[1.,1.],[1.,-1.]])
cols = [np.linalg.solve(B, A@B[:,j]) for j in range(2)] # 상을 B 좌표로
TB = np.column_stack(cols)
print((np.round(TB,10)+0.0).tolist()) # [[3.0, 0.0], [0.0, 1.0]]
print((np.round(np.linalg.solve(B, A@B),10)+0.0).tolist()) # B^-1 A B 와 같습니다
# --- 문제 2: 두 경로가 같은 답을 줍니다 ----------------------------------
v = np.array([4.,2.])
print(np.round(A@v,10).tolist()) # [10.0, 8.0]
vb = np.linalg.solve(B, v); print(np.round(vb,10).tolist()) # [3.0, 1.0]
print(np.round(TB@vb,10).tolist(), np.round(B@(TB@vb),10).tolist())
# [9.0, 1.0] [10.0, 8.0]
# --- 문제 3: 닮음 불변량 -------------------------------------------------
rng = np.random.default_rng(11)
for _ in range(3):
S = rng.standard_normal((3,3)); M = rng.standard_normal((3,3))
N = np.linalg.solve(S, M@S)
print("%.8f %.8f" % (np.trace(M), np.trace(N)),
"%.8f %.8f" % (np.linalg.det(M), np.linalg.det(N)),
int(np.linalg.matrix_rank(M)), int(np.linalg.matrix_rank(N)))
# -2.18642100 -2.18642100 -0.74787658 -0.74787658 3 3
# -1.72634515 -1.72634515 -0.66744935 -0.66744935 3 3
# -1.17524990 -1.17524990 -0.51118644 -0.51118644 3 3
M2 = np.array([[2.,1.],[1.,2.]]); S2 = np.column_stack([[1.,1.],[1.,-1.]])
N2 = np.linalg.solve(S2, M2@S2)
print(np.round(np.linalg.eigvals(M2),8).tolist(),
np.round(np.linalg.eigvals(N2),8).tolist()) # [3.0, 1.0] [3.0, 1.0]
# --- 문제 3: 노름은 보존되지 않습니다 (직교가 아닌 S) -------------------
S3 = np.array([[1.,5.],[0.,1.]])
N3 = np.linalg.solve(S3, M2@S3)
print((np.round(N3,10)+0.0).tolist()) # [[-3.0, -24.0], [1.0, 7.0]]
print("%.8f %.8f %.8f" % (np.linalg.norm(M2), np.linalg.norm(N2), np.linalg.norm(N3)))
# 3.16227766 3.16227766 25.19920634 <- 여덟 배 가까이 달라집니다
print(float(np.trace(N3)), np.round(np.linalg.eigvals(N3),8).tolist())
# 4.0 [1.0, 3.0] <- 대각합과 고유값은 그대로입니다
# --- 문제 4: 불변량으로 닮지 않음을 보입니다 ----------------------------
X = np.array([[1.,0.],[0.,2.]]); Y = np.array([[1.,0.],[0.,3.]])
print(float(np.trace(X)), float(np.trace(Y))) # 3.0 4.0
Z = np.array([[0.,1.],[0.,0.]]); O = np.zeros((2,2))
print(float(np.trace(Z)), float(np.trace(O)),
float(np.linalg.det(Z)), float(np.linalg.det(O))) # 0.0 0.0 0.0 0.0
print(int(np.linalg.matrix_rank(Z)), int(np.linalg.matrix_rank(O))) # 1 0
print(np.round(np.linalg.eigvals(Z),10).tolist()) # [0.0, 0.0]
# --- 문제 5: 기저가 둘일 때 (미분 P2 -> P1) -----------------------------
Dm = np.array([[0.,1.,0.],[0.,0.,2.]])
p = np.array([3.,-4.,5.]) # 3 - 4x + 5x^2
print((Dm@p).tolist()) # [-4.0, 10.0]
Pin = np.array([[1.,-1.,1.],[0.,1.,-2.],[0.,0.,1.]]) # {1, x-1, (x-1)^2}
Pout = np.array([[1.,-1.],[0.,1.]]) # {1, x-1}
Dnew = np.linalg.solve(Pout, Dm@Pin)
print((np.round(Dnew,10)+0.0).tolist()) # [[0.0, 1.0, 0.0], [0.0, 0.0, 2.0]]
pnew = np.linalg.solve(Pin, p); print(np.round(pnew,10).tolist()) # [4.0, 6.0, 5.0]
print(np.round(Dnew@pnew,10).tolist()) # [6.0, 10.0]
print(np.round(np.linalg.solve(Pout, Dm@p),10).tolist()) # [6.0, 10.0]
# --- 문제 5: 동치의 표준형 -----------------------------------------------
G = np.array([[1.,2.,3.],[2.,4.,6.],[1.,1.,1.]])
U, s, Vt = np.linalg.svd(G)
r = int(np.sum(s > 1e-10)); print(r, np.round(s,8).tolist())
# 2 [8.51978293, 0.64288323, 0.0]
Pm = np.diag([1/s[i] if i < r else 1.0 for i in range(3)]) @ U.T
print((np.round(Pm @ G @ Vt.T, 8)+0.0).tolist())
# [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 0.0]]
실행하면 주석과 같은 값이 나옵니다. 다섯 곳을 짚어 둡니다.
첫째, 표현행렬을 기저의 상을 좌표로 옮겨 만든 결과가 와 정확히 같습니다. 그리고 로 대각입니다.
둘째, 두 경로가 로 일치합니다. 좌표에서 계산한 을 되돌린 값입니다.
셋째가 이 강의의 중심 확인입니다. 무작위 세 경우에서 대각합, 행렬식, 계수가 소수 여덟 자리까지 일치합니다. 고유값도 같습니다.
넷째가 대비입니다. 직교가 아닌 으로 닮음 변환하면 노름이 에서 로 커집니다. 그런데 대각합은 여전히 이고 고유값은 입니다. 무엇이 좌표에 딸린 것이고 무엇이 변환 자신의 성질인지가 한 화면에 드러납니다.
다섯째, 와 가 대각합·행렬식·고유값이 모두 같은데 계수가 과 으로 다릅니다. 고유값만으로는 부족하다는 증거이며, 여기서 가 대각화되지 않음이 따라옵니다.
문제 5에서 미분의 표현이 기저를 로 옮겨도 같은 것도 눈여겨보십시오. 미분이 평행이동과 교환되기 때문입니다.
코드로 할 수 없는 일도 분명히 해 둡니다. 불변량이 보존된다는 것은 무작위 예로 증명되지 않습니다. 문제 3의 논증이 그 자리를 맡습니다. 반면 닮지 않음은 불변량 하나가 다르면 끝이므로, 와 의 계수 비교는 완결된 증명입니다. 또 마지막의 동치 표준형은 특이값 분해를 미리 쓴 것이며, 그 정당화는 88강의 내용입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| [T]_ | 표현행렬 | 기저 에 대한 행렬입니다 |
| [T]_ | 일반 표현행렬 | 정의역 , 공역 입니다 |
| 닮음 | 인 가역 가 있습니다 | |
| 동치 | 양쪽에서 가역을 곱합니다 | |
| 직교 닮음 | 길이 구조를 보존합니다 | |
| 특성다항식 | 입니다 | |
| 조르당 표준형 | Jordan form | 닮음의 완전한 분류입니다 |
| 불변량 | invariant | 좌표와 무관한 양입니다 |
다음 78강에서는 행렬식을 정식으로 다룹니다. 이 강의에서 불변량으로 계속 언급했는데, 정의와 계산법을 세우고 왜 가역 여부를 가리는지 밝힙니다. 그리고 79강에서 그것이 부피 배율임을 보이면, 왜 좌표와 무관한 양인지가 기하적으로 설명됩니다.