2010년 7월 19일 월요일

좌표계 기반 벡터(Vector)

[경고] 아래 글을 읽지 않고 "좌표계 기반 벡터"를 보면 바보로 느껴질 수 있습니다.


[벡터와 스칼라(vector and scalar)]

[위치 벡터(position vector)]

[그림 1] 벡터의 구성(출처: wikipedia.org)

[그림 2] 평면을 뚫는 벡터 표현(출처: wikipedia.org)

크기와 방향을 표현하기 위해 사용하는 벡터(vector)는 크기만을 표현하는 스칼라(scalar)와 구별된다. 벡터의 어원은 운반하다를 뜻하는 라틴어 베헤레(vehere)이다. 스칼라의 어원도 계단이나 저울을 뜻하는 라틴어 스칼라(scala)이다. 어원을 보더라도 스칼라는 무언가를 재는 양[크기]을 뜻하고 벡터는 운동과 관계된 움직임[방향성]을 뜻한다. 그러면 벡터에서 방향은 어떻게 표현하는가? [그림 1]은 벡터를 이용한 크기와 방향 표현 방법을 제시한다. 벡터를 표현한 화살표의 길이가 크기를 나타내며 방향을 표시하기 위해 화살표를 사용한다. [그림 2]는 화살을 염두에 두고 평면을 뚫는 벡터를 표현한 기호이다. 화살이 평면에 들어가면, 화살의 꼬리가 보이므로 [그림 2]의 왼편처럼 X로 표기한다. 반대로 화살이 평면을 뚫고 나오면, 화살의 머리가 보이므로 로 표시한다. 3차원 공간에서 벡터를 표현하려면 사원수(四元數, quaternion)를 사용할 수 있지만 매우 복잡하므로 전자파를 포함한 물리학 분야에서는 좌표계 기반 벡터(vector in coordinate system)를 사용한다. 컴퓨터 그래픽스(computer graphics)를 사용하는 일부 사람들은 사원수가 분명 필요하다고 주장한다. 하지만 컴퓨터 그래픽스에 사용하는 수학보다 더욱 어려운 전자파 이론을 연구하는 사람들도 더 이상 사원수를 쓰지 않는다. 1864년맥스웰 33세, 조선 고종 시절에 맥스웰James Clerk Maxwell(1831–1879)이 전자기파 방정식(電磁波方程式, electromagnetic wave equation)을 처음 발표할 때는 사원수로 전자기파 이론을 전개했었다. 하지만 너무 어려웠기 때문에, 1901년기브스 62세, 조선 고종 시절[실제로는 1881년 무렵에 개발] 기브스Josiah Willard Gibbs(1839–1903)의 좌표계 기반 벡터에 대한 교재가 나오면서 서서히 사원수 이론은 사라져갔다. 이런 전환에 쐐기를 박은 물리학자가 그 유명한 헤비사이드Oliver Heaviside(1850–1925)이다[2].
그러면 좌표계 기반 벡터는 어떻게 표현할까? [그림 3]은 벡터를 이용한 위치 표현법을 잘 설명한다.

[그림 3] 좌표계 기반 벡터 표현(출처: wikipedia.org)

좌표계(座標系, coordinate system)를 이용하여 벡터를 표현하려면 [그림 3]과 같이 좌표 공간 상에 있는 $(x, y, z)$에 점을 찍고 원점 $(0, 0, 0)$에서 $(x, y, z)$로 화살표를 그리면 된다. 여기서 좌표계는 좌표(座標, coordinate)를 이용해 위치를 일대일로 대응시키는 체계, 좌표는 위치에 연결되게 숫자를 순서대로 놓은 배열이다. 위치를 표시하기 위해 쓰는 벡터는 위치 벡터(position vector) $\bar P$ = $(x, y, z)$라고 이름 붙인다. 여기서 $x, y, z$는 벡터의 각 방향 성분(component)이다.[더 정확히는 스칼라 성분(scalar component)] 벡터가 공간에 존재한다는 점을 강조해서 공간 벡터(space vector)라고도 부른다.
위치 벡터 혹은 공간 벡터는 [그림 3]처럼 직관적이고 이해하기도 쉽다. 이 점이 사원수를 대신한 좌표계 기반 벡터 표현법의 장점이다. 수학적으로 살펴보면 사원수 기반 벡터를 간략히 표현하면 좌표계 기반 벡터이다. 사원수 표현에 사용되는 $i, j, k$ 허수 상수를 [그림 3]과 같이 단위 벡터(unit vector: 크기가 1인 벡터) $\hat x, \hat y, \hat z$로 표현하면 식 (1)과 같다.

                         (1)

여기서 단위 벡터는 크기가 $1$인 벡터이다. 그러면 사원수와 유사하게 벡터에 대한 연산을 정의할 수 있다.

  • 실수배 혹은 스칼라배

                         (2)

실수배는 벡터의 크기를 바꾸기도 하고 방향을 정반대로 돌리기도 한다. 벡터에 곱하는 벡터가 아닌 단순한 수이기 때문에, 실수배 대신 스칼라배라고 하기도 한다.

  • 덧셈

              (3)

벡터의 덧셈을 써서 위치 벡터를 더 간단한 벡터의 합인 $\bar P$ = $(x, y, z)$ = $x \hat x + y \hat y + z \hat z$로 쓸 수 있다. 이와 같이 실수배와 덧셈으로 벡터를 표현하는 방식은 선형 결합(linear combination)이라 부른다. 다른 측면으로 선형 결합에 쓰인 단순 벡터의 실수배는 그 벡터의 성분이 된다. 예를 들어, $x \hat x + y \hat y + z \hat z$에서 단위 벡터인 $\hat x$의 성분은 그 실수배인 $x$가 된다. 데카르트 좌표계인 경우는 벡터의 성분 $(x, y, z)$와 좌표계의 좌표 $(x, y, z)$가 명목상 동일하지만, 좌표계가 바뀌면 개념이 다른 성분과 좌표가 같을 이유는 없다. 즉, 선형 결합의 실수배인 성분과 위치를 나타내는 숫자의 나열인 좌표는 다른 개념이지만, 데카르트 좌표계에서는 위치 벡터의 개념으로 인해 구분 없이 쓰일 수 있다.

  • 뺄셈

              (4)


