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


[그림 1] 응력 텐서의 기하학적 표현(출처: wikipedia.org)

고급물리학에 주로 쓰이는 텐서(tensor)는 여러 가지 면에서 악명이 높다[1]. 예를 들어 이런 질문을 해보자. 텐서[2]는 수학에서 생겨났는가 물리학에서 생겨났는가? 텐서를 이해하려면 수학적 접근을 해야하나 물리적 상상력 기반으로 생각해야하나? 텐서는 단순한 표기법인가? 헷갈리는 텐서 대신 벡터나 행렬을 쓰는 게 편하지 않나? 등등.
이처럼 텐서를 바라보는 관점을 제대로 갖추지 못하면 텐서이론은 알아듣지 못하는 외계인의 언어가 된다. 그 다음 과정은 잘 아는 것처럼 '그냥 포기'. 하지만 포기하지 말자. 아래 글을 계속 읽으면 위 질문들의 답을 찾을 수 있다.

텐서를 이해하려면 스칼라(scalar), 벡터(vector), 행렬(matrix), 미분법(differentiation) 개념이 필요하다. 텐서가 출현한 배경에는 기하학이 자리잡고 있지만 텐서의 정의는 쉽지가 않다. 쉽게 이야기하면 텐서는 임의의 기하구조를 좌표독립(座標獨立, coordinate independent)적으로 표현하기 위한 표기법이다. 예를 들면 삼각형이라는 실체는 데카르트 좌표계원통좌표계구좌표계 등으로 표현할 수 있고 해당하는 좌표값도 선택한 좌표계에 따라 달라지지만 삼각형이라는 특성은 좌표계 독립이라 변하지 않는다. 이런 성질을 기술하는 언어가 텐서가 된다. 이런 텐서의 수학적 성질이 물리학으로 적용되면 특정한 물리법칙이 좌표계에 관계없이 적용된다는 데에도 이를 수가 있다. 텐서의 좌표독립성을 적극적으로 활용하는 분야가 상대성(相對性, relativity)이론이다. 텐서이론이 물리학을 위해 개발되지는 않았지만 측량(기하학의 어원이 측량임)과 밀접한 관계가 있기 때문에 수학과 물리학적 특성이 혼재되어 있다. 텐서가 수학적으로 난해해 보일지라도 우리는 텐서에 대한 물리적/시각적 상상력을 가져야 한다. 이것없이는 텐서에 대한 제대로된 수학적 형상을 만들기가 힘들다. 이것은 모든 수학분야에도 그대로 적용될 수 있다. 수학의 정리들은 책에만 있는 것이 아니고 우리 주변에 분명히 존재한다.
좀더 시각적으로 보기 위해  [그림 1]의 응력 텐서(應力, stress tensor)를 보자.
3차원 공간상에서 특정방향으로 힘([그림 1]의 T)을 받은 경우 변형력(stress)이 실제 생기는 크기와 방향([그림 1]의 σ)을 표현해주는 기법이 응력 텐서이다. 텐서의 어원이 '잡아당기다(stretch)'를 뜻하는 라틴어(Latin) 'tensus'인 것은 우연이 아니다. 즉, [그림 1]의 응력 텐서가 뜻하는 것처럼 무언가를 잡아당기면 그 변형은 굉장히 복잡하게 일어나게 된다. 이를 기술하는 수학적 언어가 텐서가 되는 것이다.

[그림 2] 3차원 공간에서 위치벡터 표현(출처: wikipedia.org)

