벡터

Vector.

수학에서의 벡터[편집 | 원본 편집]

벡터공간의 원소를 벡터라고 한다.

이것이 정식 정의이고, 여기서 더할 말도 뺄 말도 없다. 벡터에 관한 공부는 벡터공간에 관한 공부로서 하게 된다. 자세한 내용은 벡터공간 참조.

그런데 고등학교에서는 이와 다른 정의를 먼저 가르치고, 그 정의는 오히려 학생들에게 혼란을 주는 경우가 많아 이에 대해 부연을 해 본다.

고등학교에서의 벡터의 정의[편집 | 원본 편집]

고등학교에서 벡터의 정의가 나오는 부분을 보면 위에서와 같이 '크기와 방향을 나타내는 양을 벡터라고한다' 라고 명시되어 있다.그리고 많은 학생또한 그렇게 알고 있다. 하지만 잘 생각해보자. 이게 정말 수학적 정의 인가? 그러면 크기라는 것은 무엇이고 방향이란건 어떻게 정의할 것인가? 이러한 용어들이 먼저 잘 정의되어 있지 않으면 수학적으로 잘 정의된 용어라고 볼 수 없다. 따라서 '크기와 방향을 나타내는 양'은 수학적 정의가 아니라 수학적 정의 전 단계의 직관으로서만 받아들여야 한다.

이미지적으로 크기와 방향을 나타낼수 있는 것은 길이를 가지는 화살표이다. 이를 수학적객체들로 대응 시키기위해서 좌표평면위의 순서쌍으로 나타나는 점 [math]\displaystyle{ A=(a,b) }[/math]에서 점[math]\displaystyle{ B=(c,d) }[/math]쪽을 가리키며 이 두 점 사이의 길이를 가지는 화살표와의 대응으로서 [math]\displaystyle{ A=(a,b) }[/math][math]\displaystyle{ B=(c,d) }[/math]의 순서쌍(즉 순서쌍의 순서쌍)[math]\displaystyle{ (A,B)=((a,b),(c,d)) }[/math]를 생각할 수 있다. 하지만 이러한 단순대응은 '화살표라는 것은 위치에 상관없다'라는 중요한 성질을 간과하게 된다. 즉 같은 화살표를 여러 [math]\displaystyle{ (A,B) }[/math]에 대응시킬수 있으며 이들은 수학적으로 다른 존재가 되는 것이다.

따라서 이 문제를 해결하기위해 벡터 [math]\displaystyle{ \vec{AB} }[/math]의 정의를 다음과 같이 생각할 수 있다.

[math]\displaystyle{ A=(a,b), B=(c,d) }[/math]라고 할 때 벡터 [math]\displaystyle{ \vec{AB} }[/math][math]\displaystyle{ g-e=c-a,h-f=d-b }[/math]를 만족하는 모든[math]\displaystyle{ c,f,g,h }[/math]에 대한 두 점의 순서쌍 [math]\displaystyle{ ((c,f),(g,h)) }[/math]들의 집합이다.

즉 화살표를 해당하는 모든 것들의 모임에 대응시켜 정의한다.

이렇게 정의한 두 벡터 [math]\displaystyle{ \vec{AB} }[/math][math]\displaystyle{ \vec{CD} }[/math]에 대해 생각해 볼 때, [math]\displaystyle{ \vec{CD} }[/math]는 어떠한 [math]\displaystyle{ E }[/math]에 대해 [math]\displaystyle{ \vec{BE} }[/math]로서도 표현할 수 있다.(이미지 적으로는 화살표를 이동한 것이다). 그리고 이 두벡터의 덧셈을 [math]\displaystyle{ \vec{AB}+\vec{CD}=\vec{AB}+\vec{BE}=\vec{AE} }[/math] 라고 정의할 수 있다.

단 여기서 그냥 넘어가지 말아야 할 것은 이것이 잘 정의되는가하는 것이다. 우리가 이 덧셈을 정의할 때 앞에 [math]\displaystyle{ \vec{AB} }[/math]에 대응해서[math]\displaystyle{ \vec{CD} }[/math]의 원소중 하나[math]\displaystyle{ (B,E) }[/math]를 임의로 선택해서 그것을[math]\displaystyle{ \vec{CD} }[/math]의 이름으로 삼아([math]\displaystyle{ \vec{CD}=\vec{BE} }[/math]) 덧셈을 정의했다. 이럴때는 그러한 선택에 관계없이 같은 값(벡터)이 나오는가가 수학적으로 중요하다. 연습문제로 남긴다.스칼라배도 어떻게 잘 정의할 것인지 스스로 생각해보자.


위를 좀더 확장시켜 벡터공간의 원소로서 벡터를 정의할 수 있다.

위치벡터[편집 | 원본 편집]

물리학에서의 벡터[편집 | 원본 편집]

크기와 방향을 동시에 나타내는 물리량을 말한다.

물리학에서의 벡터 개념에 관한 사유[편집 | 원본 편집]

