E,AHRSS

벡터

last modified: 2015-11-12 14:44:29 Contributors

Contents

1. 수학물리학에 등장하는 개념
1.1. 정의
1.2. 연산
1.3. 대중매체에서의 등장
2. 벡터 그래픽
3. STL의 표준 컨테이너인 std::vector
4. 소닉 더 헤지혹 시리즈의 등장 캐릭터
5. 유전자 재조합 기술에서 유전자를 운반하는 역할을 하는 DNA 분자
6. 총몽의 등장인물
7. TDI사에서 개발한 기관단총
8. 스타 글라디에이터의 등장 캐릭터
9. 유희왕 ZEXAL의 등장인물
10. 미니어처 게임 워머신진영 사이리스 집합이 운용하는 전투용 로봇

1.1. 정의

기초적인 의미에서 벡터는 도형이 아니라 방향과 크기로 결정되는 으로 정의한다. 물론 이것조차도 수학적으로 엄밀한 정의는 아니다. '방향'과 '크기'로 정의하는 것은 '물리학'적인 의미에 가깝다. 여기서 벡터라 함은, 공간이란 벡터공간 내부에 정의된 벡터, 즉 기하학적인 벡터. 일반적으로 표기 기호로는 볼드체를 사용하여 $ \mathbf{a} $ 로 많이 쓴다. 화살표를 사용하여 $ \vec{a} $ 라 쓰기도 하는데, 고급 이론으로 갈수록 이런 기호를 보기 힘들다.[1] 선형대수학하면서 이런 기호 쓰면 존내 까인다

수학에서는 그저 '벡터 공간'(Vector space)[2]의 원소가 바로 벡터다. 참고로, 벡터 공간의 종류가 엄청나게 다양하기 때문에 물리적 직관을 함부로 적용하기가 힘들다. 함수들로 이루어진 벡터공간도 존재하고,[3] 벡터공간으로 이루어진 벡터 공간도 존재한다. 즉, 이런경우 함수가 곧 벡터가 되고 벡터공간이 곧 벡터가 된다. 그냥 내가 벡터라고 부르면 벡터가 되는 것이다. 물리학은 그나마 현실세계의 끈을 부여잡고 있기때문에 어느정도 직관이 통하지만, 그런게 없는 수학에서는 상식이란게 전혀 통하지 않는다… 확장 개념으로 텐서가 존재한다.

벡터는 위에 정의하였으므로 벡터공간의 수학적인 정의를 써보면,


체(field)[4] F와 집합 V에 대하여 다음이 성립할 때 V를 F 위의 벡터 공간이라고 한다. [5]

⑴ V 위에 +가 정의되어 있고 (u,v∈V ⇒ u+v∈V), (V,+)는 가환(아벨군)이다. 즉,

① V의 임의의 원소 u,v,w에 대하여 (uv)+wu+(vw)
② V에는 특정한 원소 0이 존재하여 모든 v∈V에 대하여 v00vv
③ V의 임의의 원소 v에 대하여 다음과 같은 -v가 V 안에 존재한다. v+(-v)=(-v)+v0
④ V의 임의의 원소 u,v에 대하여 uvvu

⑵ 임의의 체 F에 대하여 함수 φ:F×V → V, φ((λ,v))=v가 존재하고 임의의 u, v, λ, μ에 대해 다음이 성립한다.

⑤ λ·(uv)=λ·u+λ·v
⑥ (λ+μ)·v=λ·v+μ·v
⑦ (λ·μ)·v=λ·(μ·v)
⑧ 1·vv

벡터공간 V의 원소를 벡터(vector)라고 하는데 특히 ②의 0을 영벡터(zero vector)라고 한다.
???뭐시여 시방
문과는 그저 흠좀무일뿐

다시 말해 어떤 상수들의 집합과 집합(벡터 공간으로 정의할)이 있는데 어떤 상수들 간에 덧셈과 곱셈이 잘 정의되고, 이들에 대해 결합법칙과 교환법칙이 성립하고, 항등원과 역원이 있으며,(다만 0에 대한 역원은 제외) 집합 내에서 덧셈이 잘 정의되고, 이에 대해 결합법칙과 교환법칙이 성립하고, 항등원과 역원이 있으며, 상수들과의 곱셈이 잘 정의 되고, 이에 대해 분배법칙과 결합법칙이 성립하면 모조리 벡터 공간이 된다. 더 쉽게 줄이면, 집합인데, 수 집합은 아니고, 수집합과 관계는 잘 정의되어 있는 집합. 그 집합의 원소가 벡터다.