곱셈은 정의가 다소 복잡하다. 식 (5)가 나타내는 사원수의 곱셈이 복잡하기 때문에 벡터의 곱셈도 어쩔 수 없이 어렵게 정의한다. 또한 벡터 해석학 초보자는 사원수를 잘 모르기 때문에, 벡터의 곱셈을 제대로 이해하기 어렵다. 다른 말로 하면, 사원수를 공부한 후에 벡터의 곱셈을 보면 더 쉽게 이해할 수도 있다.

                              (5)

사원수의 곱셈 결과는 실수와 $i, j, k$ 허수로 나타나기 때문에 벡터의 곱셈을 두 가지로 정의한다. 바로 내적(內積, inner product)과 외적(外積, outer product)이다. 벡터 곱셈을 공부할 때, 내적은 쉽게 상상이 되지만 외적은 조금 모호하게 다가온다. 이는 외적 개념 자체가 어렵기 때문이다. 수학사를 보더라도 외적은 사원수로부터 그냥 정의된 개념이 아니고, 여러 천재들이 힘겹게 기여한 업적이다. 벡터 외적은 사원수와는 독립적으로 독일 고등학교 교사였던 그라스만Hermann Grassmann(1809–1877)이 1844년그라스만 35세, 조선 헌종 시절에 제안한 탁월한 개념이다[3]. 무명의 그라스만이 만든 외적 개념은 수학자 클리퍼드William Kingdon Clifford(1845–1879)에 의해 1878년클리퍼드 33세, 조선 고종 시절에 재발견되었다. 클리퍼드는 그라스만의 외적을 사원수로 설명해서 둘 사이의 연관 관계를 정확히 확립했다. 이후 기브스 교수가 사원수를 대신할 목적으로 머리 나쁜 예일 대학생을 위해 개발한 쉬운 개념이 좌표계 기반 벡터이다. 더 간단하게 벡터라 할 수도 있다. 이런 쉬운 개념의 발명에는 기브스의 경력도 크게 작용했다. 기브스는 미국 최초의 공학 박사라서 수학적 엄밀성보다는 직관적인 실용성을 더 중요시했다.
사원수 곱셈의 실수부를 고려해서 벡터의 내적을 식 (6)으로 정의한다.

                               (6)

만약 $a_1$ = $a_2$ = $0$이면, 식 (5)의 실수부와 식 (6)은 부호 차이를 제외하고는 동일하다. 사원수 곱셈의 허수부를 고려하면 벡터 외적을 식 (7)처럼 정의한다.

         (7)

행렬식(行列式, determinant)을 사용하면 식 (7)을 좀더 예쁘게 표현할 수 있다.

                               (8)

식 (6)의 정의로 인해 벡터 내적은 아래와 같은 산술 체계를 가진다.

                               (9)

벡터 외적의 산술 체계는 식 (7)을 바탕으로 얻어진다.

                               (10)

벡터 외적의 특성 중에서 흥미로운 부분은 결합 법칙이 성립하지 않는 사실이다. 사원수는 결합 법칙이 성립하나, 사원수 곱셈을 실수부와 허수부로 분해한 후 각각 내적과 외적이라 정의하기 때문에 벡터 외적은 더이상 결합 법칙이 성립하지 않는다. 이 때문에 실제 문제를 풀 때 굉장히 주의해야 한다. 결합 법칙이 성립하지 않는 예는 식 (11)에 제시되어 있다.

              (11)

벡터 내적과 외적은 사원수의 곱셈으로부터 분리되어 정의되어서, 사원수에서 잘 정의되는 나눗셈 연산이 벡터에는 존재하지 않는다.

[벡터의 곱셈(product of vectors)]

[그림 4]를 통해 벡터 내적의 기하학적 의미를 살펴본다. 쉽게 말해 내적은 한 벡터의 크기를 다른 벡터를 기준으로 재는 벡터의 정사영(正射影, projection)이다. 정사영은 이름처럼 한 도형에 직사광선을 비추어 생기는 그림자를 재는 연산이다.

[그림 4] 벡터 내적의 기하학적 의미(출처: wikipedia.org)

[그림 4]를 보면 두 벡터의 길이를 서로 곱한 값이 내적이다. 다만, 곱할 때 방향을 고려해서 서로 일직선을 이루는 방향의 길이를 곱한다. 식 (6)의 결과를 고려하면 벡터 내적은 임의 차원으로 확장될 수 있다. 일반적인 $n$차원 공간에서 벡터 내적의 기하학적 의미를 유도한다.

                   (12)

여기서 $n$차원 공간을 구성하는 공간 벡터(space vector)는 벡터의 성분이 모두 실수이므로 실수 벡터(real vector)가 된다. 식 (12)와 같은 내적이 정의되었으므로 벡터의 크기는 식 (13)으로 정의할 수 있다.

                              (13)

다음 단계로 식 (4)와 (13)으로부터 벡터 뺄셈의 크기도 고려한다.

                              (14)

식 (14)는 $n$차원 공간에 생기는 벡터의 크기가 된다. 이때 벡터 뺄셈을 한 결과는 기하학적으로 식 (4) 혹은 [그림 4]와 같은 삼각형을 이루므로, 다음과 같은 코사인 제2법칙(law of cosines)을 적용한다.

                               (15)

