S3에서 다룬 것은 한 변수 함수였습니다. 입력이 수 하나이고 출력도 수 하나였습니다.
그런데 현실의 대상은 대개 수 하나로 표현되지 않습니다. 평면 위의 점은 두 수가 필요하고, 공간의 점은 셋이며, 사진 한 장은 수십만 개, 문장 하나를 담은 임베딩은 수천 개의 수로 이루어집니다. 여러 수를 한 덩어리로 다루는 언어가 필요합니다.
그 언어가 선형대수학이고 그 기본 단위가 벡터입니다.
벡터를 "수들의 나열"로만 보면 새로울 것이 없습니다. 중요한 것은 그 위에 정의된 두 가지 연산입니다. 더하기와 상수배인데, 이 둘만 있으면 놀랄 만큼 많은 것이 따라옵니다. 직선과 평면이 정의되고, 그 위에서 거리와 각도를 잴 수 있으며, 82강에서는 데이터에 가장 잘 맞는 직선을 찾는 문제가 이 언어로 풀립니다.
이 과목의 관점을 먼저 밝혀 둡니다. 행렬을 숫자 표가 아니라 공간을 옮기는 변환으로 읽습니다. 그 준비로 이 단원에서는 벡터가 사는 공간의 성질을 먼저 익힙니다.
문제. 평면에서 동쪽으로 , 북쪽으로 이동한 뒤 이어서 동쪽으로 , 북쪽으로 이동합니다.
(1) 전체 이동을 하나의 이동으로 나타내세요.
(2) 두 이동을 성분으로 적고 (1)의 결과와 비교하세요.
(3) 이동을 세 배로 늘리면 성분이 어떻게 됩니까?
생각의 실마리. 이동은 크기와 방향을 가진 양입니다. 두 이동을 이어서 하면 결과도 하나의 이동인데, 그 결과를 구하려면 동서 방향끼리 남북 방향끼리 따로 더하면 됩니다. 방향별로 독립적으로 계산된다는 점이 핵심입니다.
풀이. (1) 동서 방향으로는 만큼, 남북 방향으로는 만큼 이동했습니다. 전체는 동쪽으로 , 북쪽으로 인 하나의 이동입니다.
(2) 성분으로 적으면 과 이고 결과는 입니다. 성분끼리 더한 것과 같습니다.
(3) 각 방향의 이동이 세 배가 되므로 입니다. 성분마다 을 곱합니다.
이 문제에서 배우는 것: 벡터와 두 연산.
벡터. 개의 실수를 순서대로 늘어놓은 것을 차원 벡터라 하고
로 씁니다. 모든 차원 벡터의 모임을 이라 합니다.
두 연산.
성분별로 계산한다는 것이 두 연산의 전부입니다. 새로운 규칙이 아니라 실수의 덧셈과 곱셈을 나란히 여러 번 하는 것입니다.
벡터를 읽는 두 가지 방법이 있고 상황에 따라 골라 씁니다.
| 관점 | 벡터가 뜻하는 것 | 유리한 곳 |
|---|---|---|
| 화살표 | 크기와 방향을 가진 이동 | 기하적 직관 |
| 성분 | 수들의 나열 | 계산 |
두 관점을 자유롭게 오가는 것이 이 과목의 첫 훈련입니다. 화살표로 생각하고 성분으로 계산하는 것이 보통입니다.
두 연산의 기하적 의미도 정리해 둡니다.
| 연산 | 기하적 의미 |
|---|---|
| \mathbf{u}+\mathbf | 의 끝에서 만큼 더 갑니다 |
| (다르게) | 두 벡터가 만드는 평행사변형의 대각선입니다 |
| () | 방향은 그대로 두고 길이를 배 합니다 |
| () | 방향을 뒤집고 길이를 배 합니다 |
| \mathbf{u}-\mathbf | 의 끝에서 의 끝으로 가는 화살표입니다 |
마지막 줄이 자주 쓰입니다. 두 점을 잇는 벡터는 도착점에서 출발점을 뺀 것입니다.
바로 확인 1.
확인 1-1. , 일 때 와 를 구하세요.
답. 과 입니다.
확인 1-2. 같은 두 벡터에 대해 를 구하세요.
답. 입니다.
확인 1-3. 점 에서 점 로 가는 벡터를 구하세요.
답. 입니다.
문제. 벡터의 덧셈과 상수배가 만족하는 성질을 확인합니다.
(1) 결합법칙 가 성립하는 이유를 쓰세요.
(2) 덧셈의 항등원과 역원을 찾으세요.
(3) 상수배가 만족하는 분배법칙 두 가지를 쓰세요.
생각의 실마리. 벡터 연산이 성분별로 정의되었으므로, 각 성분에서 실수의 성질이 성립하면 벡터에서도 성립합니다. 증명이 그만큼 짧습니다. (3)에서 분배법칙이 두 가지인 것은 더하는 대상이 벡터일 수도 있고 스칼라일 수도 있기 때문입니다.
풀이. (1) 번째 성분을 보면 인데 이는 실수의 결합법칙입니다. 모든 성분에서 같으므로 벡터로도 같습니다.
(2) 모든 성분이 인 벡터 이 항등원입니다. 입니다. 역원은 이고 입니다.
(3) 두 가지입니다.
앞은 벡터를 나누고 뒤는 스칼라를 나눕니다.
이 문제에서 배우는 것: 벡터공간의 공리.
벡터공간의 공리. 집합 에 덧셈과 스칼라배가 정의되고 다음 여덟 가지를 만족하면 를 벡터공간이라 합니다.
성질 1 \mathbf{u}+\mathbf{v}=\mathbf{v}+\mathbf 2 3 인 이 있습니다 4 인 가 있습니다 5 c(\mathbf{u}+\mathbf{v})=c\mathbf{u}+c\mathbf 6 (c+d)\mathbf{v}=c\mathbf{v}+d\mathbf 7 c(d\mathbf{v})=(cd)\mathbf 8 1\mathbf{v}=\mathbf
공리를 왜 따로 뽑아 두는지가 중요합니다. 에서는 이 성질들이 자명해 보이지만, 다른 대상들도 같은 성질을 만족하기 때문입니다.
| 대상 | 덧셈 | 스칼라배 |
|---|---|---|
| \mathbb{R}^ | 성분별 | 성분별 |
| 행렬 | 성분별 | 성분별 |
| 차수 다항식 | 계수별 | 계수별 |
| 위의 연속함수 | ||
| 수열 | 항별 | 항별 |
여덟 공리만으로 증명한 것은 이 모든 대상에서 동시에 성립합니다. 그래서 71강에서 벡터공간을 추상적으로 다시 정의하며, 그때 59강의 푸리에 급수가 함수들의 벡터공간에서 일어난 일이었음이 드러납니다.
여기서 공리의 힘을 하나 보여 두겠습니다. 이라는 사실은 공리에 없지만 따라 나옵니다.
양변에 를 더하면 입니다. 성분을 한 번도 보지 않고 증명했습니다.
바로 확인 2.
확인 2-1. 벡터공간의 덧셈 항등원과 역원을 쓰세요.
답. 영벡터 과 입니다.
확인 2-2. 분배법칙 두 가지를 쓰고 무엇이 다른지 말하세요.
답. 는 벡터를 나누고 는 스칼라를 나눕니다.
확인 2-3. 이 아닌 벡터공간의 예를 두 개 드세요.
답. 같은 크기의 행렬들과 구간 위의 연속함수들입니다.
문제. 를 봅니다.
(1) 원점에서 이 점까지의 거리를 구하세요.
(2) 차원으로 일반화하세요.
(3) 방향은 같고 길이가 인 벡터를 만드세요.
생각의 실마리. (1)은 4강의 피타고라스 정리입니다. (2)에서는 삼차원부터 어떻게 되는지 생각합니다. 밑면의 대각선을 먼저 구하고 다시 피타고라스를 적용하면 성분의 제곱합에 근호를 씌운 꼴이 나옵니다.
풀이. (1) 피타고라스 정리로
입니다.
(2) 삼차원에서는 평면의 대각선이 이고 거기에 높이 을 세워 다시 피타고라스를 적용하면 입니다. 같은 방식이 반복되므로
입니다.
(3) 길이로 나눕니다. 이므로
이고 길이를 확인하면 입니다.
이 문제에서 배우는 것: 노름과 단위벡터.
노름(길이). 입니다.
단위벡터. 길이가 인 벡터입니다. 이면 가 같은 방향의 단위벡터입니다.
노름의 성질을 정리합니다.
| 성질 | 식 | 뜻 |
|---|---|---|
| 양의 정부호 | 이고 은 일 때만 | 길이는 음수가 아닙니다 |
| 동차성 | 상수배는 길이를 그만큼 늘립니다 | |
| 삼각부등식 | 돌아가면 더 멉니다 |
동차성에서 절댓값이 붙는 것을 놓치지 마십시오. 가 음수이면 방향이 뒤집히지만 길이는 여전히 양수입니다.
단위벡터로 만드는 것을 정규화라 하고 대단히 자주 쓰입니다. 방향만 중요하고 크기는 상관없을 때, 또는 여러 벡터의 크기를 맞춰 비교할 때 씁니다. 256강 이후 임베딩을 다룰 때 벡터를 정규화한 뒤 각도만 비교하는 방식이 표준입니다.
노름을 정의하는 방법이 이것 하나뿐은 아닙니다. 90강에서 여러 노름을 비교하며, 그때 지금 정의한 것을 노름이라 부르게 됩니다.
바로 확인 3.
확인 3-1. 의 길이를 구하세요.
답. 입니다.
확인 3-2. 확인 3-1의 벡터를 정규화하세요.
답. 입니다.
확인 3-3. 를 로 나타내세요.
답. 입니다. 절댓값이 붙습니다.
문제. 다음을 조사합니다.
(1) 와 의 상수배를 더해 을 만들 수 있습니까?
(2) 와 로는 어떤 벡터들을 만들 수 있습니까?
(3) 두 경우의 차이가 어디서 옵니까?
생각의 실마리. (1)은 을 푸는 문제입니다. 성분별로 쓰면 미지수 두 개의 연립방정식입니다. (2)에서는 두 벡터가 같은 방향이라는 점이 관건입니다.
풀이. (1) 성분별로 적으면
입니다. 첫 식에 를 곱해 빼면 이므로 이고 입니다. 확인하면
으로 맞습니다.
(2) 이므로 두 벡터가 평행합니다. 그러면
이 되어 언제나 의 상수배입니다. 만들 수 있는 것은 원점을 지나고 방향인 직선 위의 점들뿐입니다.
(3) 두 벡터가 같은 직선 위에 있느냐가 차이입니다. 다른 방향이면 평면 전체를 덮고, 같은 방향이면 직선 하나만 덮습니다.
이 문제에서 배우는 것: 일차결합과 생성.
일차결합. 벡터들 와 스칼라 에 대해
를 일차결합이라 합니다.
생성. 가능한 모든 일차결합의 모임을 로 쓰고 그 벡터들이 생성하는 집합이라 합니다.
에서 생성 집합이 어떤 모양인지 정리합니다.
| 벡터 | 생성하는 집합 |
|---|---|
| 원점 하나 | |
| 영이 아닌 벡터 하나 | 원점을 지나는 직선 |
| 평행하지 않은 둘 | 평면 전체 |
| 평행한 둘 | 직선 (하나일 때와 같습니다) |
**"벡터를 더 넣어도 생성 집합이 커지지 않을 수 있다"**는 점이 중요합니다. 네 번째 줄이 그 경우이며, 새 벡터가 이미 만들 수 있는 것이라면 아무것도 추가되지 않습니다.
이 관찰이 72강의 일차독립으로 이어집니다. 지금은 "평행한가"로 판정했지만, 벡터가 셋 이상이거나 차원이 높아지면 눈으로 볼 수 없으므로 대수적인 기준이 필요합니다.
표준기저도 여기서 소개해 둡니다.
임의의 벡터가 이들의 일차결합으로 유일하게 적힙니다.
성분이 곧 계수입니다. 그래서 성분 표현이 자연스러워 보이는데, 75강에서 다른 기저를 쓰면 같은 벡터가 다른 성분을 가진다는 것을 보게 됩니다. 성분은 벡터의 성질이 아니라 기저를 고른 결과입니다.
바로 확인 4.
확인 4-1. 과 이 를 생성합니까?
답. 생성합니다. 두 벡터가 평행하지 않기 때문입니다.
확인 4-2. 이 의 상수배인지 판정하세요.
답. 이므로 상수배입니다. 두 벡터가 생성하는 집합은 직선 하나입니다.
확인 4-3. 표준기저로 를 나타내세요.
답. 입니다.
문제. 다음을 확인하세요.
(1) 가 성립하는 이유를 기하적으로 설명하세요.
(2) 등호는 언제 성립합니까?
(3) 을 계산하세요.
생각의 실마리. (1)은 삼각형에서 한 변이 나머지 두 변의 합보다 짧다는 사실입니다. (3)은 성분으로 전개해 봅니다. 교차항이 어떻게 되는지가 관건입니다.
풀이. (1) 의 끝에서 만큼 더 가면 의 끝에 도달합니다. 원점, 의 끝, 의 끝이 삼각형을 이루고 세 변의 길이가 각각 , , 입니다. 삼각형에서 한 변은 나머지 두 변의 합보다 짧습니다.
(2) 삼각형이 찌그러져 선분이 될 때, 즉 와 가 같은 방향일 때입니다. 정확히는 한쪽이 다른 쪽의 음이 아닌 상수배일 때입니다.
(3) 성분으로 전개합니다. 번째 성분에서
이고 교차항 가 상쇄됩니다. 모든 에서 더하면
입니다.
이 문제에서 배우는 것: 노름의 부등식과 평행사변형 법칙.
삼각부등식. 이며 등호는 같은 방향일 때입니다.
평행사변형 법칙. \lVert\mathbf{u}+\mathbf{v}\rVert^{2}+\lVert\mathbf{u}-\mathbf{v}\rVert^{2}=2\lVert\mathbf{u}\rVert^{2}+2\lVert\mathbf{v}\rVert^
평행사변형 법칙을 그림으로 읽으면 이렇습니다. 두 대각선의 제곱합이 네 변의 제곱합과 같습니다. 와 가 두 대각선이고, 네 변은 두 개와 두 개입니다.
이 법칙이 중요한 이유가 있습니다. 어떤 노름이 내적에서 나왔는지 판정하는 기준이 되기 때문입니다. 90강에서 다른 노름들을 볼 텐데, 평행사변형 법칙을 만족하지 않는 노름은 63강의 내적으로 만들어질 수 없습니다.
삼각부등식에서 따라 나오는 유용한 형태도 적어 둡니다.
두 벡터의 길이 차이가 그 거리보다 크지 않습니다. 역삼각부등식이라 하며, 벡터가 조금 움직이면 길이도 조금만 변한다는 뜻이라 연속성 논의에서 자주 쓰입니다.
검산에서 , 일 때 이고 로 부등식이 성립하며, 평행사변형 법칙은 양변이 정확히 로 같습니다.
바로 확인 5.
확인 5-1. 삼각부등식의 등호 조건을 쓰세요.
답. 한 벡터가 다른 벡터의 음이 아닌 상수배일 때, 즉 같은 방향일 때입니다.
확인 5-2. 평행사변형 법칙을 말로 설명하세요.
답. 평행사변형의 두 대각선의 제곱합이 네 변의 제곱합과 같습니다.
확인 5-3. 역삼각부등식을 쓰세요.
답. 입니다.
| 개념 | 정의 |
|---|---|
| 벡터 | 개의 실수를 순서대로 늘어놓은 것입니다 |
| 덧셈 | 성분끼리 더합니다 |
| 스칼라배 | 성분마다 곱합니다 |
| 노름 | 입니다 |
| 단위벡터 | 길이가 인 벡터입니다 |
| 일차결합 | 입니다 |
| 생성 | 모든 일차결합의 모임입니다 |
| 기하적 의미 | |
|---|---|
| \mathbf{u}+\mathbf | 평행사변형의 대각선 |
| () | 길이만 배 |
| () | 뒤집고 배 |
| 에서 로 가는 화살표 |
| 부등식 | 식 |
|---|---|
| 삼각부등식 | |
| 역삼각부등식 | |
| 평행사변형 법칙 | \lVert\mathbf{u}+\mathbf{v}\rVert^{2}+\lVert\mathbf{u}-\mathbf{v}\rVert^{2}=2\lVert\mathbf{u}\rVert^{2}+2\lVert\mathbf{v}\rVert^ |
| 동차성 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 로 씁니다 | 절댓값이 붙습니다 |
| 벡터를 벡터로 나눕니다 | 나눗셈은 정의되지 않습니다 |
| 영벡터를 정규화하려 합니다 | 길이가 이라 불가능합니다 |
| 성분이 벡터의 고유한 성질이라 여깁니다 | 기저를 고른 결과입니다(75강) |
문제 6. 을 계산하세요.
답. 입니다.
문제 7. 을 계산하세요.
답. 입니다.
문제 8. 을 계산하세요.
답. 입니다.
문제 9. 의 길이를 구하세요.
답. 입니다.
문제 10. 문제 9의 벡터를 정규화하세요.
답. 입니다.
문제 11. 의 길이를 구하세요.
답. 입니다.
문제 12. 점 에서 로 가는 벡터를 구하세요.
답. 입니다.
문제 13. 를 로 나타내세요.
답. 입니다.
문제 14. 와 가 를 생성하는지 판정하세요.
답. 생성하지 못합니다. 두 벡터가 평행해 직선 하나만 덮습니다.
문제 15. 과 이 를 생성하는지 판정하세요.
답. 생성합니다. 평행하지 않기 때문입니다.
문제 16. 표준기저로 를 나타내세요.
답. 입니다.
문제 17. 벡터공간의 공리 여덟 가지 중 스칼라배에 관한 것 네 가지를 쓰세요.
답. , , , 입니다.
문제 18. 을 공리만으로 증명하세요.
답. 에 를 더하면 입니다.
심화 1. 벡터공간의 공리만으로 과 를 증명하세요.
풀이. 첫째를 봅니다. 공리 3에서 이므로
입니다. 공리 5를 썼습니다. 양변에 을 더하면 입니다.
둘째를 봅니다. 공리 8과 6에서
입니다. 마지막에 문제 18의 결과를 썼습니다. 그러므로 가 의 덧셈 역원이고, 역원이 유일하므로 입니다.
역원의 유일성도 공리로 증명됩니다. 과 가 모두 의 역원이면
입니다.
이 증명들의 값어치는 성분을 한 번도 보지 않았다는 데 있습니다. 그러므로 함수들의 공간이든 행렬들의 공간이든 여덟 공리를 만족하기만 하면 그대로 성립합니다. 71강에서 이 관점이 정식화됩니다.
심화 2. 삼각부등식을 성분으로 증명하세요. 63강의 내적을 쓰지 않습니다.
풀이. 양변이 음이 아니므로 제곱해 비교해도 됩니다. 목표는
입니다. 왼쪽을 전개하면
이고 오른쪽은
입니다. 그러므로 다음만 보이면 됩니다.
이것이 코시-슈바르츠 부등식입니다. 증명은 이렇습니다. 임의의 실수 에 대해
입니다. 오른쪽은 에 대한 이차식인데 모든 에서 음이 아니므로 판별식이 이하여야 합니다(2강).
정리하면
이고 제곱근을 취하면 원하는 부등식입니다.
판별식 하나로 증명이 끝났다는 점이 이 논법의 묘미입니다. 2강의 이차식 판별식이 여기서 쓰이며, 57강 심화 3에서 불확정성 원리를 증명할 때 쓴 것과 같은 부등식입니다. 63강에서 이 부등식이 각도를 정의하는 근거가 됩니다.
등호 조건도 나옵니다. 판별식이 이면 이차식이 중근을 가지므로 어떤 에서 입니다. 제곱합이 이려면 모든 항이 이어야 하므로 입니다. 두 벡터가 평행할 때만 등호입니다.
심화 3. 세 점의 무게중심을 벡터로 나타내고, 그것이 볼록결합의 특별한 경우임을 설명하세요.
풀이. 세 점을 위치벡터 , , 로 봅니다. 무게중심은
입니다. 계수가 모두 이고 합이 입니다.
볼록결합. 계수가 모두 음이 아니고 합이 인 일차결합
을 볼록결합이라 합니다.
44강 심화 2에서 젠센 부등식을 다룰 때 이 표현을 이미 썼습니다. 그때는 수의 볼록결합이었고 여기서는 점의 볼록결합입니다.
기하적으로 볼록결합은 "안쪽"을 뜻합니다.
| 계수 | 결과 |
|---|---|
| 두 점, 와 | 두 점을 잇는 선분 위 |
| 세 점, 모두 양수 | 삼각형 내부 |
| 합이 이지만 음수 허용 | 세 점이 정하는 평면 전체 |
| 제한 없음 | 원점을 포함한 생성 공간 |
세 번째 줄을 아핀결합이라 합니다. 볼록결합보다 넓고 일차결합보다 좁습니다.
검산에서 세 점 , , 의 무게중심이 이고, 계수 인 볼록결합이 로 삼각형 안에 있습니다.
이 개념은 107강의 볼록집합에서 정식으로 다뤄집니다. 그리고 44강의 볼록함수 정의가 정확히 볼록결합에 대한 부등식이었다는 것도 이제 보입니다.
심화 4. 중선 정리를 벡터로 증명하세요. 삼각형의 한 꼭짓점에서 대변의 중점까지의 선분이 중선입니다.
풀이. 세 꼭짓점을 , , 라 하고 와 의 중점을 라 합니다.
중선 정리. \lVert\mathbf{a}-\mathbf{b}\rVert^{2}+\lVert\mathbf{a}-\mathbf{c}\rVert^{2}=2\lVert\mathbf{a}-\mathbf{m}\rVert^{2}+\dfrac{\lVert\mathbf{b}-\mathbf{c}\rVert^{2}}
증명은 평행사변형 법칙의 응용입니다. , 로 두면
입니다. 문제 5의 평행사변형 법칙에 넣으면
이고 양변을 로 나누면 정리가 나옵니다.
좌표를 잡지 않고 증명했다는 점이 중요합니다. 초등기하에서 이 정리를 증명하려면 좌표를 도입하고 계산이 길어지는데, 벡터로 하면 평행사변형 법칙 하나에 귀착됩니다.
검산에서 세 점 , , 에 대해 양변이 정확히 으로 같습니다.
벡터가 기하 문제에 강한 이유가 여기 있습니다. 좌표계를 고르지 않고도 계산할 수 있으므로, 좌표에 의존하지 않는 성질이 자연스럽게 드러납니다. 65강의 직선과 평면의 방정식에서 이 이점이 더 분명해집니다.
심화 5. 이 아닌 벡터공간의 예를 세 가지 들고 각각에서 영벡터가 무엇인지 밝히세요.
풀이. 세 가지를 봅니다.
첫째, 다항식 공간입니다. 차수가 이하인 실계수 다항식들의 모임 을 봅니다. 덧셈과 상수배가 계수별로 정의되므로 공리가 모두 성립합니다.
| 항목 | 내용 |
|---|---|
| 원소 | a_{0}+a_{1}x+\cdots+a_{n}x^ |
| 영벡터 | 항등적으로 인 다항식 |
| 자연스러운 기저 | 1,x,x^{2},\dots,x^ |
계수를 나열하면 과 같아 보입니다. 실제로 73강에서 두 공간이 동형임을 배웁니다.
둘째, 함수 공간입니다. 에서 연속인 함수들의 모임 입니다.
| 항목 | 내용 |
|---|---|
| 원소 | 연속함수 |
| 덧셈 | |
| 영벡터 | 항등적으로 인 함수 |
| 차원 | 무한입니다 |
이 공간이 59강의 무대였습니다. 푸리에 급수는 함수를 라는 무한개의 기저벡터로 분해한 것이고, 계수를 뽑는 데 쓴 직교성이 79강의 내적으로 정식화됩니다.
셋째, 행렬 공간입니다. 실행렬들의 모임입니다. 영벡터는 모든 성분이 인 행렬이고 차원은 입니다.
세 예의 공통점을 확인해 두십시오. 원소가 화살표처럼 생기지 않았는데도 벡터공간입니다. 벡터공간이라는 것은 원소의 생김새가 아니라 그 위의 연산이 만족하는 규칙에 관한 이야기입니다.
그래서 이 과목에서 증명하는 정리들이 대단히 넓게 적용됩니다. 82강의 최소제곱을 에서 배우지만 함수 공간에서도 그대로 쓸 수 있고, 그것이 곧 함수를 다항식이나 삼각함수로 근사하는 문제가 됩니다.
심화 6. 벡터에 나눗셈을 정의할 수 없는 이유를 설명하고, 그럼에도 쓸 수 있는 대안을 제시하세요.
풀이. 수에서 나눗셈은 곱셈의 역연산입니다. 는 인 입니다. 벡터에서 같은 것을 하려면 먼저 벡터끼리의 곱셈이 있어야 하는데, 그것부터 문제입니다.
성분별 곱을 정의해 보면 문제가 드러납니다. 으로 두면 곱셈처럼 보이지만
입니다. 영이 아닌 두 벡터의 곱이 영입니다. 그러면 으로 나누는 연산이 정의될 수 없습니다. 인 가 없기 때문입니다.
더 근본적인 이유가 있습니다. 을 나눗셈이 가능한 대수 구조로 만들 수 있는 차원은 뿐임이 증명되어 있습니다. 각각 실수, 복소수, 사원수, 팔원수이며 차원이 올라갈수록 성질을 하나씩 잃습니다.
| 차원 | 이름 | 잃는 성질 |
|---|---|---|
| 실수 | 없음 | |
| 복소수 | 순서 | |
| 사원수 | 곱셈의 교환법칙 | |
| 팔원수 | 곱셈의 결합법칙 |
에서는 불가능합니다. 삼차원 공간에 나눗셈을 정의하려던 해밀턴이 실패 끝에 사차원으로 올라가 사원수를 발견한 일화가 유명합니다.
대안은 곱셈을 포기하고 다른 종류의 연산을 정의하는 것입니다.
| 연산 | 결과 | 강의 |
|---|---|---|
| 내적 \mathbf{u}\cdot\mathbf | 스칼라 | 63강 |
| 외적 \mathbf{u}\times\mathbf | 벡터(삼차원에서만) | 65강 |
| 행렬 곱 | 벡터를 벡터로 | 66강 |
셋 모두 "벡터끼리의 곱셈"이 아닙니다. 내적은 결과가 스칼라라 벡터가 아니고, 외적은 삼차원에서만 되며 교환법칙도 결합법칙도 만족하지 않습니다. 행렬 곱은 벡터가 아니라 변환을 곱하는 것입니다.
그럼에도 이 세 연산으로 필요한 일을 거의 다 할 수 있습니다. 나눗셈에 해당하는 것은 69강의 역행렬이 맡으며, 그것도 언제나 존재하지는 않습니다.
이 강의에서는 numpy만 씁니다. 벡터 연산은 numpy 배열이 그대로 지원하므로 검산이 직접적입니다. 공리와 부등식은 여러 값에서 확인하고, 계산은 손으로 얻은 답과 대조합니다.
import numpy as np
u = np.array([3.0, -1.0, 2.0]); v = np.array([-1.0, 4.0, 5.0])
w = np.array([2.0, 0.0, -3.0])
# --- 문제 1: 벡터 연산의 기본 -------------------------------------------
print((u + v).tolist(), (u - v).tolist(), (3*u).tolist())
print((2*u - 3*v).tolist())
# [2.0, 3.0, 7.0] [4.0, -5.0, -3.0] [9.0, -3.0, 6.0]
# [9.0, -14.0, -11.0]
# --- 문제 2: 공리 확인 --------------------------------------------------
a, b = 2.5, -1.5
print(bool(np.allclose((u + v) + w, u + (v + w))),
bool(np.allclose(a*(u + v), a*u + a*v)),
bool(np.allclose((a + b)*u, a*u + b*u)),
bool(np.allclose(a*(b*u), (a*b)*u)))
# True True True True
# --- 문제 3: 크기와 단위벡터 --------------------------------------------
for x in [u, v, w]:
n = float(np.linalg.norm(x))
print(x.tolist(), "%.8f" % n, "%.8f" % float(np.linalg.norm(x/n)))
# [3.0, -1.0, 2.0] 3.74165739 1.00000000
# [-1.0, 4.0, 5.0] 6.48074070 1.00000000
# [2.0, 0.0, -3.0] 3.60555128 1.00000000
# --- 문제 4: 일차결합과 생성 --------------------------------------------
e = np.eye(3)
print((3*e[0] - e[1] + 2*e[2]).tolist(), u.tolist())
# [3.0, -1.0, 2.0] [3.0, -1.0, 2.0]
A = np.array([[1.0, 3.0], [2.0, 4.0]]) # 열이 (1,2) 와 (3,4)
c = np.linalg.solve(A, np.array([5.0, 6.0]))
print(["%.6f" % z for z in c], (A @ c).tolist())
# ['-1.000000', '2.000000'] [5.0, 6.0]
B = np.array([[1.0, 2.0], [2.0, 4.0]]) # 열이 평행합니다
print("%.6e" % float(np.linalg.det(B))) # 0.000000e+00
# --- 문제 5: 삼각부등식과 평행사변형 법칙 --------------------------------
nu = float(np.linalg.norm(u)); nv = float(np.linalg.norm(v))
print("%.8f %.8f" % (float(np.linalg.norm(u + v)), nu + nv))
# 7.87400787 10.22239809
print("%.8f %.8f" % (float(np.linalg.norm(u+v)**2 + np.linalg.norm(u-v)**2),
2*(nu**2 + nv**2)))
# 112.00000000 112.00000000
# --- 심화 3: 무게중심과 볼록결합 ----------------------------------------
P = np.array([[0.0, 0.0], [4.0, 0.0], [1.0, 3.0]])
print(P.mean(axis=0).tolist()) # [1.6666666666666667, 1.0]
lam = np.array([0.2, 0.5, 0.3])
print(["%.6f" % z for z in lam @ P], "%.6f" % float(lam.sum()))
# ['2.300000', '0.900000'] 1.000000
# --- 심화 4: 중선 정리 --------------------------------------------------
A0, B0, C0 = P
M = (B0 + C0)/2
print("%.8f %.8f" % (float(np.linalg.norm(A0-B0)**2 + np.linalg.norm(A0-C0)**2),
float(2*np.linalg.norm(A0-M)**2 + np.linalg.norm(B0-C0)**2/2)))
# 26.00000000 26.00000000
실행하면 주석과 같은 값이 나옵니다. 네 곳을 짚어 둡니다.
첫째, 네 가지 공리가 모두 True입니다. 성분별 정의 덕분에 실수의 성질이 그대로 올라온다는 것이 확인됩니다.
둘째, 정규화한 벡터의 길이가 세 경우 모두 정확히 입니다. 길이로 나누면 방향은 그대로이고 크기만 이 됩니다.
셋째, 일차결합의 두 경우가 대조됩니다. 와 를 열로 가지는 행렬은 해가 나오고 결과가 정확히 입니다. 반면 와 를 열로 가지는 행렬은 **행렬식이 정확히 **입니다. 두 열이 평행해 평면 전체를 덮지 못한다는 사실이 이 값 하나로 드러납니다. 행렬식은 78강에서 정식으로 배우지만, 여기서는 "평행하면 "이라는 신호로만 읽으면 됩니다.
넷째, 삼각부등식과 평행사변형 법칙이 확인됩니다. 앞은 로 성립하고, 뒤는 양변이 정확히 로 같습니다. 부등식과 등식의 차이가 두 줄에 나란히 보입니다. 그리고 심화 4의 중선 정리도 양변이 정확히 입니다.
코드로 할 수 없는 일도 분명히 해 둡니다. 공리를 몇 개의 값에서 확인한 것은 증명이 아닙니다. 성분별 정의에서 실수의 성질을 인용해야 모든 벡터에 대해 참임을 알 수 있습니다. 그리고 심화 1의 증명들은 성분을 쓰지 않으므로 애초에 수치로 확인할 대상이 아닙니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| \mathbf | 벡터 | 굵은 글씨로 씁니다 |
| \mathbb{R}^ | 알 엔 | 차원 실벡터 전체입니다 |
| 노름, 길이 | 입니다 | |
| 단위벡터 | 입니다 | |
| \mathbf{e}_ | 표준기저 벡터 | 번째만 입니다 |
| \operatorname | 생성 | 모든 일차결합의 모임입니다 |
| 일차결합 | linear combination | 입니다 |
| 볼록결합 | convex combination | 계수가 음이 아니고 합이 입니다 |
다음 63강에서는 두 벡터 사이의 관계를 재는 도구를 만듭니다. 이 강의에서는 벡터 하나의 길이만 다뤘는데, 두 벡터가 얼마나 같은 방향을 향하는지를 재려면 새로운 연산이 필요합니다. 그것이 내적이며, 심화 2에서 증명한 코시-슈바르츠 부등식이 각도를 정의할 자격을 줍니다.