1.2. 연산

벡터에는 다양한 곱셈이 존재한다. 각 연산 방식은 다음과 같으며 편의상
CodeCogsEqn1_2.gif
[GIF image (Unknown)]
,
CodeCogsEqn2_2.gif
[GIF image (Unknown)]
행렬로 정의한다.

  • 상수배
    일반적인 곱셈. 그냥 각 항에 스칼라를 곱해주면 된다.
    CodeCogsEqn3_3.gif
    [GIF image (Unknown)]


  • 스칼라곱(기호 ·, dot product/inner product/scalar product)
    달리 내적이라고 불리며, 연산결과가 스칼라다. 대응하는 항끼리 곱해서 더해주면 된다.
    CodeCogsEqn4_2.gif
    [GIF image (Unknown)]

    내적공간(Inner product space)에서 쓰이는데 고등학교나 학부에서 배우는 벡터는 (그 편리함을 이유로) 당연스럽게 내적을 정의해주기 때문에 대부분 다루는 벡터 공간에는 내적이 있다고 봐도 무방하다. 한편으로는 벡터공간을 수학적으로 심도 있게 다룰 때 등장하곤 하는 쌍선형식(bilinear form)의 특수한 케이스가 내적이다. 정리하자면, 벡터가 있을 때 내적도 같이 있는 경우가 많지만, 반드시 그래야 하는 것은 아니라는 것이다.

  • 벡터곱(기호 ×, cross product/exterior product/wedge product/vector product)
    달리 외적이라고 불리며, 연산결과가 벡터[6]다. 연산 과정에서 뺄셈이 들어가므로 교환법칙 따윈 성립 안 하며, 굳이 자리를 바꾸고 싶으면 벡터 하나의 부호를 바꿔야 한다.
    $ A \times B = - B \times A = \begin{bmatrix} a_2 b_3 - a_3 b_2 \quad a_3 b_1 - a_1 b_3 \quad a_1 b_2 - a_2 b_1 \\ \end{bmatrix} $

    여담으로, 성분 개수에 구애받지 않는 스칼라곱과는 달리 성분이 3개인 3차원 벡터에서 깔끔하게 계산이 되므로[7] 보통 3차원 벡터에서 많이 쓰인다. 3차원에서 벡터곱을 통해 나온 결과벡터는 곱하기된 벡터 A, B 모두에 수직이다. 이걸 사용하는 가장 대표적인 개념이 역학에서의 토크(회전력)과 전자기학에서의 자기력.[8][9]
    또한 벡터곱의 특성상 동일한 벡터끼리의 연산결과로 영벡터가 나온다.
    $ A \times A = 0 $

  • 텐서곱(기호 ⊗, outer product/kronecker product/tensor product)
    연산결과가 텐서이며, 두 벡터 간의 행렬곱셈이다. 행렬곱셈의 특성상 당연히 이것도 교환법칙을 씹어먹는다. 주의할 점은, 앞쪽 항의 행렬을 시계 방향으로 90도 돌려서 계산해야 한다는 것이다.[10] 물론 텐서 개념이 등장한 뒤에야 다루거나, 텐서의 수학적이고 엄밀한 정의에서 나오거나, 많이 추상화된 대수학에서 쓰이는 개념이다.
    CodeCogsEqn6_2.gif
    [GIF image (Unknown)]


  • (기호 ∇, nabla product), 라플라스(기호 △, Laplace operator/Laplacian)
    벡터의 미분연산이다. 자세한 것은 항목 참조.

자연계 과목을 선택한 고등학생들을 괴롭히는 수학 중 하나지만, 배운 후에는 사기 스킬유용한 개념. 힘들게 풀었던 기하문제들을 단숨에 풀 수 있다. 내적 역시 두 선이 이루는 각을 구할 때 사용하면 너무도 편하다.

특히 (고교 교육 과정 밖이지만) 외적을 배우면 벡터 문제가 아닌 공간도형이나 기하 문제 등에서 유용하게 쓸 수 있다. 예를 들어 이 삼각형의 면적을 구하는 문제는 외적을 계산할 줄 안다면 한 모서리를 기준으로 두 변을 벡터로 만들어 외적을 한 후 크기만 구해주면 끝난다.[11] 이 외에도 한 평면에 존재하는 두 벡터를 던져주고 그 평면의 법선벡터를 빠르게 구하거나 3차원에서 한 점으로부터 직선까지의 거리를 구할 수도 있다.