식 (14)와 (15)를 비교하고 식 (1.3)에 증명한 코쉬–슈바르츠 부등식(Cauchy–Schwarz inequality)을 사용하면, $n$차원 공간에서도 사용할 수 있는 유명한 벡터 내적 공식을 유도할 수 있다.

                               (16)

여기서 $\theta$는 $n$차원에 존재하는 두 벡터 사이의 끼인각(included angle)이다. 식 (16)에서 벡터 $\bar a$와 $\bar b$가 기하학적으로 서로 직교하면 $\theta$ = $90^\circ$가 되므로 벡터 내적은 항상 0이 된다. 이 개념을 추상화시켜서 $\bar a \cdot \bar b$ = $0$이면, 벡터 $\bar a$와 $\bar b$는 서로 직교(orthogonality)한다고 정의한다.
벡터 내적에도 주의할 부분이 하나 있다. 식 (16)의 우변은 항상 실수이므로 벡터의 성분(component)이 실수가 아닌 복소수(complex number)이면, 식 (16)과 [그림 4]의 기하학적 의미는 더이상 성립하지 않는다. 즉, 벡터의 성분이 복소수인 복소 벡터(complex vector)라면, 식 (16)이 아닌 식 (12)로만 벡터 내적을 정의해야 한다. 물론 복소수로 확장하려면 다음처럼 켤레 복소수(complex conjugate)를 이용해 정의해야 한다: $\bar a \cdot \bar b^*$ = $\sum_{k=1}^{n} a_k b_k^*$. 내적 연산이 일반화됨을 강조할 때는 $\bar a \cdot \bar b^*$ 대신 보통 $\langle \bar a, \bar b \rangle$를 사용한다.
[그림 5] 벡터 외적의 기하학적 의미(출처: wikipedia.org)
[그림 6] 벡터 외적의 단위 벡터 결정 방법: 오른손 규칙(출처: wikipedia.org)

[그림 5]는 벡터 외적의 기하학적 의미를 보여준다. 즉 벡터 외적은 벡터 $\bar a, \bar b$가 이루는 평행사변형의 면적[스칼라]과 외적의 단위 벡터 방향[벡터]을 곱해서 표현한다. 수학에서는 기준 방향을 [그림 6]과 같은 오른손 규칙(right-hand rule: 엄지 손가락을 회전축으로 하고 나머지 손가락이 돌아가는 방향으로 회전을 정의)으로 정하므로, 벡터 외적의 방향도 [그림 6]처럼 선택한다. 식 (8)이 평행사변형의 면적을 나타낸다는 사실은 쉽게 이해되지는 않는다. 벡터 외적에 대한 이해의 폭을 넓히기 위해 다음처럼 증명한다.

                 (17)

여기서 $\bar a$ = $(x_1, y_1, z_1)$, $\bar b$ = $(x_2, y_2, z_2)$이다. 벡터 외적의 방향을 오른손 규칙으로 정한 규칙은 $x, y, z$ 좌표축을 식 (18)로 정한 약속과 동일하다.

                              (18)

또한 식 (19)에 의해 벡터 $\bar a, \bar b$와 벡터 외적 $\bar a \times \bar b$의 내적이 0이므로, 식 (16)의 결과에 의해 이 벡터는 [그림 5]와 같이 서로 수직이다.

                              (19)

식 (19)의 증명은 식 (8)에 벡터 $\bar a$와 벡터 $\bar b$를 대입하면 가능하다. 벡터 $\bar a$와 $\bar b$가 평행하지 않다면, $\bar a$와 $\bar b$는 [그림 8]과 같은 어떤 평면 상에 존재한다. 식 (19)에 의해 이 평면에 존재하는 어떤 벡터와도 $\bar a \times \bar b$는 수직이므로, $\bar a \times \bar b$는 이 평면의 법선 벡터(法線, normal vector) $\hat n$이 된다. 따라서 벡터 외적은 식 (20)으로 표현할 수 있다.

                              (20)

식 (8)과 (10)에 정의한 벡터 외적은 일반적으로 결합 법칙이 성립하지 않는다. 하지만 결합 법칙이 성립하는 경우도 있지 않을까? 식 (21)에 있는 벡터 삼중적(三重積, vector triple product)을 이용하여 벡터 외적의 결합 법칙 성립 조건을 찾는다.

                               (21)

식 (21)의 증명은 식 (8)의 벡터 외적 정의에 벡터 $\bar A, \bar B, \bar C$를 대입하면 된다. 혹은 벡터 외적($\times$)의 특성을 이용하면 식 (21)의 의미를 정성적으로 이해할 수 있다[1]. 예를 들면 어떤 벡터 $\bar A$에 대한 외적값에는 $\bar A$가 포함되면 안된다는 성질을 이용한다.[∵ 벡터 외적은 $\bar A$에 대해 수직한 성분만 뽑기 때문에] 그러면 식 (21)의 결과값에는 $\bar A$, $\bar B \times \bar C$가 아닌 성분이 포함되어야 한다. $\bar B \times \bar C$가 아닌 성분은 $\bar B$, $\bar C$이므로 식 (21)의 결과는 선형 결합인 $b \bar B + c \bar C$로 표현될 수 있다. 식 (21)의 좌변에 벡터 $\bar A$의 내적을 취하면 0이 되어야 하므로 $0$ = $b \bar A \cdot \bar B + c \bar A \cdot \bar C$이 된다. 이 결과를 보면 $b, c$가 가져야 하는 비율은 식 (21)의 우변과 같음을 알 수 있다.[하지만 이는 정성적인 설명이므로 정확한 증명으로는 2%가 부족하다.] 다음으로 결합 법칙이 성립하려면 식 (21)과 (22)가 서로 같아야 한다.

                              (22)

식 (21)과 (22)가 같다고 두면 식 (23)이 반드시 성립해야 한다.

                              (23)

