72강에서 같은 벡터가 기저에 따라 다른 좌표를 갖는 것을 보았습니다. 가 표준기저에서는 이고 다른 기저에서는 였습니다.
그러면 두 가지를 물어야 합니다.
첫째, 한 좌표에서 다른 좌표로 어떻게 옮깁니까.
둘째, 그렇게 옮겨서 무엇을 얻습니까.
둘째 질문이 이 강의의 진짜 목적입니다. 좌표를 바꾸는 것은 계산 편의를 위한 잔재주가 아니라, 문제를 쉬운 자리로 옮기는 근본적인 방법입니다.
이미 두 번 그렇게 했습니다. 60강에서 미분방정식을 푸리에 좌표로 옮겨 미분을 곱셈으로 바꿨고, 64강에서 벡터를 한 방향과 그에 수직인 방향으로 갈랐습니다. 이 강의에서 그 조작에 이름을 붙이고, 04단원의 닮음과 06단원의 대각화로 가는 다리를 놓습니다.
문제. 은 의 기저입니다.
(1) 의 좌표를 구하세요.
(2) 그 계산이 무엇을 푸는 일인지 쓰세요.
(3) 일반적인 방법을 세우세요.
생각의 실마리. 좌표란 인 계수입니다. 66강 문제 1에서 그런 식은 행렬-벡터 곱이었습니다.
풀이. (1) 을 풉니다.
(2) 기저벡터를 열로 놓은 행렬을 라 하면
이므로 연립방정식 하나를 푸는 일입니다.
(3) 가 가역이므로
검산에서 이고 입니다.
이 문제에서 배우는 것: 기저행렬.
기저행렬. 기저 의 벡터들을 열로 놓은 행렬을 같은 기호 로 씁니다. 그러면
방향 식 좌표 → 벡터 \mathbf{v}=B\,[\mathbf{v}]_ 벡터 → 좌표 [\mathbf{v}]_{B}=B^{-1}\mathbf
가 가역인 이유는 열이 일차독립이기 때문입니다. 69강의 가역 동치 조건입니다.
방향을 헷갈리지 않는 요령이 있습니다. **의 열이 기저벡터이므로 **입니다. 즉 는 좌표를 벡터로 펴는 쪽이고, 역행렬이 반대입니다.
표준기저에서는 이므로 좌표와 벡터가 같습니다. 평소에 둘을 구별하지 않는 이유입니다.
69강 문제 5의 경고가 여기서도 적용됩니다. 좌표를 구할 때 을 만들지 말고 를 푸세요. 검산에서는 확인을 위해 역행렬을 계산했지만, 실제 계산에서는 solve를 씁니다.
바로 확인 1.
확인 1-1. 좌표에서 벡터로 가는 식을 쓰세요.
답. 입니다.
확인 1-2. 가 가역인 이유를 쓰세요.
답. 열이 기저이므로 일차독립이기 때문입니다.
확인 1-3. 표준기저의 기저행렬을 쓰세요.
답. 단위행렬 입니다.
문제. 과 을 봅니다.
(1) 의 두 좌표를 각각 구하세요.
(2) 에서 로 가는 행렬을 구하세요.
(3) 반대 방향은 어떻습니까?
생각의 실마리. 두 표현 사이를 잇는 것은 원래 벡터입니다. 좌표에서 벡터로 갔다가 좌표로 오면 됩니다.
풀이. (1) 검산에서
확인해 봅니다. 입니다.
(2) 두 식을 잇습니다.
합치면
이므로 입니다. 검산에서
이고 로 맞습니다.
(3) 입니다. 검산에서 이고 되돌리면 입니다.
이 문제에서 배우는 것: 기저 변환행렬.
변환행렬. 에서 로 가는 변환행렬은
이고 입니다.
기억하는 법이 있습니다. 아래첨자를 화살표처럼 읽으면 에서 시작해 로 갑니다. 그리고 합성이 자연스럽게 이어집니다.
66강의 곱셈이 합성이라는 관점이 그대로 쓰입니다.
의 열이 무엇인지도 봅니다. 이므로
입니다. 즉 의 번째 열은 의 번째 기저벡터를 좌표로 쓴 것입니다. 66강 문제 5에서 "행렬의 열은 기저벡터가 가는 자리"라 했는데 같은 규칙입니다.
가 표준기저이면 이므로 입니다. 그러면 문제 1의 식이 특별한 경우가 됩니다.
주의할 점이 있습니다. 좌표는 벡터와 반대로 움직입니다. 기저벡터를 크게 잡으면 같은 벡터의 좌표는 작아집니다. 예를 들어 기저를 로 바꾸면 의 좌표가 이 됩니다.
바로 확인 2.
확인 2-1. 에서 로 가는 변환행렬을 쓰세요.
답. 입니다.
확인 2-2. 의 번째 열이 무엇입니까?
답. 의 번째 기저벡터를 좌표로 쓴 것입니다.
확인 2-3. 기저벡터를 두 배로 늘리면 좌표가 어떻게 됩니까?
답. 절반이 됩니다.
문제. 을 봅니다.
(1) 를 계산하세요.
(2) 의 좌표를 두 가지 방법으로 구하세요.
(3) 좌표의 노름과 원래 노름을 비교하세요.
생각의 실마리. (1)에서 의 성분은 입니다. 기저벡터들이 서로 수직이고 길이가 이면 무엇이 나올지 예상할 수 있습니다.
풀이. (1) 검산에서 입니다. 실제로
(2) 첫째 방법은 연립방정식이고, 둘째는 을 쓰는 것입니다.
검산에서 두 방법이 같은 값을 줍니다. 실제로 이고 입니다.
(3) 검산에서 둘 다 입니다.
이 문제에서 배우는 것: 정규직교기저.
정규직교기저. 기저벡터들이 서로 직교하고 길이가 이면 정규직교기저라 하고, 그 기저행렬 는
를 만족합니다. 이런 행렬을 직교행렬이라 합니다.
좌표 계산이 극적으로 쉬워집니다.
연립방정식을 풀 필요가 없고 내적만 하면 됩니다.
| 기저 | 좌표 구하기 | 계산량 |
|---|---|---|
| 일반 | 를 풉니다 | |
| 정규직교 | \mathbf{c}=Q^{\top}\mathbf | n^ |
64강 문제 1의 정사영 공식이 여기서 재확인됩니다. 길이가 인 방향 에 대한 정사영이 였고, 좌표가 그 계수입니다.
노름이 보존되는 것도 중요합니다.
이것을 성분으로 쓰면 파스발 항등식입니다.
63강에서 피타고라스 정리로 얻은 것이고, 59강의 푸리에에서 파스발이라 불렀던 것입니다. 71강 심화 2의 대응표가 여기서 완성됩니다.
| \mathbb{R}^ | 함수 공간 |
|---|---|
| 삼각함수의 직교성 | |
| c_{i}=\mathbf{q}_{i}\cdot\mathbf | 푸리에 계수 공식 |
| \lVert\mathbf{v}\rVert^{2}=\sum c_{i}^ | 파스발 항등식 |
각도도 보존됩니다. 가 직교행렬이면
직교행렬은 길이와 각도를 모두 보존하므로 회전이나 반사입니다. 66강 문제 5에서 회전행렬이 를 만족한 것이 이 때문입니다. 80강에서 자세히 다룹니다.
바로 확인 3.
확인 3-1. 직교행렬의 정의와 역행렬을 쓰세요.
답. 이며 입니다.
확인 3-2. 정규직교기저에서 좌표를 어떻게 구합니까?
답. 각 기저벡터와 내적하면 됩니다.
확인 3-3. 직교행렬이 보존하는 것 두 가지를 쓰세요.
답. 길이와 각도입니다.
문제. 과 을 봅니다.
(1) 를 계산하세요.
(2) 에 대해 를 두 경로로 구하세요.
(3) 를 두 방법으로 계산하세요.
생각의 실마리. (2)에서 두 경로란 직접 곱하는 것과 좌표로 옮겨 계산한 뒤 되돌리는 것입니다. 결과가 같아야 합니다.
풀이. (1) 검산에서
대각행렬이 되었습니다.
(2) 직접 계산하면 입니다.
좌표 경로는 이렇습니다. 이고 이며 되돌리면
같습니다.
(3) 직접 거듭제곱하면 입니다.
가 대각이므로 이고
검산에서 두 값이 일치합니다.
이 문제에서 배우는 것: 닮음.
닮음. 가역행렬 에 대해 이면 와 가 닮았다고 합니다. 두 행렬은 같은 변환을 다른 기저에서 본 것입니다.
왜 그런지 봅니다. 일 때 좌표로 옮기면
좌표에서는 가 그 일을 합니다.
거듭제곱에서 이득이 극적입니다.
중간의 가 모두 로 지워지기 때문입니다. 가 대각이면 는 대각 성분을 거듭제곱한 것이라 계산이 사실상 공짜입니다.
| 방법 | 계산량 |
|---|---|
| 직접 곱하기 | 번의 행렬 곱, kn^ |
| 반복제곱법 | |
| 대각화 후 | 분해 비용 + n^ |
66강 심화 4에서 피보나치를 행렬 거듭제곱으로 옮겼는데, 거기서 "를 대각화하면 빨라진다"고 예고한 것이 이것입니다.
의 열이 특별한 이유도 짚어 둡니다.
두 방향은 를 지나도 방향이 변하지 않고 길이만 바뀝니다. 그런 방향을 고유벡터라 하고 배율을 고유값이라 합니다. 84강의 주제이며, 의 대각에 고유값이 놓입니다.
모든 행렬이 대각화되는 것은 아닙니다. 66강 문제 3의 멱영행렬 은 대각화되지 않습니다. 85강에서 조건을 다룹니다.
바로 확인 4.
확인 4-1. 닮음의 정의를 쓰세요.
답. 가역 에 대해 인 관계입니다.
확인 4-2. 닮은 두 행렬이 무엇을 뜻합니까?
답. 같은 변환을 다른 기저에서 본 것입니다.
확인 4-3. 를 닮음으로 쓰세요.
답. 이면 입니다.
문제. 지금까지 좌표를 바꾼 사례를 모아 봅니다.
(1) 이 강의와 앞 강의에서 좌표를 바꾼 곳을 찾으세요.
(2) 각각에서 무엇이 쉬워졌습니까?
(3) 공통 원리를 쓰세요.
생각의 실마리. 명시적으로 "기저를 바꾼다"고 하지 않았어도 같은 일을 한 경우를 찾습니다.
풀이. (1)과 (2)를 함께 봅니다.
| 강의 | 바꾼 좌표 | 쉬워진 것 |
|---|---|---|
| 60강 | 푸리에 | 미분이 곱셈이 됩니다 |
| 64강 | 한 방향과 그 수직 | 최소 거리가 즉시 나옵니다 |
| 문제 3 | 정규직교 | 좌표가 내적으로 나옵니다 |
| 문제 4 | 고유벡터 | 거듭제곱이 대각 성분의 거듭제곱입니다 |
(3) 공통 원리를 씁니다.
이 문제에서 배우는 것: 좌표 선택이 전략입니다.
원리. 문제를 어렵게 만드는 것은 대개 연산이 좌표들을 뒤섞는 것입니다. 뒤섞이지 않는 좌표계를 찾으면 문제가 분리됩니다.
가 대각이면 각 좌표가 독립적으로 처리됩니다.
차원 문제가 일차원 문제 개가 됩니다. 이것이 대각화를 추구하는 이유입니다.
60강의 푸리에도 정확히 같습니다. 미분 연산자가 삼각함수를 뒤섞지 않고 각각에 를 곱하기만 하므로, 푸리에 기저가 미분의 고유벡터입니다.
58강의 오일러 공식이 이 사실을 말하고 있었습니다.
좌표 선택의 기준도 정리합니다.
| 기준 | 고르는 기저 | 강의 |
|---|---|---|
| 좌표 계산이 싸다 | 정규직교 | 80 |
| 연산이 분리된다 | 고유벡터 | 85 |
| 대칭이면 둘 다 | 정규직교 고유벡터 | 86 |
| 정사각이 아니어도 | 특이벡터 | 88 |
셋째 줄이 특별합니다. 대칭행렬은 정규직교인 고유벡터 기저를 가지므로 두 이점을 함께 누립니다. 스펙트럼 정리이며 86강의 주제입니다.
바꾸는 비용도 잊지 말아야 합니다. 좌표를 옮기고 되돌리는 데 계산이 듭니다. 한 번 쓰고 말 것이면 손해이고, 반복해서 쓸 때 이득입니다. 70강에서 LU 분해를 재사용한 것과 같은 논리입니다.
바로 확인 5.
확인 5-1. 대각행렬이 왜 다루기 쉽습니까?
답. 좌표들이 서로 섞이지 않아 일차원 문제 개가 되기 때문입니다.
확인 5-2. 푸리에 기저가 무엇의 고유벡터입니까?
답. 미분 연산자입니다.
확인 5-3. 기저 변환의 이득이 언제 큽니까?
답. 같은 변환을 반복해서 쓸 때입니다.
| 개념 | 식 |
|---|---|
| 좌표 → 벡터 | \mathbf{v}=B[\mathbf{v}]_ |
| 벡터 → 좌표 | [\mathbf{v}]_{B}=B^{-1}\mathbf |
| 기저 변환 | |
| 합성 | P_{D\leftarrow C}P_{C\leftarrow B}=P_ |
| 닮음 | |
| 거듭제곱 | A^{k}=SD^{k}S^ |
| 정규직교기저 | 성질 |
|---|---|
| 직교행렬 | |
| Q^{-1}=Q^ | 역이 전치 |
| [\mathbf{v}]_{Q}=Q^{\top}\mathbf | 좌표는 내적 |
| 파스발 |
| 좋은 기저 | 얻는 것 |
|---|---|
| 정규직교 | 좌표가 싸고 안정적입니다 |
| 고유벡터 | 변환이 대각이 됩니다 |
| 푸리에 | 미분이 곱셈이 됩니다 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 와 의 방향을 헷갈립니다 | 는 좌표를 벡터로 폅니다 |
| 이라 씁니다 | 입니다 |
| 좌표가 벡터처럼 커진다고 봅니다 | 기저를 키우면 좌표는 작아집니다 |
| 와 을 섞습니다 | 어느 쪽 좌표인지 확인합니다 |
문제 6. 를 구하는 식을 쓰세요.
답. 이며 실제로는 를 풉니다.
문제 7. 에서 의 좌표를 구하세요.
답. 이고 이므로 입니다.
문제 8. 를 쓰세요.
답. 입니다.
문제 9. 의 번째 열이 무엇입니까?
답. 의 번째 기저벡터의 좌표입니다.
문제 10. 와 의 관계를 쓰세요.
답. 서로 역행렬입니다.
문제 11. 직교행렬의 역행렬을 쓰세요.
답. 전치 입니다.
문제 12. 정규직교기저에서 좌표를 구하는 식을 쓰세요.
답. 입니다.
문제 13. 파스발 항등식을 쓰세요.
답. 입니다.
문제 14. 닮음의 정의와 그 뜻을 쓰세요.
답. 이며 같은 변환을 다른 기저에서 본 것입니다.
문제 15. 일 때 를 쓰세요.
답. 입니다.
문제 16. 가 대각일 때 를 쓰세요.
답. 대각 성분을 각각 제곱한 것입니다.
문제 17. 대각행렬이 다루기 쉬운 이유를 쓰세요.
답. 좌표들이 섞이지 않아 일차원 문제로 분리되기 때문입니다.
문제 18. 기저 변환의 비용을 언제 회수합니까?
답. 같은 변환을 반복해서 쓸 때입니다.
심화 1. 다항식 공간에서 기저 변환을 실행하고 그 의미를 밝히세요.
풀이. 에서 두 기저를 봅니다.
가 기저인 이유는 계수 행렬이 위삼각이고 대각이 이라 가역이기 때문입니다.
의 각 원소를 좌표로 쓰면
이므로 기저행렬이
입니다. 의 좌표가 이므로
검산에서 확인되며, 네 점에서 평가한 값이 두 표현에서 같습니다.
이 좌표가 무엇인지 봅니다. 전개하면
이고 , , 입니다. 정확히 맞습니다.
좌표가 테일러 계수입니다. 56강에서 테일러 급수를 다뤘는데, 다항식에 대해서는 그것이 유한하고 기저 변환에 지나지 않습니다.
| 기저 | 좌표의 뜻 |
|---|---|
| 보통의 계수 | |
| 에서의 테일러 계수 | |
| 라그랑주 기저 | 지정한 점에서의 함숫값 |
| 체비셰프 기저 | 수치적으로 안정한 표현 |
셋째 줄이 유용합니다. 서로 다른 점 에 대해 인 다항식들을 잡으면, 좌표가 곧 함숫값입니다.
보간 문제가 좌표 읽기가 됩니다. 72강 심화 6에서 반데르몬드 행렬로 다룬 것과 같은 이야기이며, 그 행렬이 표준기저와 라그랑주 기저 사이의 변환행렬입니다.
넷째 줄은 수치적 이유입니다. 표준기저 는 에서 서로 거의 평행해져 조건수가 급격히 나빠집니다. 체비셰프 다항식은 그 문제를 피합니다. 심화 4에서 조건수와 기저의 관계를 봅니다.
심화 2. 닮음이 보존하는 양들을 찾고 그 이유를 밝히세요.
풀이. 닮은 두 행렬은 같은 변환의 다른 표현이므로, 좌표계와 무관한 성질은 같아야 합니다.
무엇이 보존되는지 봅니다.
대각합. 66강 심화 5의 순환 성질에서
행렬식. 78강의 곱셈 성질을 미리 쓰면
계수. 73강 심화 1에서 가역행렬을 곱해도 계수가 보존됩니다.
고유값. 84강에서 다루지만, 이면 에 대해
이므로 고유값이 같고 고유벡터는 좌표가 바뀝니다.
정리합니다.
| 양 | 보존되는가 | 이유 |
|---|---|---|
| 대각합 | 예 | 순환 성질 |
| 행렬식 | 예 | 곱셈 성질 |
| 계수 | 예 | 가역 곱 |
| 고유값 | 예 | 좌표만 바뀝니다 |
| 특성다항식 | 예 | 위의 것들을 담습니다 |
| 성분 | 아닙니다 | 좌표에 딸립니다 |
| 특이값 | 아닙니다 | 길이를 쓰므로 |
| 대칭성 | 아닙니다 | 전치와 안 어울립니다 |
뒤의 세 줄이 중요합니다. 성분이 바뀌는 것은 당연하지만, 특이값과 대칭성이 안 바뀌리라 오해하기 쉽습니다.
특이값이 보존되지 않는 이유는 길이를 재는 구조를 쓰기 때문입니다. 일반적인 는 길이를 바꿉니다. 가 직교행렬이면 이야기가 달라집니다.
이것을 직교 닮음이라 하며, 길이 구조까지 보존하므로 특이값과 대칭성이 유지됩니다. 86강의 스펙트럼 정리와 88강의 특이값 분해가 직교 닮음을 쓰는 이유입니다.
| 변환 | 보존하는 것 |
|---|---|
| 일반 닮음 | 고유값, 대각합, 행렬식, 계수 |
| 직교 닮음 | 위의 것 + 특이값 + 대칭성 + 노름 |
보존되는 양을 불변량이라 합니다. 두 행렬이 닮았는지 판정할 때, 불변량이 다르면 즉시 아니라고 답할 수 있습니다. 다만 불변량이 모두 같아도 닮았다는 보장은 없으며, 완전한 판정은 조르당 표준형이 필요합니다.
심화 3. 좌표와 벡터가 반대로 움직이는 현상을 정리하세요.
풀이. 문제 2에서 기저를 키우면 좌표가 작아진다고 했습니다. 이것이 어디까지 이어지는지 봅니다.
기저를 로 바꾸면 (각 기저벡터를 의 열 조합으로 다시 잡으면)
기저에 를 곱하면 좌표에는 이 곱해집니다.
이 현상에 이름이 있습니다.
| 대상 | 변환 | 이름 |
|---|---|---|
| 기저 | 를 곱합니다 | 공변 |
| 좌표 | 을 곱합니다 | 반변 |
단위를 바꿀 때 늘 겪는 일입니다. 길이의 단위를 미터에서 센티미터로 바꾸면 기준자가 이 되고 수치는 배가 됩니다. 기준과 수치가 반대로 움직입니다.
이 구별이 중요한 곳이 있습니다.
첫째, 내적을 계산할 때입니다. 정규직교가 아닌 기저에서
이므로 좌표끼리 그냥 내적하면 틀립니다. 가운데 가 필요하며, 이것을 그람 행렬이라 합니다. 정규직교이면 라 그냥 내적해도 됩니다.
63강에서 내적을 로 정의한 것은 표준기저를 전제한 것이었습니다. 일반 기저에서는 가 끼어듭니다.
둘째, 미분과 기울기입니다. 93강 이후 다변수 미적분에서 함수의 기울기는 좌표 변환에 대해 반변이 아니라 공변으로 움직입니다. 그래서 정규직교가 아닌 좌표계에서는 "기울기 방향이 최급강하 방향"이라는 진술이 수정되어야 하며, 자연 그래디언트가 그 수정입니다. 251강에서 다시 봅니다.
셋째, 텐서의 지표입니다. 물리와 미분기하에서 위첨자와 아래첨자로 반변과 공변을 구별하며, 지표를 올리고 내리는 일이 를 곱하는 일입니다.
**이 과목에서는 대부분 표준기저와 정규직교기저만 쓰므로 **이고, 그래서 구별이 잘 드러나지 않습니다. 그러나 구별이 있다는 사실을 알아 두면 정규직교기저를 선호하는 이유가 하나 더 생깁니다.
심화 4. 기저의 조건수가 무엇이고 왜 중요한지 논하세요.
풀이. 좌표를 구하는 것은 를 푸는 일이므로, 의 조건수가 좌표 계산의 안정성을 결정합니다.
검산에서 세 기저를 비교합니다.
| 기저 | 조건수 |
|---|---|
| 표준 \ | |
| \ | |
| 2.0000\times10^ |
앞의 둘이 인 것은 직교이기 때문입니다. 둘째는 길이가 로 이 아니지만 두 벡터의 길이가 같아 조건수가 입니다.
셋째는 두 기저벡터가 거의 평행합니다. 그러면 좌표가 폭발적으로 커지고 작은 오차가 크게 증폭됩니다. 예를 들어 의 좌표는 인데, 의 좌표는 로 크게 달라집니다.
조건수가 클수록 좌표가 못 믿을 값이 됩니다.
이 문제가 실제로 나타나는 곳을 봅니다.
| 상황 | 나쁜 기저 |
|---|---|
| 다항식 보간 | 높은 차수의 |
| 회귀 | 상관이 높은 설명변수 |
| 유한요소 | 찌그러진 요소 |
| 신호 분해 | 거의 겹치는 원자 |
첫째 줄을 확인해 봅니다. 에서 과 은 거의 같은 모양이라 내적이 에 가깝습니다. 그래서 표준기저로 고차 보간을 하면 조건수가 지수적으로 커집니다. 체비셰프 다항식은 서로 잘 분리되어 있어 훨씬 안전합니다.
대응책은 언제나 같습니다.
80강의 그람슈미트와 QR 분해가 그 도구이며, 88강의 특이값 분해는 가장 안정한 정규직교기저를 줍니다. 74강 심화 6에서 네 부분공간의 기저를 SVD로 구한다고 한 이유가 같습니다.
조건수 이 최선이고 그것은 직교일 때만 달성됩니다. 그래서 이 과목의 후반부가 "직교기저 만들기"에 집중합니다.
심화 5. 좌표 변환이 데이터 분석에서 어떻게 쓰이는지 정리하세요.
풀이. 데이터 분석의 상당 부분이 좌표를 바꾸는 일입니다.
표준화. 각 변수를 평균 , 분산 로 맞추는 것은 대각행렬을 곱하는 좌표 변환입니다.
단위가 다른 변수를 비교 가능하게 만듭니다. 이것을 안 하면 단위가 큰 변수가 거리 계산을 지배합니다.
백색화. 표준화를 넘어 변수 사이의 상관까지 없애는 변환입니다. 공분산 에 대해
로 두면 새 좌표에서 공분산이 가 됩니다. 70강의 콜레스키가 이 계산에 쓰입니다.
주성분분석. 분산이 큰 방향으로 정규직교기저를 잡습니다. 89강의 주제이며, 좌표를 바꿔 처음 몇 개만 남겨도 정보 대부분이 보존되게 합니다.
푸리에와 웨이블릿. 신호를 주파수 좌표로 옮기면 잡음과 신호가 분리되기 쉽습니다. 60강의 내용이며, 압축과 잡음 제거의 기반입니다.
임베딩. 단어나 문장을 벡터로 옮기는 것도 좌표를 부여하는 일입니다. 다만 여기서는 좋은 좌표계를 학습으로 찾습니다. 256강의 주제입니다.
정리합니다.
| 변환 | 목적 |
|---|---|
| 표준화 | 척도를 맞춥니다 |
| 백색화 | 상관을 없앱니다 |
| 주성분 | 차원을 줄입니다 |
| 푸리에 | 주파수로 분리합니다 |
| 임베딩 | 의미를 좌표로 만듭니다 |
**공통점은 "데이터가 단순해 보이는 좌표계 찾기"**입니다. 문제 5에서 말한 원리와 같으며, 대상이 행렬에서 데이터로 바뀌었을 뿐입니다.
주의도 하나 적어 둡니다. 좌표를 바꾸면 해석이 바뀝니다. 주성분은 원래 변수들의 조합이라 "이 성분이 무엇을 뜻하는가"가 자명하지 않습니다. 계산의 편의와 해석의 편의가 대립할 수 있으며, 어느 쪽을 택할지가 분석의 선택입니다.
심화 6. 좌표 없이 다루는 관점이 왜 필요한지 논하세요.
풀이. 이 강의는 좌표를 잡는 이야기였는데, 반대 방향의 태도도 있습니다.
좌표를 잡지 않고 벡터공간과 선형사상 자체를 다루는 것입니다. 76강에서 선형변환을 정의할 때 이 관점을 씁니다.
왜 그런 관점이 필요한지 봅니다.
첫째, 좌표는 임의적입니다. 어떤 기저를 잡느냐는 사람이 정하는 것이므로, 좌표에 의존하는 진술은 대상의 성질이 아닐 수 있습니다. 심화 2에서 불변량을 따진 이유가 그것입니다.
둘째, 증명이 깨끗해집니다. 74강의 기본 정리를 좌표로 증명하려면 소거와 지표 계산이 필요하지만, 좌표 없이 하면 "가 행공간을 열공간으로 동형사상으로 보낸다"는 한 문장입니다.
셋째, 무한차원으로 확장됩니다. 71강 심화 4에서 본 대로 함수 공간에는 쓸 만한 기저가 없습니다. 좌표 없이 세운 개념만 그곳으로 옮겨 갑니다.
넷째, 자연스러운 대상이 드러납니다. 예를 들어 와 는 좌표와 무관하게 정의되지만, "RREF의 피벗 열"은 좌표에 딸린 개념입니다.
두 태도를 비교합니다.
| 관점 | 강점 | 약점 |
|---|---|---|
| 좌표 | 계산할 수 있습니다 | 임의적이고 지저분합니다 |
| 좌표 없음 | 본질이 보이고 일반화됩니다 | 계산이 안 됩니다 |
실무에서는 둘 다 필요합니다. 개념은 좌표 없이 세우고, 계산은 좌표로 합니다. 그리고 어떤 좌표를 고를지가 계산의 질을 결정하므로, 두 관점이 만나는 지점이 이 강의의 주제였습니다.
이 태도가 뒤에서 어떻게 나타나는지 미리 적어 둡니다.
| 강의 | 좌표 없는 진술 | 좌표로 옮기면 |
|---|---|---|
| 76 | 선형변환 | 표현행렬 [T]_ |
| 78 | 부피 배율 | 행렬식 |
| 84 | 불변 방향 | 고유벡터 |
| 88 | 두 직교기저 사이의 늘임 | 특이값 분해 |
왼쪽 열이 정의이고 오른쪽 열이 계산법입니다. 이 구별을 유지하면 공식을 외우지 않고도 왜 그런지 설명할 수 있습니다.
이 강의에서는 numpy만 씁니다. 좌표를 두 방법으로 구해 맞춰 보고, 기저 변환행렬과 닮음을 확인하며, 조건수로 기저의 질을 잽니다. 좌표는 연립방정식의 해이므로 solve로 구하고 역행렬은 확인용으로만 씁니다.
import numpy as np
# --- 문제 1: 좌표는 연립방정식의 해입니다 -------------------------------
B = np.column_stack([[1.,1.],[1.,-1.]])
v = np.array([3.,1.])
cb = np.linalg.solve(B, v); print(cb.tolist(), (B@cb).tolist())
# [2.0, 1.0] [3.0, 1.0]
print(np.round(np.linalg.inv(B), 10).tolist()) # 확인용
# [[0.5, 0.5], [0.5, -0.5]]
print(np.round(np.linalg.inv(B)@v, 10).tolist()) # [2.0, 1.0]
# --- 문제 2: 두 기저 사이의 변환 -----------------------------------------
C = np.column_stack([[1.,2.],[0.,1.]])
P = np.linalg.solve(C, B) # P = C^-1 B, [v]_C = P [v]_B
cb2 = np.linalg.solve(B, v); cc = np.linalg.solve(C, v)
print(np.round(P, 10).tolist()) # [[1.0, 1.0], [-1.0, -3.0]]
print(np.round(cb2, 10).tolist(), np.round(cc, 10).tolist())
# [2.0, 1.0] [3.0, -5.0]
print(np.round(P@cb2, 10).tolist(), bool(np.allclose(P@cb2, cc)))
# [3.0, -5.0] True
print(np.round(np.linalg.inv(P), 10).tolist()) # [[1.5, 0.5], [-0.5, -0.5]]
print(bool(np.allclose(np.linalg.inv(P)@cc, cb2))) # True
# --- 문제 3: 정규직교기저이면 좌표가 내적입니다 -------------------------
Q = np.column_stack([[1.,1.],[1.,-1.]]) / np.sqrt(2)
print((np.round(Q.T@Q, 10) + 0.0).tolist()) # [[1.0, 0.0], [0.0, 1.0]]
w = np.array([3.,1.])
print(np.round(Q.T@w, 8).tolist(), np.round(np.linalg.solve(Q, w), 8).tolist())
# [2.82842712, 1.41421356] [2.82842712, 1.41421356]
print("%.8f %.8f" % (np.linalg.norm(w), np.linalg.norm(Q.T@w)))
# 3.16227766 3.16227766 (파스발)
# --- 문제 4: 닮음과 대각화 -----------------------------------------------
A = np.array([[2.,1.],[1.,2.]])
S = np.column_stack([[1.,1.],[1.,-1.]])
D = np.linalg.solve(S, A@S)
print((np.round(D, 10) + 0.0).tolist()) # [[3.0, 0.0], [0.0, 1.0]]
x = np.array([3.,1.])
print(np.round(A@x, 10).tolist()) # [7.0, 5.0]
xs = np.linalg.solve(S, x)
print(np.round(xs, 10).tolist(), np.round(D@xs, 10).tolist())
# [2.0, 1.0] [6.0, 1.0]
print(np.round(S@(D@xs), 10).tolist()) # [7.0, 5.0] (같은 답)
k = 5
print(np.round(np.linalg.matrix_power(A, k), 8).tolist())
# [[122.0, 121.0], [121.0, 122.0]]
print(np.round(S @ np.diag(np.diag(D)**k) @ np.linalg.inv(S), 8).tolist())
# [[122.0, 121.0], [121.0, 122.0]]
# --- 심화 1: 다항식 기저 변환은 테일러 계수를 줍니다 ---------------------
M = np.array([[1.,-1.,1.],[0.,1.,-2.],[0.,0.,1.]]) # {1, x-1, (x-1)^2}
p = np.array([2.,-1.,3.]) # 2 - x + 3x^2
q = np.linalg.solve(M, p); print(np.round(q, 10).tolist()) # [4.0, 5.0, 3.0]
xs2 = np.array([0.,1.,2.,3.])
def ev(c, x): return sum(c[k]*x**k for k in range(3))
def ev2(c, x): return c[0] + c[1]*(x-1) + c[2]*(x-1)**2
print(np.allclose(ev(p, xs2), ev2(q, xs2))) # True
# --- 심화 4: 조건수가 기저의 질입니다 ------------------------------------
for Bx in [np.eye(2),
np.column_stack([[1.,1.],[1.,-1.]]),
np.column_stack([[1.,0.],[1.,1e-6]])]:
print("%.4e" % float(np.linalg.cond(Bx)))
# 1.0000e+00
# 1.0000e+00
# 2.0000e+06
실행하면 주석과 같은 값이 나옵니다. 다섯 곳을 짚어 둡니다.
첫째, 좌표 을 되돌리면 원래 벡터 이 나옵니다. solve와 역행렬 곱이 같은 답을 주지만, 실제 계산에서는 앞의 것을 씁니다.
둘째, 같은 벡터가 두 기저에서 과 로 완전히 다른 좌표를 갖습니다. 변환행렬 를 곱하면 정확히 옮겨 가고, 로 되돌아옵니다.
셋째, 정규직교기저에서 이고 좌표를 내적으로 구한 것과 방정식을 푼 것이 같습니다. 노름도 로 보존됩니다. 59강의 파스발이 여기서 다시 나타납니다.
넷째가 이 강의의 절정입니다. 좌표에서 가 이 되고, 를 좌표 경로로 계산해도 로 같습니다. 그리고 가 인데 대각 성분을 제곱한 것으로 재현됩니다. 과 만 계산하면 됩니다.
다섯째, 다항식 기저 변환의 좌표가 인데 이것이 , , 입니다. 56강의 테일러 계수가 기저 변환의 결과였습니다.
조건수 비교에서 앞의 두 기저가 이고 거의 평행한 셋째가 입니다.
코드로 할 수 없는 일도 분명히 해 둡니다. 가 대각화하는 기저라는 것은 우연히 고른 것이 아니라 고유벡터이기 때문인데, 그것을 찾는 방법은 84강의 내용입니다. 여기서는 답을 미리 알고 확인만 했습니다. 또 모든 행렬이 대각화되지는 않으므로, 이 예가 일반적인 상황을 대표하지 않습니다. 처럼 대각화가 불가능한 경우가 있으며 85강에서 다룹니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| [\mathbf{v}]_ | 좌표 | 유일한 계수입니다 |
| 기저행렬 | 기저벡터를 열로 놓습니다 | |
| P_ | 기저 변환행렬 | 입니다 |
| 직교행렬 | 입니다 | |
| 닮음 | 같은 변환의 다른 표현입니다 | |
| 그람 행렬 | 좌표로 내적할 때 필요합니다 | |
| 공변 | covariant | 기저처럼 움직입니다 |
| 반변 | contravariant | 좌표처럼 반대로 움직입니다 |
이것으로 03단원을 마칩니다. 71강에서 벡터공간을 밖으로 넓히고, 72강에서 군더더기 없는 생성 집합을 정의하고, 73강에서 그 크기가 유일함을 밝히고, 74강에서 행렬에 딸린 네 공간의 구조를 완성하고, 75강에서 좌표계를 바꾸는 법을 세웠습니다.
다음 76강부터 시작하는 04단원은 좌표를 벗어납니다. 행렬을 먼저 두고 변환을 설명하는 대신, 선형변환을 먼저 정의하고 행렬을 그 표현으로 봅니다. 그러면 이 강의의 닮음이 "같은 변환의 두 표현"이라는 뜻을 정확히 얻고, 78강의 행렬식이 좌표와 무관한 양임이 분명해집니다.