대학 과정의 수학, 물리학, 공학에서 자주 이용되는 선형대수학이 벡터를 다루는 과목이나, 그 때의 벡터는 기하학적인 것이 아니라 위에서 말했듯이 좀 더 일반화된 것이다. 당장 학부 수준의 물리학이나 미분방정식에서부터 함수를 벡터로 다루는 법을 배우게 된다. 이는 편미분방정식푸리에 해석에서 매우 중요한 역할을 하니 이공계 대학생들이라면 확실히 익혀두자.

대학교 미적분학이나 그 이상의 과정에서는 벡터를 미분하거나 적분하는 일도 많이 있다.

이과생들만의 가장 자주보게되는 용어라고도 한다.

1.3. 대중매체에서의 등장

지구용사 벡터맨과는 아무런 관련이 없다고 알려져 있으나, 실은 위의 뜻을 사용한 것이다. 해당 항목 참조.

어떤 마술의 금서목록이라는 라이트 노벨액셀러레이터(일방통행)는 '자기 몸에 닿는 벡터(방향)를 자유자재로 조종할 수 있다'는 설정이다. 이 때문에 간혹 과학 갤러리 등에 액셀러레이터의 능력에 대해 과학적 해석 같은 걸 질문하는 경우가 있는데, 소설은 소설일 뿐이다. 그리고, "벡터(방향)"이라는 말은 마치 벡터=방향 인 것 같은 착각을 불러일으키는데 그렇지 않다. 위에 있듯이 벡터는 크기와 방향을 '모두' 가진 양이라고 할 수 있기 때문이다.
이에 대해서 벡터의 '크기'는 스칼라이므로, 스칼라들은 그대로 둔 채 벡터만 조종한다면 방향만 바꿀 수밖에 없다고 반론을 제기할 수도 있겠다. 그렇다면 다음을 생각해 보자. '자기 몸에 닿은 어떤 물리량 1'과 '자기 몸에 닿지 않은 어떤 물리량 2'가 있고 두 양이 벡터량일 때, 액셀러레이터는 물리량 1을 변화시키고 물리량 2는 그대로 둘 것이다. 그리고 여기서 엑셀러레이터의 조종은 '스칼라인 것'은 유지시킨다고 하자. 그러면 물리량 1과 물리량 2 사이의 각도의 코사인값도 대표적인 스칼라이다.(각각의 크기도 스칼라, 두 벡터의 내적도 스칼라, 따라서 그 비율인 코사인값도 스칼라) 그러면 물리량 1과 물리량 2의 각은 유지시켜야 하는가? 만약 그렇다고 하자. 그러면 물리량 1의 크기도 스칼라이므로 물리량 1의 크기도 유지시켰을 것이다. 이런 식이라면, 물리량 1 자체가 변하지 않았다는 결론이 나온다. 따라서 '자유자재로 조종한다'와 '스칼라는 그대로 둔다' 모두를 기존의 수학을 준수하면서 고수하기는 어렵다. 기존의 수학으로 어떻게 이유를 대려고 하지 않는 것이 좋을 듯하다.

2. 벡터 그래픽

Vector graphic. 컴퓨터에서 그림을 표시하는 방식 중 하나. 이름의 유래는 1번 항목.

우리가 흔히 알고 있는 그림을 표시하는 방식은 비트맵이다.
비트맵은 영어 단어가 의미하는 대로(Bitmap) 한 화소 크기의 점에다 색 정보를 담아서 그림을 표시하지만, 벡터는 그림 자체가 가진 정보를 이용해서 그림을 표시한다.
때문에 파일 크기도 작으며 비트맵에서의 고질병인 '계단 현상'이 일어나지 않고 깨끗하며, 확대해도 그림의 질에 큰 차이를 주지 않는다.

단점이라면 여러 정보들을 저장해 두고 있어야만 하기 때문에 연산속도가 비트맵에 비해 상당히 느리며, 비트맵에서 표현이 가능한 복잡한 그림을 소화해 내기에는 무리가 있다는 것. 하지만 지금은 기술이 발전함에 따라 프로그램의 벡터 연산 기술도 많이 좋아져서 이젠 비트맵과 거의 비슷한 정밀도로 그림을 그릴 수 있게 됐다.[12] 거기다 벡터만이 가지고 있는 장점(겹쳐진 선 지우기, 위에서 말한 화질 문제)등으로 인해 오히려 벡터를 선호하는 사람들도 있다. 셀시스의 코믹스튜디오와 레타스가 벡터덕을 많이 봤다.