식 (23)이 성립하는 경우는 두 가지이다. 벡터 내적이 0인 경우와 아닌 경우이다. 식 (23)의 벡터 내적이 0이면 벡터 $\bar A$와 $\bar C$가 벡터 $\bar B$에 수직하면 된다. 벡터 내적이 0이 아니라면 벡터 $\bar A$와 벡터 $\bar C$의 방향이 일직선이면 된다. 식 (21)에 있는 벡터 삼중적과 유사한 식은 스칼라 삼중적(scalar triple product)이다.

                               (24)

스칼라 삼중적은 직교 좌표계(orthogonal coordinate system)와 3차원의 부피의 관계로 간편하게 상상할 수 있다. 부피는 3가지 중에서 어느 축을 선택해도 같은 결과가 나오므로, 식 (24)처럼 $\bar A, \bar B, \bar C$를 기준으로 스칼라 삼중적을 다양하게 만든다.


[그림 7] 벡터 $\bar a, \bar b, \bar c$가 만든 평행육면체(출처: wikipedia.org)

[그림 7]은 벡터 $\bar a, \bar b, \bar c$가 만든 평행육면체(平行六面體, parallelepiped)를 보여준다. 이 평행육면체가 만드는 부피가 식 (24)가 표현하는 기하학적 의미이다. 식 (24)가 평행육면체의 부피라는 결과는 행렬식(行列式, determinant) 관점에서 식 (6)과 (8)을 결합하면 얻을 수 있다.

                               (25)

여기서 벡터 $\bar a$ = $(x_1, y_1, z_1)$, 벡터 $\bar b$ = $(x_2, y_2, z_2)$, 벡터 $\bar c$ = $(x_3, y_3, z_3)$. 그런데 식 (25)가 부피를 나타내는 식임은 한눈에 보이지 않는다. 개념의 이해를 위해 부피는 아래 면적 $\times$ 높이임을 상기한다. 벡터 $\bar b$와 $\bar c$가 만드는 외적은 식 (20)과 [그림 7]에 의해 아래 면적을 형성한다. 아래 면적과 수직인 방향에 대해 식 (16)과 [그림 4]에 정의한 내적을 적용하므로, 아래 면적에 높이를 곱하는 식 (25)는 평행육면체의 부피가 된다. 혹은 $n \times n$ 행렬(行列, matrix)의 관점에서 보면 행렬식의 기하학적 의는 $n$차원의 방향을 가진 부피이다. 식 (25)는 $3 \times 3$ 행렬의 행렬식이므로 3차원의 부피를 나타내게 되어 당연히 평행육면체의 부피가 된다. 식 (8)과 같은 $2 \times 2$ 행렬인 경우, 행렬식은 2차원 부피인 면적을 표현한다.
[그림 8] 3차원 공간 상의 평면(출처: wikipedia.org)

벡터 $\bar a$와 $\bar b$의 선형 결합 벡터인 $k_1 \bar a + k_2 \bar b$는 [그림 8]처럼 원점[$\bar p_0$ = $0$], 벡터 $\bar a$[= $\bar p_1 - \bar p_0$]와 벡터 $\bar b$[= $\bar p_2 - \bar p_0$]가 만드는 평면(平面, plane)에 있다고 가정한다. 이 가정이 항상 맞는가? 평면의 방정식은 식 (26)으로 표현할 수 있다.

                              (26)

여기서 벡터 $\bar p_0$ = $(0, 0, 0)$이며 벡터 $\bar r$ = $(x, y, z)$는 평면 상에 있는 모든 점을 표현한다. 식 (26)에서 벡터 $\bar r$ 대신에 벡터 $k_1 \bar a + k_2 \bar b$를 대입하면 식 (19)에 의해 식 (26)을 만족하므로 선형 결합 벡터는 항상 동일 평면에 있음을 알 수 있다.

                  (27)

추가적으로 벡터를 이용하면 3차원 공간에 있는 직선의 방정식도 쉽게 정의할 수 있다. 벡터 개념 자체가 직선이므로, 두 벡터의 차이 $\bar r - \bar r_0$도 하나의 직선을 이룬다. 벡터의 차이가 만드는 직선의 궤적이 알려진 어떤 벡터 $\bar v$에 평행하다는 조건을 이용해 다음과 같은 직선의 방정식을 만든다.

                  (28)

여기서 $\bar r_0$ = $(x_0, y_0, z_0)$, $\bar r$ = $(x, y, z)$, $\bar v$ = $(a, b, c)$, $k$는 임의의 스칼라이다.
항등식(恒等式, identity)에 대한 내적과 외적 특성을 알아본다. 임의의 벡터 $\bar A$와 어떤 벡터 $\bar B$의 내적이 항상 $0$이면, 벡터 $\bar B$는 반드시 영 벡터(zero vector)가 되어야 한다.

                               (29)

여기서 영 벡터는 성분이 모두 $0$인 벡터이다. 식 (29)는 어떻게 증명할까? 식 (16)을 이용하면 쉽게 증명이 된다. 벡터 $\bar A$가 임의이면 벡터 $\bar A$의 크기와 벡터 $\bar B$와의 끼인각인 $\theta$가 고정이 아니고 가변이다. 그래서 전체 내적값이 $0$이기 위해서는 벡터 $\bar B$의 크기가 $0$이어야 한다. 즉 벡터 $\bar B$가 영 벡터가 되어야 한다. 벡터 내적은 임의의 $n$차원에 대해서도 정의할 수 있으므로, 식 (30)과 같은 일반적인 항등식 조건도 식 (16)을 이용해서 쉽게 유도할 수 있다.

               (30)

벡터 외적에 대해서도 식 (31)이 성립한다.

                               (31)