또한 텐서를 다르게 표현하면 벡터와 행렬의 확장으로 볼 수 있다. (이것은 정확한 표현이 아니다. 모든 벡터 혹은 행렬이 텐서가 되는 것이 아니다. 텐서는 좌표독립 특성을 반드시 가져야 한다.)
벡터는 실수 혹은 복소수(complex number)의 확장이다. 실수 혹은 복소수는 하나의 값(특성)을 표현하지만 이를 확장한 [그림 2]의 벡터는 위치벡터(position vector) 관점에서 n차원 공간의 크기(magnitude)와 방향(direction)을 표현할 수 있다. 3차원인 경우의 위치벡터는 원점(0, 0, 0)과 좌표점 (x, y, z) 사이를 잇는 직선을 이용해 [그림 2]처럼 크기와 방향을 표현한다. 차원이 늘어나면 자연적으로 좌표점을 표현하는 좌표의 수가 늘어난다.

[그림 3] M × N 행렬의 정의(출처: wikipedia.org)

[그림 3]의 행렬은 벡터를 일반화한 것이라 생각할 수 있다. 즉, 서로 다른 위치벡터 r = (a1, a2, a3, ...)를 일렬로 배치한 것이 행렬이라 생각할 수 있다. 이 개념을 표현한 것이 식 (1)이다.

                         (1)

위치벡터를 여러 개 배치한 행렬이 하는 역할은 무엇인가? 식 (1)에 제시한 것처럼 위치벡터를 선형으로 자유롭게 변형하는 일을 하는 것이 행렬이다.
벡터를 일반화하는 방법은 여러 가지이기 때문에 반드시 식 (1)로 일반화할 필요는 없다. 벡터를 일반화하는 방법 중의 하나가 식 (2)의 다이애드(dyad)이다. 다이애드의 어원은 '2인조'를 뜻하는 라틴어(Latin) 'dyas'이다.
2차원 위치벡터를 이용해 2차원 다이애드를 표현하면 다음과 같다.

                         (2)

식 (2)를 보면 벡터들을 별다른 기호없이 일렬로 배치했다. 이러한 곱은 다이애드곱(dyadic product)이라 한다. 이 다이애드곱과 동일한 표현은 식 (2)에 있는 동그라미+곱하기 기호를 사용하는 텐서곱(tensor product)이다.
벡터를 나란히 배열하는 것을 제외하면 다이애드는 벡터 연산의 특성을 그대로 가지고 있다. 즉, 다이애드에 벡터 내적(inner product)과 벡터 외적(outer product)을 쉽게 적용할 수 있다. (어쨌건 식 (2)에 내적과 외적을 적용할 때는 벡터곱으로 생각하면 되므로 쉽다.) 예를 들어, 식 (2)의 다이애드에 벡터 내적을 적용하면 다음과 같다.

                         (3)

식 (3)이 재미있는 것은 다이애드와 벡터의 내적은 벡터를 생성하고 등가적으로 행렬 곱셈과 동일하다. 이것을 일반화하면 n차원 공간에 대해서도 성립하게 할 수 있다. (∵ 식 (3)의 위치벡터 원소갯수를 n개로 하면 자연스럽게  n차원 공간으로 연산이 확장된다.)
식 (2)에서 벡터 배열을 두 개로 하면 다이애드, 세 개면 트라이애드(triad) 등등으로 확장할 수 있다.
이제 텐서 이야기를 해보도록 하자. 텐서는 식 (2)와 같은 다이애드, 트라이애드 등의 확장이라고 대충 생각할 수 있다. 식 (2)와 같이 텐서를 표현하는 일렬로 배치된 벡터의 수는 텐서의 차수(order or rank of tensor)라고 한다. 텐서의 차수로 스칼라, 벡터, 행렬, 다이애드 등을 설명하면 아래와 같다.
  • 0차 텐서: 벡터가 없기 때문에 스칼라임
  • 1차 텐서: 벡터가 하나 있기 때문에 벡터임
  • 2차 텐서: 벡터가 두 개 일렬로 있기 때문에 행렬이나 다이애드임
  • 3차 텐서: 벡터가 세 개 일렬로 있기 때문에 트라이애드임 