아케이드 게임시장의 극초기, 1980년대 초반도 안되던 시절, 아타리 등 몇몇 북미 아케이드 게임 제작사들은 이러한 벡터 그래픽을 활용한 게임들을 출시한적이 있었다. 대표적으로 레드 바론이 있다.

어도비 일러스트레이터플래시가 벡터 드로잉을 이용한 대표적인 프로그램. ABA Games의 서클장 쵸 켄타도 이 벡터 드로잉을 사용한 게임을 만들고 있다.

3. STL의 표준 컨테이너인 std::vector

선언문은 다음과 같다.

template > class vector


템플릿 기반이므로 당연히 같은 타입의 변수들을 여러개 넣는 자동 동적 할당 배열 역할을 할 수 있다.
주의 할 점은 STL 컨테이너들은 거의다 복사에 의한 대입이다. 문자열 포인터 따위를 넣어서 std::vector안의 모든 문자열 값이 똑같아지는 미친 실수따위는 하지 말자.

5. 유전자 재조합 기술에서 유전자를 운반하는 역할을 하는 DNA 분자

엘펜리트루시가 쓰는 능력명이 벡터다. 생물학의 벡터에서 따온 듯.

6. 총몽의 등장인물

벡터(총몽) 항목 참조.

7. TDI사에서 개발한 기관단총

TDI Vector 항목 참조.

9. 유희왕 ZEXAL의 등장인물

벡터(유희왕) 항목 참고.

10. 미니어처 게임 워머신진영 사이리스 집합이 운용하는 전투용 로봇

다른 세력들[13]워잭[14]과 유사하나 르텍스[15]가 아닌 터페이스 노드를 사용하고 다리가 더 많다는 차이점이 있다.
----
  • [1] 왜냐하면 이런 기호는 방향이 존재한다는 것을 암시하는데, 방향은 내적 공간에서나 말할수 있기 때문.
  • [2] 벡터에 대해 정의된 각종 연산법칙(벡터 간의 덧셈과 상수배)이 정의되는 공간.
  • [3] 그래도 물리에서 쓰이기는 한다. 양자역학 등에서.
  • [4] 아주 간단히 말해 사칙연산이 상식대로 성립하는 것.
  • [5] a left F-module V 이기 때문에 λ·uu·λ와는 다르다! u·λ와는!!. 예를 들자면 3·v=v·3이 아니라는 이야기
  • [6] 이건 문제가 있는데, 제대로 된 벡터 둘을 외적하면 유사벡터(Pseudovector)가 나온다. 차이점은 유사벡터는 선대칭시키면 무조건 방향이 뒤집힌다.
  • [7] 이 경우 결과값도 3차원 벡터가 나온다.
  • [8] 플레밍의 왼손법칙에서, F, B, I의 방향이 모두 수직인 걸 알 수 있다. 실제로 F의 방향은 B와 I의 외적으로 정의된다.
  • [9] 내적과 외적이라는 이름은 사원수군에서 왔다. 실수부가 0인 두 사원수를 곱해서 실수부와 허수부를 각각 구해 보면, 실수부의 모양은 내적과 거의 비슷하고, 허수부의 모양은 외적과 거의 비슷하다. 이에 대해 내적과 외적이라는 이름이 각각 붙었는데, 그것이 벡터의 경우로도 전파되어 지금까지 내려 온 것. 어째 먼저 발전했던 사원수 자체는 지금 별로 쓰이지 않고 그와 관련된 명칭들만이 의미가 조금 달라진 채 지금 많이 쓰이는 모양이다.
  • [10] 앞쪽 벡터를 90도로 돌리지 않고 계산하는 것은 위에 나온 스칼라곱이다.
  • [11] 물론 이 경우에는 행렬식계산이 익숙하지 않다면 시간이 더 걸릴 수 있다. 차라리 코사인법칙을 이용하거나 이미 만들어져있는 공식을 사용하자.
  • [12] GPU를 이용한 HW 가속을 지원한다.
  • [13] 시그나, 메노스 보호령, 카도르 제국, 크릭스, 사이라의 징벌, 대다수의 용병들.
  • [14] 사이라의 징벌의 경우에는 미르미돈.
  • [15] 워잭의 두뇌에 해당하는 장치.