식 (31) 증명에는 식 (20)을 이용한다. 최종 결과가 $0$이므로, 벡터 $\bar B$의 크기도 반드시 $0$이어야 한다.
벡터의 내적이나 외적처럼 많이 쓰이지는 않지만, 벡터의 또 다른 곱으로 아다마르 곱(Hadamard product)이 있다. 아다마르 곱 $\odot$은 두 벡터를 성분별로 곱해서 최종 성분을 만들며, 이 곱의 결과는 피연산자와 동일한 차원을 가진 벡터가 된다.

                              (32)

아다마르 곱은 벡터 뿐만 아니라 행렬(matrix)에도 쓰인다. 아다마르 곱과 비슷한 아다마르 나눗셈(Hadamard division) $\oslash$도 정의 가능하다.

                              (33)

아다마르 곱과 나눗셈은 매트랩(MATLAB)과 같이 행렬 연산을 지원하는 프로그램에는 많이 쓰인다. 예를 들어, 매트랩에서 연산 .*와 ./는 각각 아다마르 곱과 나눗셈을 의미한다.


   1. 다양한 응용(various applications)   

좌표계 기반 벡터 개념은 단순하지만 상당히 강력해서 다양한 수학 정리를 증명할 때 유용하게 쓰인다.

[그림 1.1] 점과 직선 사이의 거리(출처: wikipedia.org)

[점과 직선 사이의 거리(distance from a point to a line)]
점 $(x_0, y_0)$에서 직선 $ax+by+c = 0$ 사이의 거리 $d$는 다음과 같다.

                              (1.1)

여기서 점과 직선 사이의 거리는 최단 거리 혹은 수직인 거리로 정한다.

[증명]
직선 위의 점 $(x_1, y_1)$은 $ax_1 + b y_1 + c$ = $0$을 만족한다. 상수 $c$를 $(x_1, y_1)$과의 관계로 바꾼 후, 주어진 직선의 방정식을 변형해서 $a(x-x_1) + b(y-y_1)$ = $0$도 얻는다. 벡터 내적 관점으로 이 결과를 보면, 직선을 나타내는 벡터 $\bar v$ = $(x-x_1, y-y_1)$은 $\bar n$ = $(a, b)$와 수직한다는 뜻이다. 따라서, $\bar n$은 직선에 대한 법선 벡터가 된다. [그림 1.1]처럼 점과 직선 사이의 거리는 수직인 거리이므로, 식 (6)과 (16)에 따라 벡터 내적을 계산해서 식 (1.1)을 유도한다.

                              (1.2)

여기서 $\bar u$는 $(x_1, y_1)$에서 $(x_0, y_0)$로 가는 벡터이다.
______________________________

점과 직선 사이의 거리는 헤세 표준형(Hesse normal form)으로 더 쉽게 증명 가능하다.

[코쉬–슈바르츠 부등식(Cauchy–Schwarz inequality)]

             (1.3)

여기서 등호는 $a_1/b_1$ = $a_2/b_2$ = $\cdots$ = $a_n /b_n$인 경우에 성립한다.

[증명]
식 (16)과 같은 3차원 공간의 벡터 내적 공식에서 유추하여 내적과 벡터의 크기 관계를 구한다.

                              (1.4)

여기서 산술–기하 평균 부등식(inequality of arithmetic and geometric means)에 의해 $(a_k/|\bar a|)^2 + (b_k/|\bar b|)^2$ $\ge$ $2 |a_k b_k|/(|\bar a| |\bar b|)$이 성립한다. 따라서 항상 $(\bar a \cdot \bar b)^2$ $\le$ $|\bar a|^2 |\bar b|^2$이므로, 식 (1.3)이 유도된다.
______________________________

코쉬–슈바르츠 부등식에 의해 식 (16)은 임의의 $n$차원 공간에서도 성립하는 일반식이 되고 벡터 내적은 $n$차원 공간으로 일반화되어 확장된다. 이 부등식은 푸리에 변환(Fourier transform)에서도 성립한다. 코쉬–슈바르츠 부등식에 기여한 수학자 슈바르츠Hermann Schwarz(1843–1921)는 슈바르츠–크리스토펠 사상(Schwarz–Christoffel mapping)으로도 유명하다.

[그림 1.2] 데카르트 좌표계의 방향 코사인 각도 $\alpha, \beta, \gamma$(출처: wikipedia.org)

[방향 코사인의 제곱 합]
모든 좌표축에 대한 방향 코사인(direction cosine)의 제곱 합은 1이다.

                              (1.5)

여기서 각도 $\alpha, \beta, \gamma$는 [그림 1.2]에 정의, $\cos \alpha, \cos \beta, \cos \gamma$는 각각 $x, y, z$축의 방향 코사인이다.

[증명]
방향 코사인(direction cosine)은 각 좌표축에 대한 정사영 비율이므로, $\cos \alpha, \cos \beta, \cos \gamma$를 벡터 길이와 좌표 성분으로 정의한다.

                              (1.6)

여기서 $\bar v$ = $(x, y, z)$이다. 그러면 식 (1.6)에 의해 모든 방향 코사인의 제곱 합은 1이 된다.
______________________________

방향 코사인은 $l$ = $\cos \alpha$, $m$ = $\cos \beta$, $n$ = $\cos \gamma$, $l^2 + m^2 + n^2$ = $1$로 두기도 한다. 식 (1.5)는 임의의 $n$차원 좌표계로 확장되더라도 잘 성립한다.

                              (1.7)

                              (1.8)

여기서 $\bar v$ = $(x_1, x_2, \cdots, x_k, \cdots, x_n)$이다.


[참고문헌]
[1] 신상진, 2. Vector analysis 2, 수리물리학, HanyangUniversity.
[2] O. Heaviside, "Vectors versus quaternions," Nature, vol. 47, pp. 533–534, April 1893.
[3] 이희정, 신경희, "그라스만의 수학 인식과 벡터공간의 일반화", 한국수학사학회지, 제26권, 제4호, pp. 245–257, 2013년 8월.