크기와 방향을 모두 가진 양을 벡터라고 부른다고 했다. 하지만 매번 방향을 언급하기는 불편하며, 기준 방향이 주어져 있다고 해도 '크기와 방향'만으로 벡터를 연산하려면 삼각함수의 여러 법칙들을 사용해야 한다. 그렇다면 벡터를 더 편리하게 언급할 방법이 있을지 한 번 알아보자. 어떤 문제를 탐구할 때 답을 쉽게 알 수 없는 경우엔, 그 문제의 가장 간단한 경우에서 시작해서 점점 복잡한 경우로 넘어오는 것이 도움이 된다.

직선상에서는 원점에서의 방향(왼쪽, 오른쪽)과 거리만 언급해 주면 되니 이 문제를 고민할 필요가 없어 보인다. 그렇다면 일직선만으로 점의 위치를 전부 표시할 수 없는 공간 중 가장 간단한 공간인 평면을 생각해 보도록 한다. 여기서 필자는 여러분들의 직관에 호소하도록 하겠다. 평면 위에 임의의 직선을 그은 뒤 그 직선을 레일 삼아 장난감 기차가 놓여져 있다고 생각해 보자. 이 기차는 절대로 탈선하지 않는다. 이 기차에 벡터의 일종인 을 아무 방향에서나 가해 보도록 하자. 어느 방향에서 힘을 가하면 기차가 안 움직일까? 레일에서 직각인 방향에서 힘을 가하면 기차가 움직이지 않을 것이다. 그리고 레일에 평행하지 않은 방향에서 힘을 가하면, 그 힘의 레일에서 평행한 방향의 성분만큼의 크기의 힘을 레일에서 평행한 방향으로 가한 것과 똑같이 기차가 움직일 것이다. 이를 생각해 보면, 이 장난감 기차에 가한 임의의 힘은 레일의 방향으로 작용하는 힘과 레일에 수직한 방향으로 작용하는 힘 두 가지로 분해해서 생각해 볼 수 있을 것 같다.

이를 일반화하면, 임의의 벡터는 일정한 방향으로 향하는 성분과 그 방향에 수직한 방향으로 작용하는 성분으로 분해해서 생각하면 좋다는 생각이 든다. 물론 이는 벡터를 분해하는 방법 중 극히 일부일 뿐이지만, 위의 장난감 기차의 예시를 볼 때, 한 벡터를 임의의 방향과, 그에 수직한 방향으로 분해하는 것이 일반적인 경우에선 가장 직관적임을 알 수 있을 것이다. 그렇다면, 서로 직교하는 두 좌표축을 설정하면 한 평면 안의 모든 점을 손쉽게 표기할 수 있다는 말이 된다. 이 두 좌표축은 첫번째 좌표축의 +방향과 두 번째 좌표축의 +방향이 반시계 방향을 이루도록 배치하는 것이 관례이다.

3차원 공간에서는, 이저느이 두 좌표축 모두에 직교하는 3번째 좌표축을 원점[1]을 관통하도록 설정해 주면 된다. 이 3번째 좌표축은, 첫번째 좌표축의 +방향과 두번째 좌표축의 +방향을 순서대로 지나도록 오른손을 말아쥐었을 때 엄지가 향하는 방향으로 잡는 것이 관례이다.

이렇게 우리는 공간을 '좌표계'로 나타내는 방법을 배웠다. 그리고 이 체계에서는 벡터를 아주 편리하게 나타낼 수 있다. 임의의 점으로 향하는 벡터를 각각의 좌표축에 평행하게 진행하는 성분들로 분해한 뒤, 그 각각의 성분들이 원점에서 어떠한 방향으로 떨어져 있는지만 언급하면 되는 것이다. 1차원 공간상의 벡터는 스칼라와 동치임을 앞에서 언급했으므로 우리는 벡터를 스칼라들의 나열로 나타낼 수 있게 된 것이다.

벡터를 이렇게 표기하고 나면 벡터간의 덧뺄셈 A±B는, A(a1, a2, a3), B(b1, b2, b3)이라고 했을 때 A±B(a1 ± b1, a2 ± b2, a3 ± b3) 이라는 스칼라의 덧뺄셈으로 환원될 수 있다는 것은, 여러분들이 직접 생각해 보면 알 수 있을 것이다.

C++ 벡터[편집 | 원본 편집]

배열에 항목 추가와, 삭제, 항목 개수 알기 등의 여러 가지 기능을 추가한 스마트한 배열.

std:vector<타입> (변수이름)[항목 개수]or(항목 개수, 지정할 )or{요소,···}

이렇게 선언한다. 개수와 지정할 값은 선택 사용으로 생략 가능하다.
(변수이름).push_back(값)으로 항목 추가 가능하며,(변수이름).size()로 항목 개수를 알 수 있다. (변수이름).insert(위치 번호,값)으로 위치 번호에서 값을 삽입할 수 있다. 예를 들면 a{3,6,7}에 a.insert(1,4)를 하면, {3,4,6,7} 이렇게 된다. v.erase(vec.begin()+(항목 번호))로 항목 삭제도 가능.

각주

  1. 좌표축이 여럿이 존재할 경우에는 이들을 모두 한 점에서 만나게 하고 그들의 교점을 원점으로 잡는 것이 합리적임은 굳이 설명할 필요가 없을 것이다.