63강에서 내적으로 두 벡터의 각도를 쟀습니다. 이제 그 도구로 벡터를 쪼갭니다.
를 방향에서 바라볼 때, 중 얼마만큼이 그 방향을 향하고 있습니까. 그 질문의 답이 정사영입니다. 햇빛이 에 수직으로 비칠 때 가 위에 드리우는 그림자를 생각하면 됩니다.
정사영이 하는 일은 하나의 벡터를 두 조각으로 가르는 것입니다.
이 분해가 이 과목에서 가장 자주 쓰이는 조작입니다. 80강의 그람슈미트는 이 분해를 반복하는 절차이고, 82강의 최소제곱은 "데이터를 모형이 만드는 공간에 정사영하는 것"이며, 83강에서는 정사영 자체가 행렬이 됩니다.
63강 심화 4에서 상관계수를 두고 **" 방향을 걷어 낸 뒤의 코사인"**이라고 했습니다. 그 말의 정확한 뜻이 이 강의에서 밝혀집니다.
문제. 를 방향 성분과 그에 수직인 성분으로 나눕니다.
(1) 이고 라 두고 를 구하세요.
(2) 두 성분을 와 로 나타내세요.
(3) , 에서 계산하세요.
생각의 실마리. (1)에서 미지수는 하나이고 조건은 하나입니다. 양변에 를 내적하면 가 사라집니다. 수직이라는 조건이 정확히 그 일을 하도록 설계되어 있습니다.
풀이. (1) 양변에 를 내적합니다. 63강의 선형성을 씁니다.
이므로 마지막 항이 입니다. 이라 이므로 나눌 수 있습니다.
(2) 두 성분은
입니다.
(3) 이고 이므로 입니다.
검산에서 가 정확히 입니다.
이 문제에서 배우는 것: 정사영 공식.
벡터 정사영. 일 때
이고 나머지 는 에 수직입니다.
공식을 읽는 법을 정리합니다.
| 부분 | 뜻 |
|---|---|
| 스칼라 계수입니다 | |
| \mathbf | 방향을 정합니다 |
| 전체 | 방향의 벡터입니다 |
분모가 인 이유는 가 단위벡터가 아니기 때문입니다. 를 두 배로 늘려도 정사영은 변하지 않아야 하는데, 분자의 가 두 배가 되고 분모가 네 배가 되며 곱해지는 가 두 배가 되어 전체가 그대로입니다. 정사영은 의 방향에만 의존합니다.
가 단위벡터이면 공식이 훨씬 간단해집니다.
그래서 정사영을 다룰 때는 방향벡터를 먼저 정규화하는 것이 관례입니다. 80강의 그람슈미트가 그 관례를 따릅니다.
이 분해가 유일하다는 것도 확인해 두어야 합니다. 심화 1에서 증명하는데, 방향 성분과 수직 성분으로 나누는 방법이 오직 하나입니다. 그래서 "그" 정사영이라고 부를 수 있습니다.
바로 확인 1.
확인 1-1. 을 방향으로 정사영하세요.
답. 입니다.
확인 1-2. 가 단위벡터일 때 정사영 공식을 쓰세요.
답. 입니다.
확인 1-3. 를 두 배로 늘리면 정사영이 어떻게 됩니까?
답. 변하지 않습니다. 정사영은 의 방향에만 의존합니다.
문제. 다음을 구별하세요.
(1) 정사영 벡터의 길이를 구하세요.
(2) 부호를 살린 값은 무엇입니까?
(3) 두 양의 차이를 정리하세요.
생각의 실마리. 정사영은 벡터이므로 길이를 잴 수 있습니다. 그런데 방향이 와 같은지 반대인지도 정보인데 길이만 재면 그것이 사라집니다. 부호를 살린 양을 따로 정의하면 유용합니다.
풀이. (1) 정사영이 이므로 길이는
입니다.
(2) 절댓값을 벗기면
입니다. 63강의 기하 표현을 썼습니다. 각이 둔각이면 음수가 되어 반대 방향임을 알려 줍니다.
(3) 두 양을 표로 정리합니다.
| 이름 | 기호 | 값 | 종류 |
|---|---|---|---|
| 벡터 정사영 | \operatorname{proj}_{\mathbf{v}}\mathbf | \dfrac{\mathbf{u}\cdot\mathbf{v}}{\lVert\mathbf{v}\rVert^{2}}\mathbf | 벡터 |
| 스칼라 정사영 | \operatorname{comp}_{\mathbf{v}}\mathbf | 스칼라 |
둘의 관계는 입니다. 스칼라 정사영이 크기와 부호를 담고 단위벡터가 방향을 담습니다.
이 문제에서 배우는 것: 두 정사영의 구별.
이름이 비슷해 헷갈리기 쉬우므로 언제 무엇을 쓰는지 정리합니다.
| 목적 | 쓸 것 |
|---|---|
| 성분을 실제로 빼내려 함 | 벡터 정사영 |
| 얼마나 그 방향인지 수치로 | 스칼라 정사영 |
| 좌표를 구하려 함 | 스칼라 정사영 |
| 분해해서 나머지를 보려 함 | 벡터 정사영 |
세 번째 줄이 중요합니다. 63강 심화 3에서 본 대로 정규직교기저에 대한 좌표가 곧 스칼라 정사영입니다. 에서 였는데, 가 단위벡터이므로 이것이 스칼라 정사영입니다.
검산에서 , 일 때 스칼라 정사영이 이고 벡터 정사영의 길이도 같은 값입니다. 내적이 양수라 두 값이 일치하며, 음수였다면 부호만 달랐을 것입니다.
바로 확인 2.
확인 2-1. 를 각도로 나타내세요.
답. 입니다.
확인 2-2. 스칼라 정사영이 음수이면 무엇을 뜻합니까?
답. 두 벡터가 이루는 각이 둔각이며 정사영이 의 반대 방향입니다.
확인 2-3. 두 정사영의 관계식을 쓰세요.
답. 입니다.
문제. 의 상수배 중에서 에 가장 가까운 것을 찾습니다.
(1) 을 의 함수로 쓰세요.
(2) 최솟값을 주는 를 구하세요.
(3) 그때의 거리를 구하세요.
생각의 실마리. (1)은 63강의 전개식입니다. 결과가 에 대한 이차식이 되므로 (2)는 2강의 완전제곱이나 43강의 미분으로 풀립니다. 답이 문제 1의 와 같다면 정사영에 새로운 의미가 생깁니다.
풀이. (1) 전개합니다.
에 대한 이차식이고 최고차 계수 이라 아래로 볼록합니다.
(2) 미분해서 으로 둡니다.
이므로 44강의 판정법에 의해 극소이고, 임계점이 하나뿐이라 전역 최소입니다.
문제 1의 와 정확히 같습니다.
(3) 그 를 넣으면 가 바로 수직 성분 입니다. 따라서 최소 거리는 입니다.
이 문제에서 배우는 것: 정사영은 최선의 근사입니다.
최소 거리 성질. 는 의 상수배 중에서 에 가장 가까운 벡터입니다.
이 성질이 정사영에 새로운 성격을 줍니다. 문제 1에서는 "수직이 되게 나누는 것"이었는데, 여기서는 "가장 가까운 근사"입니다.
두 성격이 같다는 것이 핵심이며, 그 이유는 피타고라스 정리입니다. 를 정사영 기준으로 다시 쓰면
이고 두 조각이 수직이므로
입니다. 첫 항은 와 무관하고 둘째 항은 에서만 입니다. 그러므로 가 최소를 줍니다.
이 논법이 이 과목에서 계속 반복됩니다.
| 강의 | 나타나는 형태 |
|---|---|
| 82강 | 최소제곱해가 데이터의 정사영 |
| 83강 | 회귀의 잔차가 수직 성분 |
| 89강 | 저계수 근사가 최선의 근사 |
**"수직이면 최선이다"**가 공통된 구조이며, 46강 심화 4에서 평균이 제곱오차를 최소로 한다고 한 것도 실은 같은 정리입니다. 심화 3에서 확인합니다.
검산에서 격자 탐색으로 최소를 찾으면 이고 거리가 인데, 공식이 주는 와 일치합니다. 미분 없이 수치로 찾아도 같은 답이 나옵니다.
바로 확인 3.
확인 3-1. 이 에 대해 어떤 함수입니까?
답. 최고차 계수가 양수인 이차식이라 아래로 볼록합니다.
확인 3-2. 최소 거리를 주는 가 정사영 계수와 같은 이유를 쓰세요.
답. 오차를 정사영 기준으로 나누면 수직인 조각과 평행한 조각이 되고, 피타고라스 정리에서 평행한 조각이 일 때 최소이기 때문입니다.
확인 3-3. 최소 거리의 값을 쓰세요.
답. 수직 성분의 길이 입니다.
문제. 원점을 지나고 방향이 인 직선과 점 를 봅니다.
(1) 에서 직선에 내린 수선의 발을 구하세요.
(2) 점과 직선 사이의 거리를 구하세요.
(3) 원점을 지나지 않는 직선이면 어떻게 합니까?
생각의 실마리. 직선 위의 점은 꼴입니다. 가장 가까운 점을 찾는 문제이므로 문제 3이 그대로 적용됩니다. (3)에서는 직선 위의 한 점을 기준으로 옮겨 놓으면 됩니다.
풀이. (1) 를 방향으로 정사영합니다.
이것이 수선의 발입니다.
(2) 수직 성분의 길이입니다.
(3) 직선이 점 를 지나고 방향이 이면, 모든 것을 만큼 옮겨서 생각합니다.
| 단계 | 할 일 |
|---|---|
| 1 | 를 계산합니다 |
| 2 | 를 방향으로 정사영합니다 |
| 3 | 수선의 발은 입니다 |
| 4 | 거리는 입니다 |
이 문제에서 배우는 것: 거리 문제의 표준 절차.
점과 직선 사이의 거리. 직선이 를 지나고 방향이 일 때, 점 까지의 거리는
입니다.
46강에서 이런 문제를 미분으로 풀었습니다. 거리의 제곱을 함수로 세우고 도함수가 인 점을 찾았습니다. 여기서는 미분 없이 정사영 한 번으로 끝납니다.
두 방법을 비교합니다.
| 미분(46강) | 정사영(64강) | |
|---|---|---|
| 절차 | 함수를 세우고 미분합니다 | 공식에 넣습니다 |
| 차원 | 높아지면 번거롭습니다 | 그대로입니다 |
| 곡선 | 다룰 수 있습니다 | 직선·평면만 |
| 통찰 | 계산 결과 | 수직이 최선임이 보입니다 |
대상이 직선이나 평면이면 정사영이 압도적으로 편합니다. 곡선까지 다루려면 미분으로 돌아가야 합니다.
같은 절차가 평면에도 적용됩니다. 평면의 법선벡터를 이라 하면, 점에서 평면까지의 거리는 법선 방향의 정사영 길이입니다.
직선에서는 방향벡터에 정사영한 나머지를 재고, 평면에서는 법선벡터에 정사영한 것 자체를 잽니다. 무엇이 "안쪽 방향"인지에 따라 재는 대상이 뒤바뀝니다. 65강에서 평면의 방정식을 다룰 때 이 공식을 정식으로 세웁니다.
바로 확인 4.
확인 4-1. 원점을 지나고 방향이 인 직선과 점 사이의 거리를 구하세요.
답. 정사영이 이고 나머지가 이므로 거리는 입니다.
확인 4-2. 직선이 원점을 지나지 않으면 절차를 어떻게 바꿉니까?
답. 직선 위의 한 점 를 빼서 원점을 지나는 경우로 옮긴 뒤 계산합니다.
확인 4-3. 점과 평면 사이의 거리를 구할 때 무엇에 정사영합니까?
답. 법선벡터입니다. 그 정사영의 길이가 곧 거리입니다.
문제. 서로 직교하는 단위벡터 , 가 만드는 평면을 봅니다.
(1) 를 그 평면에 정사영한 결과를 쓰세요.
(2) 나머지가 평면 전체에 수직임을 보이세요.
(3) 방향들이 직교하지 않으면 어떻게 됩니까?
생각의 실마리. (1)에서 각 방향으로 따로 정사영해 더하면 될 것 같습니다. 직교하기 때문에 그것이 통합니다. (2)에서는 나머지가 과 모두에 수직임을 보이면 됩니다.
풀이. (1) 각 방향의 정사영을 더합니다. 단위벡터이므로 공식이 간단합니다.
(2) 와 의 내적을 계산합니다.
직교성 덕분에 교차항이 사라집니다. 에 대해서도 같으므로, 나머지는 두 벡터가 만드는 평면 전체에 수직입니다.
(3) 통하지 않습니다. 방향들이 직교하지 않으면 위 계산에서 교차항이 남아 나머지가 수직이 되지 않습니다. 먼저 직교하게 만들어야 하며, 그 절차가 80강의 그람슈미트입니다.
이 문제에서 배우는 것: 정규직교집합에의 정사영.
부분공간에의 정사영. 가 정규직교집합이면, 그것이 생성하는 부분공간에의 정사영은
이고 나머지는 그 부분공간 전체에 수직입니다.
**"각각 따로 계산해 더하면 된다"**는 것이 정규직교의 최대 이점입니다. 방향들이 서로 간섭하지 않으므로 하나씩 독립적으로 처리할 수 있습니다.
이 사실이 이미 여러 번 쓰였습니다.
| 강의 | 나타난 형태 |
|---|---|
| 59강 | 푸리에 계수를 하나씩 뽑음 |
| 63강 심화 3 | 표준기저에 대한 좌표 |
| 이 강의 | 부분공간에의 정사영 |
셋이 같은 계산입니다. 특히 59강의 푸리에 부분합이 함수 공간에서의 정사영이었다는 것이 이제 분명해집니다. 심화 6에서 확인합니다.
최소 거리 성질도 그대로 확장됩니다. 정사영은 그 부분공간의 벡터 중 에 가장 가까운 것입니다. 증명은 문제 3과 같은 피타고라스 논법입니다.
그러면 59강에서 "항까지의 푸리에 부분합"이 무엇이었는지도 답이 나옵니다. 처음 개의 진동수로 만들 수 있는 함수 중 원래 함수에 가장 가까운 것입니다. 그래서 항을 더할수록 좋아지고, 깁스 현상이 있어도 각 점에서는 수렴합니다.
바로 확인 5.
확인 5-1. 정규직교집합에 정사영하는 공식을 쓰세요.
답. 입니다.
확인 5-2. 직교하지 않는 방향들에 이 공식을 쓰면 무엇이 잘못됩니까?
답. 교차항이 남아 나머지가 부분공간에 수직이 되지 않습니다.
확인 5-3. 푸리에 부분합이 무엇의 정사영인지 쓰세요.
답. 처음 개의 진동수가 생성하는 부분공간에의 정사영이며, 그 안에서 원함수에 가장 가까운 것입니다.
| 개념 | 식 |
|---|---|
| 벡터 정사영 | \operatorname{proj}_{\mathbf{v}}\mathbf{u}=\dfrac{\mathbf{u}\cdot\mathbf{v}}{\lVert\mathbf{v}\rVert^{2}}\mathbf |
| 단위벡터일 때 | (\mathbf{u}\cdot\mathbf{v})\mathbf |
| 스칼라 정사영 | |
| 수직 성분 | \mathbf{u}-\operatorname{proj}_{\mathbf{v}}\mathbf |
| 정규직교집합에 | \sum_{j}(\mathbf{u}\cdot\mathbf{e}_{j})\mathbf{e}_ |
| 성질 | 내용 |
|---|---|
| 분해 | 평행 성분 수직 성분, 유일합니다 |
| 최소 거리 | 정사영이 가장 가까운 근사입니다 |
| 방향 의존 | 의 크기와 무관합니다 |
| 멱등성 | 두 번 정사영해도 같습니다 |
| 거리 문제 | 방법 |
|---|---|
| 점과 직선 | 방향벡터에 정사영한 나머지의 길이 |
| 점과 평면 | 법선벡터에 정사영한 것 자체의 길이 |
| 원점을 안 지남 | 직선 위의 한 점을 빼서 옮깁니다 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 분모를 로 씁니다 | 벡터 정사영은 입니다 |
| 벡터와 스칼라 정사영을 섞습니다 | 결과가 벡터인지 수인지 확인합니다 |
| 직교하지 않는데 항별로 더합니다 | 먼저 직교화해야 합니다 |
| 점-직선에서 정사영 자체를 거리로 씁니다 | 나머지의 길이입니다 |
문제 6. 를 방향으로 정사영하세요.
답. 입니다.
문제 7. 를 방향으로 정사영하세요.
답. 입니다.
문제 8. 을 방향으로 정사영하세요.
답. 입니다.
문제 9. 문제 8의 수직 성분을 구하고 직교를 확인하세요.
답. 이며 과의 내적이 입니다.
문제 10. 을 구하세요.
답. 입니다.
문제 11. 스칼라 정사영이 이면 무엇을 알 수 있습니까?
답. 두 벡터가 둔각을 이루며 정사영의 길이가 입니다.
문제 12. 원점을 지나고 방향이 인 직선과 점 사이의 거리를 구하세요.
답. 정사영이 이고 나머지가 이므로 거리는 입니다.
문제 13. 를 세 배로 늘리면 가 어떻게 됩니까?
답. 변하지 않습니다.
문제 14. 를 세 배로 늘리면 가 어떻게 됩니까?
답. 세 배가 됩니다. 정사영은 에 대해 선형입니다.
문제 15. 정사영을 두 번 하면 어떻게 됩니까?
답. 같습니다. 이미 방향이므로 더 바뀔 것이 없습니다.
문제 16. 이면 정사영이 무엇입니까?
답. 영벡터입니다. 내적이 이기 때문입니다.
문제 17. 정규직교집합에 정사영하는 공식이 성립하는 근거를 쓰세요.
답. 직교성 덕분에 교차항이 사라져 각 방향을 독립적으로 처리할 수 있기 때문입니다.
문제 18. 정사영이 최소 거리를 준다는 사실의 증명 방법을 한 문장으로 쓰세요.
답. 오차를 수직 성분과 평행 성분으로 나누고 피타고라스 정리를 적용하면 평행 성분이 일 때 최소입니다.
심화 1. 정사영 분해가 유일함을 증명하세요.
풀이. 이고 라 합시다.
두 표현을 빼면
입니다. 왼쪽은 의 상수배이고 오른쪽은 에 수직입니다(수직인 것끼리의 차도 수직입니다). 같은 벡터가 에 평행하면서 동시에 수직입니다.
양변에 를 내적하면
이고 이므로 입니다. 그러면 도 따라옵니다.
**증명의 뼈대는 "평행하면서 수직인 벡터는 영벡터뿐"**이라는 사실입니다. 가 에 평행하고 수직이면 이고 이므로 에서 입니다.
이 관찰이 74강의 직교여공간으로 일반화됩니다. 부분공간 와 그에 수직인 모든 벡터의 모임 는 에서만 만나며, 그래서 임의의 벡터가 두 조각으로 유일하게 갈라집니다.
심화 2. 정사영을 행렬로 나타내고 그 행렬의 성질을 조사하세요.
풀이. 정사영 공식을 다시 봅니다.
가운데에서 결합 순서를 바꿨습니다. 괄호 안이 에 무관한 행렬입니다.
를 정사영 행렬이라 합니다. 행렬 곱은 66강에서 배우지만, 여기서는 "벡터를 넣으면 정사영이 나오는 상자"로 읽으면 됩니다.
성질을 확인합니다.
| 성질 | 식 | 뜻 |
|---|---|---|
| 멱등성 | 두 번 정사영해도 같습니다 | |
| 대칭성 | 직교 정사영의 특징입니다 | |
| 고윳값 | 과 | 방향은 그대로, 수직 방향은 \mathbf |
| 대각합 | 정사영하는 공간의 차원 |
멱등성이 정사영의 정의적 성질입니다. 이미 그림자인 것에 다시 그림자를 드리워도 그대로입니다.
검산에서 로 만든 가 와 를 만족하고, 고윳값이 이며 대각합이 입니다. 차원이 인 공간에서 차원 부분공간에 정사영하므로 고윳값 이 하나, 이 둘입니다.
83강에서 이 관점이 정식화됩니다. 그때는 여러 방향에 동시에 정사영하는 행렬을 만들고, 그것이 회귀분석의 모자행렬임을 봅니다. 84강의 고윳값을 배우면 위 표의 셋째 줄이 왜 그런지도 알게 됩니다.
심화 3. 평균을 빼는 것이 정사영임을 보이고, 63강 심화 4의 상관계수 설명을 완성하세요.
풀이. 을 봅니다. 차원이면 입니다.
자료 를 방향으로 정사영합니다.
모든 성분이 평균인 벡터입니다. 그러면 수직 성분은
로 중심화한 자료입니다.
63강 심화 4에서 " 방향을 걷어 낸 뒤의 코사인"이라고 한 말이 정확히 이 뜻이었습니다.
여기서 여러 사실이 따라옵니다.
| 사실 | 정사영 관점의 설명 |
|---|---|
| 편차의 합이 | 수직 성분이 과 직교하므로 |
| 분산이 편차의 제곱합 | 수직 성분의 길이 제곱 |
| 상관계수가 코사인 | 중심화한 두 벡터의 각도 |
첫 줄이 특히 깔끔합니다. 인데, 이는 수직이라는 사실 그 자체입니다. 통계에서 따로 증명하는 항등식이 여기서는 정의로부터 즉시 나옵니다.
46강 심화 4와도 이어집니다. 그때 을 최소로 하는 가 평균이라고 미분으로 보였는데, 정사영 관점에서는 에 가장 가까운 의 상수배를 찾는 문제이므로 문제 3의 최소 거리 성질이 곧바로 답을 줍니다. 미분 없이 같은 결론에 도달합니다.
이 관점이 82강의 회귀로 확장됩니다. 상수만 적합하면 평균이 나오고, 상수와 기울기를 적합하면 회귀직선이 나오는데, 둘 다 "데이터를 어떤 부분공간에 정사영하는 것"입니다.
심화 4. 직교하지 않는 두 벡터를 직교하게 만드는 절차를 세우세요.
풀이. , 가 일차독립이지만 직교하지 않는다고 합시다. 목표는 같은 평면을 생성하면서 직교하는 , 를 만드는 것입니다.
첫째, 를 정규화합니다.
둘째, 에서 방향 성분을 뺍니다.
문제 1에 의해 입니다. 정사영의 나머지를 취한 것이 전부입니다.
셋째, 정규화합니다.
인 이유는 와 가 일차독립이기 때문입니다. 만약 이면 가 의 상수배라 두 벡터가 평행합니다.
생성하는 공간이 같음도 확인합니다. 은 의 상수배이고 는 와 의 일차결합이므로 새 벡터들이 원래 평면 안에 있습니다. 거꾸로 와 도 새 벡터들의 일차결합으로 적히므로 두 생성 공간이 같습니다.
검산에서 , 로 해 보면 가 정확히 이고 둘 다 길이가 입니다. 그 평면에 를 정사영하면 나머지가 두 벡터 모두에 수직입니다.
이 절차가 그람슈미트 과정이며 80강에서 벡터가 여럿인 경우로 확장합니다. 셋째 벡터에서는 앞의 두 방향 성분을 모두 빼고, 넷째에서는 앞의 셋을 빼는 식으로 반복합니다. 81강의 QR 분해가 이 과정을 행렬로 적은 것입니다.
심화 5. 여러 방향이 만드는 부분공간에의 정사영이 최소 거리를 준다는 사실을 증명하세요.
풀이. 이고 가 정규직교라 합시다. 가 정사영입니다.
의 임의의 벡터 에 대해 거리를 계산합니다. 를 두 조각으로 나눕니다.
문제 5에서 가 전체에 수직임을 보였고, 와 가 모두 에 있으므로 그 차도 에 있습니다. 두 조각이 수직입니다.
피타고라스 정리(63강)를 적용하면
이고 등호는 일 때만입니다.
문제 3의 증명과 완전히 같은 구조입니다. 그때는 가 직선이었고 여기서는 임의의 부분공간인데, 논법은 그대로입니다.
이 정리를 정사영 정리라 하며 이 과목의 여러 결과가 여기서 나옵니다.
| 강의 | 응용 |
|---|---|
| 82강 | 최소제곱해 |
| 83강 | 회귀의 기하 |
| 89강 | 저계수 근사 |
| 59강(회고) | 푸리에 부분합 |
**"가장 가까운 것을 찾는 문제가 정사영으로 풀린다"**는 것이 이 정리의 실용적 가치입니다. 최적화 문제인데 미분 없이 대수 계산으로 끝납니다.
심화 6. 푸리에 부분합이 함수 공간에서의 정사영임을 확인하세요.
풀이. 63강 심화 2와 3에서 함수 공간에 내적을 주었습니다.
이 내적에서 와 가 정규직교집합입니다. 59강에서 확인한 직교 관계
를 로 나눈 것이 정확히 입니다.
이제 문제 5의 공식을 적용합니다. 을 처음 개의 진동수가 생성하는 부분공간이라 하면
입니다. 푸리에 계수가 정확히 내적이고, 부분합이 정확히 정사영입니다.
그러면 심화 5의 정리에서 다음이 따라옵니다.
푸리에 부분합은 처음 개의 진동수로 만들 수 있는 함수 중 원함수에 가장 가까운 것입니다.
여기서 "가깝다"는 것은 제곱적분의 뜻입니다.
가 최소라는 뜻이며, 각 점에서의 오차가 최소라는 뜻은 아닙니다. 그래서 깁스 현상이 있어도 모순이 아닙니다. 도약 근처에서 초과가 남지만 그 봉우리의 폭이 좁아 제곱적분에는 거의 기여하지 않습니다.
59강의 파스발 항등식도 이 관점에서 다시 읽힙니다.
은 정규직교기저에 대한 피타고라스 정리입니다. 63강 문제 4에서 서로 직교하는 벡터들의 합의 길이 제곱이 각 길이 제곱의 합이라고 한 것의 무한판입니다.
59강에서 배운 모든 것이 이 강의의 언어로 다시 적힙니다. 계수 추출은 내적, 부분합은 정사영, 파스발은 피타고라스입니다. 유한차원에서 익힌 기하가 무한차원에서 그대로 작동하는 것이 선형대수학의 위력입니다.
이 강의에서는 numpy만 씁니다. 정사영은 검산이 명확합니다. 분해한 두 조각이 실제로 수직인지, 그리고 정사영이 정말 가장 가까운지를 직접 확인할 수 있습니다.
import numpy as np
u = np.array([3.0, -1.0, 2.0]); v = np.array([-1.0, 4.0, 5.0])
def proj(a, b):
"""a 를 b 방향으로 정사영합니다."""
return (float(a @ b)/float(b @ b))*b
# --- 문제 1, 2: 분해 ----------------------------------------------------
p = proj(u, v); q = u - p
print(["%.8f" % z for z in p])
print(["%.8f" % z for z in q])
# ['-0.07142857', '0.28571429', '0.35714286']
# ['3.07142857', '-1.28571429', '1.64285714']
print("%.6e" % float(q @ v), bool(np.allclose(p + q, u))) # 0.000000e+00 True
print("%.8f %.8f" % (float(u @ v)/float(np.linalg.norm(v)), float(np.linalg.norm(p))))
# 0.46291005 0.46291005
# --- 문제 3: 정사영이 최소 거리를 줍니다 --------------------------------
ts = np.linspace(-2.0, 2.0, 400001)
d = np.array([float(np.linalg.norm(u - t*v)) for t in ts])
i = int(np.argmin(d))
print("%.6f %.8f" % (ts[i], d[i])) # 0.071430 3.71291183
print("%.6f %.8f" % (float(u @ v)/float(v @ v), float(np.linalg.norm(q))))
# 0.071429 3.71291183
# --- 문제 4: 점과 직선 사이의 거리 --------------------------------------
P = np.array([4.0, 5.0]); dvec = np.array([1.0, 2.0])
pp = proj(P, dvec); qq = P - pp
print(["%.6f" % z for z in pp], ["%.6f" % z for z in qq], "%.8f" % float(np.linalg.norm(qq)))
# ['2.800000', '5.600000'] ['1.200000', '-0.600000'] 1.34164079
# --- 심화 2: 정사영 행렬 ------------------------------------------------
Pm = np.outer(v, v)/float(v @ v)
print(bool(np.allclose(Pm @ Pm, Pm)), bool(np.allclose(Pm, Pm.T))) # True True
print(["%.8f" % z for z in Pm @ u])
# ['-0.07142857', '0.28571429', '0.35714286']
print(["%.6f" % z for z in np.linalg.eigvalsh(Pm)], "%.6f" % float(np.trace(Pm)))
# ['-0.000000', '0.000000', '1.000000'] 1.000000
# --- 심화 3: 평균 빼기는 (1,...,1) 방향 정사영입니다 ---------------------
x = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
one = np.ones(5)
print(["%.6f" % z for z in proj(x, one)], "%.6f" % float(x.mean()))
# ['3.000000', '3.000000', '3.000000', '3.000000', '3.000000'] 3.000000
print(["%.6f" % z for z in x - proj(x, one)], ["%.6f" % z for z in x - x.mean()])
# ['-2.000000', '-1.000000', '0.000000', '1.000000', '2.000000'] (양쪽 같습니다)
# --- 심화 4: 그람슈미트 한 걸음 -----------------------------------------
a = np.array([1.0, 1.0, 0.0]); b = np.array([1.0, 0.0, 1.0])
e1 = a/np.linalg.norm(a)
b2 = b - proj(b, e1); e2 = b2/np.linalg.norm(b2)
print("%.6e %.8f %.8f" % (float(e1 @ e2), float(np.linalg.norm(e1)),
float(np.linalg.norm(e2))))
# 0.000000e+00 1.00000000 1.00000000
w = np.array([2.0, 3.0, 4.0])
pw = float(w @ e1)*e1 + float(w @ e2)*e2
print(["%.8f" % z for z in pw], "%.6e" % float((w - pw) @ e1), "%.6e" % float((w - pw) @ e2))
# ['3.66666667', '1.33333333', '2.33333333'] 6.661338e-16 -6.661338e-16
# --- 심화 6: 푸리에 부분합은 함수 공간의 정사영입니다 --------------------
t = np.linspace(-np.pi, np.pi, 400001)[:-1] + np.pi/400000
dt = 2*np.pi/400000
f = np.sign(np.sin(t))
def coef(k): return float(np.sum(f*np.sin(k*t))*dt)/np.pi
print(["%.8f" % coef(k) for k in [1, 3, 5]])
# ['1.27323954', '0.42441318', '0.25464791']
S = sum(coef(k)*np.sin(k*t) for k in [1, 3, 5])
print("%.8f" % float(np.sum((f - S)*np.sin(1*t))*dt)) # 0.00000000
실행하면 주석과 같은 값이 나옵니다. 다섯 곳을 짚어 둡니다.
첫째, 분해한 두 조각의 합이 원래 벡터이고 **수직 성분과 의 내적이 정확히 **입니다. 그리고 스칼라 정사영 과 벡터 정사영의 길이가 같습니다. 내적이 양수라 부호가 일치합니다.
둘째, 최소 거리 성질이 격자 탐색으로 확인됩니다. 사십만 개의 를 훑어 찾은 최소가 이고 공식이 주는 와 맞습니다. 거리도 으로 소수 여덟 자리까지 같습니다. 위치가 마지막 자리에서 다른 것은 격자 간격 때문입니다.
셋째, 정사영 행렬이 와 를 만족합니다. **고윳값이 이고 대각합이 **인데, 삼차원에서 일차원 부분공간에 정사영하므로 정확히 그래야 합니다.
넷째, 심화 3의 결과가 이 강의에서 가장 값진 확인입니다. 를 방향으로 정사영하니 모든 성분이 평균 인 벡터가 나오고, 나머지가 중심화한 자료와 완전히 일치합니다. 평균을 빼는 통계 조작이 기하학적으로는 한 방향을 걷어 내는 정사영이었습니다.
다섯째, 심화 6에서 푸리에 잔차와 기저함수의 내적이 정확히 입니다. 부분합을 뺀 나머지가 이미 쓴 진동수들에 수직이며, 이것이 정사영의 정의적 성질입니다. 계수 , , 도 59강에서 얻은 와 일치합니다.
코드로 할 수 없는 일도 분명히 해 둡니다. 격자 탐색으로 최소를 찾은 것은 그 격자 안에서의 최소일 뿐입니다. 진짜 최소임은 문제 3의 이차식 논법이나 심화 5의 피타고라스 논법으로만 보장됩니다. 그리고 심화 1의 유일성은 모든 분해에 대한 주장이므로 애초에 수치로 확인할 대상이 아닙니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| \operatorname{proj}_{\mathbf{v}}\mathbf | 벡터 정사영 | 방향 성분입니다 |
| \operatorname{comp}_{\mathbf{v}}\mathbf | 스칼라 정사영 | 부호를 살린 그림자의 길이입니다 |
| 단위벡터 | 입니다 | |
| 정사영 행렬 | , 입니다 | |
| 멱등 | idempotent | 두 번 해도 같습니다 |
| \mathbf | 일벡터 | 모든 성분이 입니다 |
| 정사영 정리 | projection theorem | 정사영이 최소 거리를 줍니다 |
다음 65강에서는 삼차원에 고유한 연산인 외적을 다룹니다. 내적이 두 벡터에서 수를 만들었다면 외적은 벡터를 만드는데, 그 벡터가 원래 두 벡터에 모두 수직입니다. 그 성질 덕분에 평면의 법선을 즉시 얻을 수 있고, 이 강의에서 미뤄 둔 점과 평면 사이의 거리 공식이 그때 완성됩니다.