댓글 46개 :

  1. 블로그에서 많이 배우고 갑니다

    본문 중에 컴퓨터 그래픽스에서 사원수를 고집하는 것에 대해서 나오는데.. 그래픽 쪽에서는 사원수를 쓰는게 회전 보간이 편리해서 그렇다고 들은 거 같습니다. ^^

    답글삭제
  2. 그럴 수는 있다고 봅니다. 하지만, 회전 보간만을 위해서 복잡한 사원수를 쓸 필요가 있을까요! 사원수 연산은 동일한 행렬 연산으로 어렵지 않게 변환할 수 있습니다.

    답글삭제
  3. 5배정도 빠르다고 알고 있습니다.

    답글삭제
  4. 제 의도는 사원수와 좌표계 벡터 회전은 수학적으로 등가라는 것입니다. 기계적으로 적용하면 대수기반의 사원수가 회전행렬 기반의 벡터보다 빠를 것입니다. 하지만 코드를 짤 때 기계적으로 회전행렬을 적용할 리는 없고 메모리와 속도에 대해 최적화(필요없는 메모리 할당하지 않기, 행렬을 대수적으로 풀어서 쓰기 등)를 하기 때문에 큰 차이는 없을 것입니다.

    오래된 논쟁이기는 하지만 아래 자료도 참고해보세요.
    Do We Really Need Quaternions?
    http://www.gamedev.net/page/resources/_/technical/math-and-physics/do-we-really-need-quaternions-r1199

    답글삭제
  5. 대충 읽어보고, 수학적인 증명에 너무 치충하지 않나 하엿지만, 세세히 읽어보니, 모두다 의미가 있네요. 오히려 저같이 이해를 해야 암기가 되는 사람에게는 정말 유요한 정보들이네요. ^^

    Scalar와 vector Product에서 꼭 2가지를 알고 싶었는데,
    1. 물리적의미
    2. SIN COS 인자가 어떻게 해서 들어가게 됬는지.
    모두 설명이 되어 있네요.

    간혹 이해가 안가는 부분은 여러번 읽어보고, 생각하니 대부분 이해가 가기 시작하네요.
    볼때마다, 아! 라는 감탄사와 희열을 느끼게 해주시네요.
    환경을 탓하지 않게 해주시네요.
    열정만 있으면, 공부 할 수 있게 해주시니, 어떻게 감사의 마음을 전해야 할지 모르겠습니다.
    언젠가 기회가 된다면, 꼭 저렴한 술에 저렴한 안주를 대접을 하고 싶습니다.

    다시 한번 감사드립니다.

    익명: 곰유 올림

    답글삭제
    답글
    1. 곰유님도 더 열심히 공부하셔서 좋은 글들 많이 남겨주세요. ^^

      삭제
  6. 구배 발산 회전의 물리적 의미는 아직 모르겠으나,
    여기 좌표계 기반 vector을 1주 정도 공부를 하니,
    3개의 식이 다르게 보이기 시작하네요.
    (예전에는 다 똑같이 보였습니다. ㅋㅋㅋ T.T)
    구배(단위vector화)
    발산(scalar product)
    회전(vector product)

    감사드립니다.

    답글삭제
    답글
    1. 익명님, 지금처럼 계속 고민하고 생각하세요.
      어차피 벡터라는 것은 물리학적 필요 때문에 나온 것이라 구배, 발산, 회전도 물리적 그림을 그리면서 공부해야 좋습니다. ^^

      삭제
  7. 위 대부분의 내용은 기하학적 의미로 보면 잘 이해가 되었는데요.
    ( 잘 이라는 의미가 좀 거시기 한게 몇일씩 걸렸습니다. )
    스칼라 3중적은 주말내내 기본적인 삼각함수 COS(pi/2- alpha) = SIN (alpha)이걸 몰라서 해맸습니다. 높이 h가 되는 조건을 역으로 해보니 쉽게 풀리더라구요.
    ㅋㅋ 이제 부피라는 것을 이해를 했는데요.

    T.T
    그런데 식21 식22 벡터삼중적에 관한 내용은 행렬을 좀 알아야 할 수 있는내용인가요?
    벡터 항등식에서는 좌표계에서 좌우를 비교를 하면, 쉽게 증명이 된다고 하시는데.
    벡터 삼중적을 기학학으로 설명해 놓은 자료는 없으신가요?
    좀 찾아보긴 하였지만, 잘 모르는 행렬로 모두 설명이 되어 있더라구요.

    기초적이 질문은 너무 수식 자체를 몰라서 드리는 질문인데요.
    식 21로 예를 들면,
    B¯(A¯.C¯) 이거 자체가 먼지 몰라서인데요.
    A와 C의 scalar produtct후에 이는 scalar 양이 되니, 이를 상수 취급하여,
    B vector에 곱한다는 의미가 되는건가요?

    익명: 곰유올림

    답글삭제
    답글
    1. 저도 벡터 삼중적의 기하학적 의미를 찾고 있습니다. 좋은 결과 있으면 소개해주세요.
      - 식 (21)만 보면 벡터 삼중적 결과는 B와 C가 이루는 평면에 있습니다.

      상대적으로 스칼라 삼중적은 쉽습니다. 부피 정의식이니까요.

      $\bar B (\bar A \cdot \bar C)$는 말씀하신 설명이 맞습니다. 내적하면 스칼라가 되어 상수 취급하면 됩니다.

      삭제
    2. 감사드립니다.

      삭제
  8. 안녕하세요?
    윗분이 말씀하신 벡터 삼중적의 기하학적 의미인지는 잘 모르겠습니다만 직관적으로 잘 설명 되어있는 곳이 있더라고요
    사실 전파거북이님이 예전에 올리셨던 한양대학교 Open Course Ware가 저에게는 많은 도움이 되고 있습니다. 거기 수리물리학 1에 2. Vector Analysis 2에 들어가셔서 1:00:00쯤에 보시면 벡터삼중적에서 A×(B×C)=γ(B(A·C)-C(B·A))가 되는 이유까지 쉽게 설명이 되어 있더라고요.
    도움이 되셨으면 합니다.

    답글삭제
    답글
    1. 주소는
      http://www.youtube.com/watch?v=6A9bBWCCuoA&list=PLF2319B301C23A64D 입니다

      삭제
    2. 신상진 교수님이 깔끔하게 설명을 잘 하시네요. 공유 감사합니다, 정대영님. ^^

      삭제
    3. 어우 감사합니다.
      ----
      곰유

      삭제
  9. 컴파일러가 내부적인 최적화를 수행하지 못할 경우도 존재합니다. 예로 dynamic casting이 일어나는 코드들은 최적화 되지 않을 가능성이 높기 때문입니다. 왜냐하면 run time에 메모리에 할당될 주소가 결정되기 때문이죠. 단 모든 할당값이 static casting이 가능한 구조라면 컴파일러는 완벽한 최적화를 할 수 있습니다. 지금도 runtime 할당은 Inter-Procedure Data Flow Analysis에서 이슈가되는 부분들입니다. Profiler라는 툴이 나온 이유이기도 하구요

    답글삭제
  10. 벡터 내적과 외적을 왜 식 (6) (7)과 같이 정의했을까요? 기하학적 의미로 부터 정의되었나요?

    답글삭제
    답글
    1. 아래 사원수 개념부터 보세요. 넓게 보면 기하학적 정의이기 하지만, 정확히는 사원수 때문에 식 (6), (7)처럼 기술합니다.

      http://ghebook.blogspot.com/2010/07/quarternion.html

      삭제
  11. 안녕하세요. 항상 블로그 글에 많은 신세를 지고 있는 공대생입니다. 먼저 제가 이해한 것이 맞다면 간단한 오타가 있는 것 같아 말씀드립니다.
    "식 (16)의 우변은 항상 실수이므로 벡터의 성분(component)이 실수가 아닌 복소수(complex number)이면 식 (16)과 [그림 5]의 기하학적 의미는 더이상 성립하지 않는다." 부분에서 그림 5 를 그림 4로 정정해야할 것 같습니다.

    위에 문장에서 공부하다 명쾌하지 않은 부분이 있어 질문드립니다. 처음 시작은 기하학적 의미가 성립하지 않는다는 것에서부터였습니다. 식 (16)에 의해 너무 결과는 당연하긴 했는데, 복소수 벡터 공간 역시도 결국엔 같은 기하학적 의미가 있을 것 같았는데 성립을 하지 않는다고 하니 잘 와닿지가 않았습니다. 그래서 복소수 벡터공간에서도 성립한다는 식 (12)를 보면서 생각을 해보려했는데요 마찬가지로 식 (12) 역시 복소수 벡터공간에서는 단순 곱이 아닌 conjugate 값과의 곱이 되야하지 않는가하는 생각이 들었습니다. 혹시 이 부분도 수정이 필요한 것은 아닌지요?
    사원수를 공부하고 여기로 넘어왔는데 그렇다면 사원수로부터 정의된 벡터 내적은 a+bi+cj+dk로부터 시작했는데 복소수 값을 가지는 벡터라 하려면 a,b,c,d 값이 복소수여야한다고 생각이 들었고 뭔가 명쾌하지 않고 생각이 꼬이기 시작했습니다.
    복소수 벡터 공간에서의 내적을 위와 같이 생각하는 것이 맞는지요? 앞서 사원수에서의 a,b,c,d는 실수로 실수 벡터 공간에서 정의가 된 것으로 생각하면 되는지 여쭙니다. 일견에는 복소수 벡터 공간 역시도 하나의 공간이므로 기하학적으로 관계가 성립해야할 것 같았는데 안되는 것(식16)이 명확하니 이상합니다.
    음...머리가 정리가 안되어 질문을 하기도 어려운 상황인데 하나씩 문답을 하다보면 정리가 되지 않을까해서 일단 글을 적어보았습니다.

    답글삭제
    답글
    1. 1. 지적 정말 감사합니다, JaeJun님. ^^ 문장을 다시 정리했습니다.

      2. 좌표계 기반 벡터는 기본적으로 기하 특성을 표현하기 위해 실수를 사용합니다. 실수 대신 복소수나 사원수를 쓰려면 거기에 합당한 의미가 있어야 합니다. 예를 들어 전자기장을 복소수 성분을 가진 벡터로 표현하면, 장에 페이저(phasor)를 도입했다는 뜻입니다.

      삭제
  12. 식 (22)가 (21)로 잘못 적혀 있는것 같아요!

    안녕하세요, 지난학기에 공부할 때 어설프게 공학수학 2를 공부하면서 도움을 받았던 기억이 나서 이번학기 전자장을 들으면서 다시 도움을 받으려고 돌아왔습니다. 벡터 항등식을 이해하려다가 어쩌다보니 발산과 회전을 읽고 지금 벡터도 읽으면서 얼마나 공부를 허술하게 했고 기초가 안 다져져 있었나를 깨닫게 되네요. 이번학기도 계속해서 공부하다 갈 것 같습니다. 좋은 글 감사합니다.

    답글삭제
    답글
    1. kaestro님, 오타 지적 정말 감사합니다. ^^

      앞으로도 자주 오시고, 여러 지적도 부탁드립니다.

      삭제
  13. 예일대생이 머리가 나쁘면 나같은 일반인은 대체... ㅜㅜ

    답글삭제
    답글
    1. 당시 자연 과학과 공학은 유럽이 주도했고, 미국은 변방에 가까웠습니다. 하지만 기브스 같은 고독한 천재가 미국의 자존심을 세워줬지요. ^^

      삭제
  14. 정말 감사합니다. 시도하려고 했지만 포기했었던 이해를 다시 제대로 하게 되었습니다..ㅠㅠ

    답글삭제
    답글
    1. Unknown님, 잘 하셨어요. ^^ 포기하는 것보다는 한 걸음이라도 앞으로 가는 게 발전이라 생각해요.

      삭제
  15. 항상 잘 보고있습니다!
    식 (7)에서 (8)로 넘어가는 부분에서, 사원수 부분의 허수부를 전개해보니 식 (8)로 표현할 수 있는 것인지, 아니면 사원수 곱셈을 행렬로 잘 정리해보면 식 (8)을 유도할 수 있는 것인지 궁금합니다.

    답글삭제
    답글
    1. Victor님, 행렬식 개념을 사용했어요. 행렬에 나오는 행렬식 정의를 보시면 됩니다.

      삭제
  16. 식(17)의 두번째 줄을 보면 z_1^2(x_1^2 + y_1^2)가 아닌 z_1^2(x_2^2 + y_2^2) 가 맞는 표현 같습니다! 그리고 앞부분 거듭제곱도 괄호 안으로 들어가야 할 것 같아용!

    전자기학을 다시 노트에 정리하면서 공부하는 중인데 전파거북이님의 글이 항상 큰 도움이 됩니다~ 재미있어서 시간가는줄 모르며 읽기도 하구요~

    답글삭제
    답글
    1. 방문과 지적 모두 감사합니다, Victor님. ^^ 심각하게 틀려있었네요. 다 고쳤습니다.

      삭제
  17. 안녕하세요, 파동방정식 때문에 보다가 앞부분부터 보게 되었는데요, 앞부분 부터 차근차근 증명해 보니 하나씩 이해가 가기 시작합니다. 중간중간에 스킵된 증명 들을 고민하느라 골치가 아프지만, 해결해가는 묘미를 느끼며 나아가고 있습니다. 어떻게 자료를 가지고 이렇게 정리하실 수 있는지, 이해하기 바쁜 저는 존경스런 마음입니다.

    질문 사항은 19번 식이 나오고, 따라서 20번 식이 나온다고 했는데, 과정을 도무지 알 수가 없어서 문의 드립니다.
    17번식에 의해 제곱성분이 나오는건 보았는데 그다음에 과정이 어떻게 유도되는지 알지 못하겠습니다.
    답변을 부탁드립니다. ^^

    답글삭제
    답글
    1. 방문 감사합니다, 익명님. ^^

      말씀하신 대로 식 (20)의 크기 증명은 식 (17)에 있어요. 문제는 벡터의 방향입니다. 벡터 $\bar a, \bar b$가 평행이 아니라면, 어떤 평면을 이룹니다. 이 평면의 법선 벡터를 $\bar n$로 두면 증명이 끝납니다.

      삭제
  18. 20번 식에 when n 벡터 부분 a크로스b하고 크기로 나눠줘야하지 않나요?

    답글삭제
    답글
    1. 지적 정말 감사합니다, Physics님 으TL 틀려서 다시 수정했습니다.

      삭제
  19. 선형 최소 제곱법 보고 들어왔다 바보되기 싫어 여기까지 왔습니다.

    답글삭제
    답글
    1. 잘 하셨어요. 길게 가려면, 개념의 밑바닥도 이해를 해야 합니다.

      삭제
  20. 선형대수 Orthogonal projection 공부하다가 여기까지 왔는데, 진짜 명쾌하시네요. 수학적 기초가 뭔지 알게 되니깐 그 복잡하던 식들이 한 번에 이해가 됐습니다.. 정말 감사해요!

    답글삭제
    답글
    1. Kobot님, 방문 감사합니다. 계속 열공합시다 ^^

      삭제
  21. 머리나쁜 예일대생이라니........... 그럼 나는 뭐지

    답글삭제
  22. 거북이님 안녕하세요! 항상 감사히 배우고 있습니다. 한 가지 여쭤볼 게 있는데, 벡터공간에서 영벡터가 갖는 의미가 무엇일까요? 영벡터가 벡터공간을 유지하는 데에 영향을 미치나요?

    답글삭제
    답글
    1. 영 벡터(zero vector)는 벡터 덧셈의 항등원이라서 벡터 공간에 꼭 있어야 합니다. 또한 영 벡터는 자동으로 무 벡터(null vector)가 되기 때문에, 벡터 공간이 스칼라배 연산에 닫혀 있으려면 영 벡터가 필요합니다.

      삭제
  23. 안녕하세요! 다시 왔습니다. 부디 거북이님을 귀찮게 하는 일이 아니길 바라며, 질문드립니다.
    며칠 전부터 내적에 대해 연구 중입니다. 내적은 dot product의 일반화이며 한 쌍의 벡터에 스칼라 값을 부여한다고 배웠습니다. 여기서 스칼라 값을 부여하는 행위의 의의가 궁금합니다. 그것은 어떤 가치를 갖나요?

    답글삭제
    답글
    1. 벡터 내적은 사원수(quaternion)에서 유래합니다. 아래 링크를 읽어보세요.
      사원수 곱셈에서 실수로 나오는 항을 모으면, 사원수 단위 $i,jk$가 없고 스칼라만 있는 벡터 내적이 나옵니다.

      http://ghebook.blogspot.com/2010/07/quaternion.html

      삭제

욕설이나 스팸글은 삭제될 수 있습니다. [전파거북이]는 선플운동의 아름다운 인터넷을 지지합니다.