조심할 부분은 위 관계의 역은 반드시 성립하지는 않는다는 것이다. 텐서가 벡터, 행렬, 다이애드와 매우 유사하지만 다른 것들과 구별되는 분명한 특성이 있다. 바로 좌표독립 특성이다. 즉, 벡터, 행렬, 다이애드는 좌표독립 특성과는 상관없이 정의된 개념이지만 텐서는 반드시 좌표독립 특성을 가져야 한다.
좌표독립 특성이라는 것은 내가 설정한 좌표계와는 상관없이 어떤 양이 독립적으로 존재하는 것이다. 이를 이해하기 위해 [1]에 나오는 몇 가지 예들을 살펴보자.

Doppler-Effekt Animation[그림 4] 도플러 효과(Image via Wikipedia)

어떤 관찰자 A가 시간 t와 위치 P에서 온도(T)를 측정한다고 하자. 또다른 관찰자 B는 A와는 다르게 움직이고 있다. (or 다른 좌표계에 있다.) 역시 B도 시간 t와 위치 P에서 온도(T')를 측정했다. T = T'가 성립하는가? 관찰자가 측정에 영향을 주지 않기 때문에 T = T'가 성립한다. 좌표독립성이 증명되었기 때문에 온도량 T는 0차 텐서(스칼라)라고 할 수 있다.
다음으로 관찰자 A가 어떤 빛에서 나오는 주파수(f)를 시간 t와 위치 P에서 측정하고 있다. 다르게 움직이는 B도 동일한 특성(f')을 시간 t와 위치 P에서 측정하였다. f = f'가 성립하는가? 운동체의 속력과 방향에 따라 주파수가 다르게 측정된다는 [그림 4]의 도플러 효과(Doppler effect)가 있기 때문에 f ≠ f'이므로 주파수는 0차 텐서가 될 수 없다. 또한, 스칼라라는 개념이 더 크기 때문에(∵ 좌표독립이든 아니든 값을 가지고 있으면 스칼라가 되므로) 스칼라는 0차 텐서를 포함한다.
[그림 2]와 같은 위치벡터는 1차 텐서가 되는가? 어떤 관찰자 A의 위치 P에 대한 위치벡터(R)와 또다른 관찰자 B의 동일한 위치 P에 대한 위치벡터(R')는 일반적으로 다르다. 왜냐하면 위치벡터를 정의하기 위해 사용한 원점이 관찰자 A와 B에 대해 다르기 때문이다. (일반적으로 좌표계 A, B가 원점을 공통으로 소유할 필요는 없다.) 즉, R ≠ R'이기 때문에 위치벡터는 벡터이지만 1차 텐서는 될 수 없다.

[그림 5] 위치벡터의 차이(출처: wikipedia.org)

그러면 위치벡터를 텐서가 되게 만들 방법은 없는가? 있다. [그림 5]의 위치벡터 차이를 생각하면 된다. 관찰자 A가 위치 P1, P2에 대해 위치벡터의 차이(R2-R1)를 정의하고 관찰자 B도 동일한 위치 P1, P2에 대해 위치벡터의 차이(R2'-R1')를 정한다면 위치벡터의 차이는 1차 텐서가 된다.
위치벡터의 차이(difference)가 항상 1차 텐서가 된다는 것은 텐서의 중요한 속성을 표현해준 다. 위치벡터 차이라는 개념은 별 게 아니다. 일반적으로 벡터를 정의할 때 원점의 위치와는 관계없이 [그림 5]와 같이 두 점을 빼주어 정의하므로 통상적인 벡터는 좌표불변성(coordinate invariant)을 가진다.
또한, 위치벡터의 차이를 한없이 줄여가면 위치벡터의 미분(differential)이 되므로 미분 속성도 좌표불변성을 표현해줄 수 있다.

[참고문헌]
[1] J. C. Kolecki, "An introduction to tensors for students of physics and engineering," NASA/TM—2002-211716, Sept. 2002.
[2] kipid, 텐서(Tensor)와 상대론(Relativity) - 0. 텐서(Tensor)란?kipid's blog, 2012.

댓글 없음:

댓글 쓰기