If you're seeing this message, it means we're having trouble loading external resources on our website.

웹 필터가 올바르게 작동하지 않으면 도메인 *. kastatic.org*.kasandbox.org이 차단되어 있는지 확인하세요.

주요 내용

그람-슈미트 과정

그람-슈미트 과정을 이용하여 부분공간에 대한 정규직교기저를 찾아봅시다. 만든 이: 살만 칸 선생님

동영상 대본

여기 일차독립인 벡터 집합 V1, V2... Vk 가 있습니다 여기 일차독립인 벡터 집합 V1, V2... Vk 가 있습니다 이 벡터 집합은 V의 기저입니다 전에도 여러 번 봤던 기저 문제에요 저번 수업에서는 기저보다 정규직교기저가 훨씬 더 좋다고 배웠어요 저번 수업에서는 기저보다 정규직교기저가 훨씬 더 좋다고 배웠어요 저번 수업에서는 기저보다 정규직교기저가 훨씬 더 좋다고 배웠어요 V의 정규직교기저 이번 수업에서는 주어진 V의 기저를 이용해서 V의 정규직교기저를 만드는 방법을 배워볼 거에요 초기 V는 정규직교가 아니라고 가정할 거에요 사실 정규직교든 아니든 상관없어요 또 다른 정규직교기저가 생길 뿐이에요 어떤 기저가 주어졌을 때 이에 대한 정규직교기저를 만들고 이 기저의 특성으로 무엇을 할 수 있는지 알아봅시다 그럼 머리를 함께 맞대고 생각해 봅시다 먼저 간단한 경우를 살펴봅시다 어떤 1차원 부분공간이 있습니다 이것을 V1이라고 합시다 1차원 부분공간입니다 V1은 벡터 v1 한 개로 이루어져 있다고 합시다 이 때 벡터 v1은 부분공간 V1의 기저라고 할 수 있어요 이런 간단한 경우에 이 벡터를 어떻게 정규직교하게 만들 수 있을까요? 우선 u1이라는 벡터를 정의할 거에요 v1은 당연히 다른 모든 벡터와 직교해요 사실 다른 벡터가 없어요 영벡터가 있다고 할 수는 있겠지만 V1에 속한 또 다른 벡터는 없어요 따라서 겹치는 게 없으므로 다른 모든 것과 직교해요 그렇다면 이 v1의 길이를 1로 만드려면 v1 ÷ v1의 길이 를 하면 돼요 u1을 다음과 같이 정의할게요 u1 = v1 / ‖v1‖ 그러면 ‖u1‖은 무엇일까요? ‖u1‖ = ‖ v1 / ‖v1‖ ‖ ‖u1‖ = ‖ v1 / ‖v1‖ ‖ 이렇게 나타낼 수 있어요 ‖v1‖은 상수에요 그럼 이렇게 돼요 1 / ‖v1‖ ‖v1‖ 는 5나 6 같은 수에요 1 / ‖v1‖ × ‖v1‖ 계산하면 1이에요 u1의 길이는 1이네요 이렇게 u1만 있는 단위집합이 있다면 이 집합은 부분공간 V1의 정규직교기저라고 할 수 있어요 매우 쉬운 문제였어요 k=1일 때는 이렇게 쉽습니다 벡터를 길이로 나눠서 정규화 시키면 벡터를 길이로 나눠서 정규화 시키면 정규직교기저가 완성됩니다 직교인 다른 벡터가 전혀 없기 때문이죠 다음은 더 복잡한 경우를 생각해 봅시다 2차원으로 가봅시다 위에서 주어진 두 벡터로 부분공간 V2를 생성했습니다 위에서 주어진 두 벡터로 부분공간 V2를 생성했습니다 위에서 주어진 두 벡터로 부분공간 V2를 생성했습니다 V2 = span( v1, v2 ) 벡터 v1은 벡터 u1의 일차결합이라고 볼 수 있습니다 벡터 v1은 벡터 u1의 일차결합이라고 볼 수 있습니다 왜 그럴까요? 양변에 ‖v1‖ 을 곱해보면 양변에 ‖v1‖ 을 곱해보면 u1 × ‖v1‖ = v1 따라서 span(v1, v2)는 다음과 같아요 span(v1, v2) = span(u1, v2) 이에요 u1은 위에서 구한 벡터에요 왜 그럴까요? v1, v2의 일차결합으로 생성할 수 있는 것은 u1, v2로 생성할 수도 있기 때문이에요 u1의 일차결합으로 v1을 만들어서 v1 자리에 대입하면 되죠 u1의 일차결합으로 v1을 만들어서 v1 자리에 대입하면 되죠 따라서 u1에 스칼라를 곱하기만 하면 돼요 무슨 말인지 잘 알겠죠? 그런데 span(u1, v2)를 어떻게 정규직교집합으로 만들까요? 그래프에 그려봅시다 여기 어떤 평면 Rn이 있습니다 이쪽을 벡터 평면이라고 생각하세요 이쪽을 벡터 평면이라고 생각하세요 이것은 단위벡터 u1이에요 길이가 1이죠 이 벡터는 u1이고요 기저의 정의에 따르면 벡터 v1과 v2는 일차독립입니다 기저의 정의에 따르면 벡터 v1과 v2는 일차독립입니다 따라서 v2는 v1의 일차결합으로 나타낼 수 없습니다 따라서 v2는 v1의 일차결합으로 나타낼 수 없습니다 마찬가지로 v2는 u1의 일차결합으로 나타낼 수 없습니다 u1은 자기 자신의 일차결합이기 때문이에요 그렇다면 v1은 항상 u1이 생성하는 직선 밖에 있습니다 직접 한번 그려볼게요 벡터 u1이 생성하는 직선은 이렇습니다 이 점선이 u1이 놓인 직선이에요 좀 더 잘 그려볼게요 한 번만 다시 해 볼게요 벡터 u1이 생성하는 직선은 이렇습니다 일직선이에요 이게 바로 부분공간 V1이에요 span(u1)과 같아요 따라서 span(v1) = span(u1) 여기서는 v1을 정규화해서 u1을 만든 것 뿐이에요 span(v1) = span(u1)이고 이것은 지금 가리키는 부분공간을 나타내요 Rn 공간 위의 직선이죠 벡터 v2는 v1, u1에 일차독립인 벡터인데요 벡터 v2는 v1, u1에 일차독립인 벡터인데요 벡터 v2를 이렇게 생겼다고 해봐요 벡터 v2를 이렇게 생겼다고 해봐요 그럼 이제 v2를 또 다른 벡터로 바꿔서 u1과 완전히 직교한 벡터로 만들면 이 벡터를 u1과 일차결합해서 부분공간 V2를 생성할 수 있을 거예요 가장 간단하게 구할 수 있는 벡터는 v1에 직교한 벡터입니다 가장 간단하게 구할 수 있는 벡터는 v1에 직교한 벡터입니다 직교벡터니까 V1의 직교여공간이 되겠네요 직교벡터니까 V1의 직교여공간이 되겠네요 직교벡터니까 V1의 직교여공간이 되겠네요 그림을 보면 어떤 v1과 v1의 직교여공간 벡터를 더하면 v2를 얻을 수 있습니다 이미 여러 번 봤을 거예요 Rn에 있는 모든 벡터 예를 들면, v2를 봅시다 v2는 두 벡터의 합으로 나타낼 수 있어요 이 두 벡터를 x와 y라고 합시다 x는 V1에 속해있고 y는 V1의 직교여공간에 속해있습니다 전에 여러 번 본 상황이에요 그럼 이 벡터 x는 무엇의 정의인가요? 그림에서 x는 여기있어요 그림에서 x는 여기있어요 y는 여기있어요 지금은 y를 구하려고 합니다 벡터 y를 구해서 v 대신 y를 대입할 수 있다면 V를 생성할 수 있습니다 왜냐면 벡터 u와 y를 더해서 v를 나타낼 수 있고 따라서 v2로 생성한 모든 벡터는 벡터 u1과 새로운 벡터의 조합으로 언제든지 만들 수 있어요 벡터 u1과 새로운 벡터의 조합으로 언제든지 만들 수 있어요 그렇다면 벡터 y를 구해봅시다 그렇다면 벡터 y를 구해봅시다 어떻게 해야 할까요? v2 - x를 하면 되겠네요 v2 - x를 하면 되겠네요 그러면 이 벡터 x는 뭐라고 부르나요? 벡터 x는 벡터 v2의 부분공간 V1에 대한 정사영입니다 벡터 x는 벡터 v2의 부분공간 V1에 대한 정사영입니다 지금 찾고자 하는 벡터 y는 v2를 대신해 들어갈 값입니다 이 벡터 y는 v2 - v2의 V1에 대한 정사영입니다 이 벡터 y는 v2 - v2의 V1에 대한 정사영입니다 y는 이렇게 정의됩니다 기억하세요 span(u1, v2)가 span(u1, y2)가 같은 이유는 아, 이걸 y2라고 하죠 아마 다음에 y가 여러번 나올거에요 아마 다음에 y가 여러번 나올거에요 y2 span(u1, v2)가 span(u1, y2)가 같은 이유는 u1과 y2의 선형결합으로 V2를 만들 수 있기 때문이에요 u1과 y2의 선형결합으로 V2를 만들 수 있기 때문이에요 u1에 스칼라를 곱해서 y2를 더하면 v2를 나타낼 수 있어요 따라서 v2로 만들 수 있는 건 이 두 벡터의 선형결합으로 만들 수 있어요 따라서 v2로 만들 수 있는 건 이 두 벡터의 선형결합으로 만들 수 있어요 그래서 이 둘이 똑같은 겁니다 이렇게 새로 만든 집합에서 두 벡터는 서로 직교합니다 정의에 따르면 y는 직교여공간에 속해있습니다 따라서 두 벡터의 내적은 0입니다 실제로 어떻게 값을 구할 수 있을까요? 이것도 유용하게 쓸 수 있어요 V1은 정규직교기저로 이루어져 있기 때문이에요 V1은 정규직교기저로 이루어져 있기 때문이에요 지지난번 수업에서 말했듯이 정규직교기저는 투영시키기 매우 편리하다는 장점이 있었죠 정규직교기저는 투영시키기 매우 편리하다는 장점이 있었죠 벡터 v2의 부분공간 V1에 대한 정사영은 다음 식과 같아요 v2 v2ㆍu1 u1은 부분공간 V1의 첫 번째 기저벡터에요 u1은 부분공간 V1의 첫 번째 기저벡터에요 정규직교기저에요 여기에 u1을 곱해줘요 (v2ㆍu1) u1 기저벡터가 더 있었다면 + (v2ㆍ기저벡터) 기저벡터 기저벡터가 더 있었다면 + (v2ㆍ기저벡터) 기저벡터 이런 식으로 계속 반복돼요 그러나 V1에는 오직 한 개의 기저벡터만 있어요 바로 여기 있는 u1이죠 바로 여기 있는 u1이죠 V1은 u1이 생성하는 거예요 이걸 다시 써보면 y2 는 벡터 v2 대신 집어넣을 이 벡터는 y2 = v2 - v2의 V1에 대한 정사영입니다 바로 이 직선에 투영시킨 거예요 (v2 ㆍu1 ) u1 이렇게 y에 대해 풀었습니다 이제 V2의 기저벡터를 구했습니다 u1과 y2에요 서로 직교하죠 u1은 단위벡터에요 정규화를 한 벡터죠 u1은 단위벡터에요 정규화를 한 벡터죠 하지만 y2는 정규화하지 않았어요 y2를 정규화하기 전에 먼저 벡터 u2를 정의하고 똑같이 해볼게요 이제 정규화하면 됩니다 u2 = y2 / ‖y2‖ u2 = y2 / ‖y2‖ 이제 부분공간 V2를 정의해 봅시다 V2 = span(u1, u2) y2 대신에 u2를 넣었어요 u2에 스칼라값만 곱하면 y2를 만들 수 있기 때문이에요 지금 나온 벡터는 둘 다 정규화시킨 단위벡터인데 서로 직교하며 V1과 V2를 생성한 벡터에서 나온 것입니다 서로 직교하며 V1과 V2를 생성한 벡터에서 나온 것입니다 계속해서 다음 차원을 구해 봅시다 이제 V3을 만들어 봅시다 어떻게 해야 할까요? 똑같은 방식으로 하면 됩니다 부분공간 V3를 정의해 봅시다 V3는 3차원 부분공간입니다 V3를 넘어가면 모습을 떠올리기 어려워지지만 V3를 넘어가면 모습을 떠올리기 어려워지지만 이것까지 하고 나면 규칙이 보일 거예요 V3 = span u1, u2 라고 한 다음 초기 기저벡터인 v3를 넣을게요 문제에 쓰여 있진 않지만 존재하는 벡터입니다 맨 처음에 주어진 정규화 하기 전의 기저중에는 v3도 있어요 V3는 어떻게 정규직교기저로 바꿀 수 있을까요? V3는 어떻게 정규직교기저로 바꿀 수 있을까요? V3의 모습을 머릿속에서 그려봅시다 span(u1, u2) 즉 부분공간 V2는 평면 공간입니다 R3 벡터평면 공간이에요 이 평면같이 생겼어요 지금 새로 생성하는 벡터공간은 이 평면에 있는 모든 벡터의 일차결합과 세 번째 벡터 v3의 일차결합으로 이루어집니다 이 때 v3는 u1, u2와 일차독립입니다 처음에 기초한 벡터가 서로 일차독립이기 때문이에요 따라서 v3는 이 평면 밖에 위치합니다 u1과 u2의 일차결합으로 나타낼 수 없기 때문이에요 u1과 u2의 일차결합으로 나타낼 수 없기 때문이에요 이런 식으로 v3는 평면 위에 떨어져 있어요 이제 새로운 벡터를 만들어야 하는데 다른 벡터와 일차결합하여 V3를 충분히 나타내면서 u1, u2와 직교하는 새로운 벡터를 구해야 합니다 다른 말로는 평면과 직교하는 벡터를 찾아야 합니다 이 벡터를 y3라고 합시다 y3 y3를 구하면 벡터 v3 대신 집어넣을 수 있어요 왜냐면 v3는 u1과 u2의 일차결합으로 나타낼 수 있기 때문이에요 왜냐면 v3는 u1과 u2의 일차결합으로 나타낼 수 있기 때문이에요 u1과 u2의 일차결합해서 나온 벡터는 이 평면에 있고요 여기에 y3를 더합니다 이 분홍색 벡터는 연두색 벡터와 노란색 벡터를 결합해서 나타낼 수 있어요 v3를 y3로 치환해도 v3를 나타낼 수 있고 v3와 결합해서 나오는 모든 벡터를 나타낼 수도 있어요 이 y3의 정체는 무엇일까요? 이 연두색 벡터는 벡터 v3의 부분평면 V2에 대한 정사영이에요 그리고 y3는 v3에서 이 투영벡터를 뺀 벡터에요 이걸 어떻게 나타내야 할까요? 벡터 v3의 부분공간 V2에 대한 정사영은 다음과 같아요 전에 본 논리와 똑같아요 지지난번 수업에서 했어요 부분공간 V2가 정규직교기저로 이루어져 있으므로 벡터 v3를 부분공간 V2에 대해 투영하면 다음과 같아요 첫 번째 기저벡터가 u1 이므로 (v3ㆍu1) u1 더하기 (v3ㆍu2) u2 u2는 두 번째 기저벡터 혹은 두 번째 정규직교기저 벡터에요 참 쉽죠? 이게 바로 정규직교기저의 장점이에요 이게 바로 정규직교기저의 장점이에요 이 네모칸은 정규직교기저 벡터고 투영벡터를 이런 식으로 정의할 수 있습니다 따라서 y3는 v3에서 이 연두색 부분을 빼면 됩니다 직접 써볼게요 y3 = v3 - v3의 V2에 대한 정사영 y3 = v3 - (v3ㆍu1) u1 + (v3ㆍu2) u2 y3 = v3 - (v3ㆍu1) u1 + (v3ㆍu2) u2 이제 y3를 구했습니다 좋아요 이제 v3 대신 y3를 넣어볼게요 u1, u2와 y3의 일차결합으로 v3를 나타낼 수 있으니 y3를 넣어도 문제 없어요 세 벡터는 서로 직교하니까 그래도 괜찮아 보이네요 하지만 y3의 길이는 아직 1이 아니에요 정규화를 아직 안 했어요 그래서 y3 대신 새로운 단위 벡터를 만들 거에요 이렇게 정의하죠 u3 = y3 / ‖y3‖ 벡터 y3의 실제 값을 알면 길이를 구하고 나누기만 하면 돼요 V3 = span(u1, u2, u3) V3 = span(u1, u2, u3) u3는 벡터 y3를 크기만 줄인 것으로 생각해도 돼요 벡터를 일차결합해서 공간을 생성할 때는 스칼라를 곱해도 투영하면 v3가 똑같이 나와요 스칼라를 곱해도 투영하면 v3가 똑같이 나와요 어쨌든 이 벡터들은 전부 정규화 했습니다 부분공간 V3의 정규직교기저를 모두 구했어요 규칙이 보이나요? 이런 식으로 계속하면 돼요 부분공간 V4를 정의하고 싶다면 똑같은 과정으로 하세요 k 차원의 부분공간 Vk를 정의하고 싶다면 이 과정으로 k 차원까지 하세요 k = 3인 경우는 지금 구했어요 k = 4이고 V4를 정의한다면 V4 = span(u1, u2, u3... )에다가 비정규직교 벡터 v4를 추가합니다 v4 대신 y4를 넣으면 y4는 다음과 같습니다 y4 = v4 - 정사영입니다 이제 머릿속에서 그려보기가 쉽지 않네요 3차원 공간에 투영한다는 개념이 생소하죠 벡터 v4의 부분공간 V3에 대한 정사영을 구해야 해요 이 그림과 거의 비슷합니다 평면 대신 3차원 공간을 생각하면 돼요 3차원 공간에 대해 투영을 하는 겁니다 이것은 부분공간 V3에 있는 다른 벡터와 완전히 직교해요 이것은 부분공간 V3에 있는 다른 벡터와 완전히 직교해요 그리고 v4는 y4로 생성할 수 있어요 왜냐하면 v4는 다음과 같이 정의돼요 v4 = y4 더하기 v4 = y4 + v4의 V3에 대한 정사영 따라서 V4는 y4와 u1, u2, u3의 일차결합으로 생성할 수 있어요 그래서 v4 대신 y4를 넣어도 됩니다 다음으로 y4를 정규화해야 합니다 y4에 y4의 길이를 나눠서 u4를 만듭시다 이런 과정을 k 차원까지 반복하기만 하면 돼요 V5를 만든다고 하면 똑같은 과정을 계속하면 돼요 이런 정규직교기저를 만드는 과정을 그람 - 슈미트 과정이라고 해요 지금까지 한 과정이 별로 와닿지 않았을 수도 있어요 하지만 다음 수업에서는 실제로 어떤 부분공간의 정규직교기저를 구할 거에요 실수로 된 벡터로 하다 보면 별로 어렵지 않을 거예요 실수로 된 벡터로 하다 보면 별로 어렵지 않을 거예요