2019년 8월 25일 일요일

3. 벡터 변환 규칙(Vector Transformation Rules)

[구구단만 알아도 '텐서'] 3. 벡터 변환 규칙(Vector Transformation Rules)
원본출처: Tensors for Beginners by eigenchris(YouTube)



이전 강의에서 좌표 변화에 따른 기저벡터의 변환행렬이 벡터 성분변환에서는 반대로 적용된다는 것을 알게됐다. 이번 강의는 그 이유에 대해 설명한다. [아울러 반변벡터(Contravariant)도 소개한다.]



쉬운 예를 들어보자. 아래의 그림의 청색으로 표현된 원좌표계에 벡터 v 가 있다. 이 벡터 v는 두 기저벡터 성분이 모두 1인 벡터다. 변환된 좌표계는 원좌표계에서 기저벡터의 길이가 단지 2배로 커진 좌표계다. 이 변환된 좌표계에서 벡터 v의 성분은 각각 1/2이다. 벡터 v는 변화없지만(invariant) 기저벡터가 두배로 커진 변환된 좌표계에서 벡터의 성분(components)은 반으로 작아졌다. 기저벡터의 성분 변화와 벡터 v의 성분 변화가 반대다. 흥미롭지 않은가.



이번에는 다른 예로 각도가 변화된 좌표계다. 아래 그림처럼 원좌표계를 시계방향으로 회전 시킨 병형된 좌표계에서 벡터 v의 성분들은 마치 반시계 방향으로 회전한 것과 같다.



다시 첫번째 도표를 보자. 기저 벡터가 커지면 성분 값은 작아진다. 기저벡터가 한 방향으로 회전하면 성분은 그와 반대로 회전한 효과를 낸다. 벡터의 성분을 구할 때 반대의 변환행렬을 적용 했는지 직관적인 이해가 되었을 것이다. 이제 임의의 다차원으로 확장해 보자.



[벡터 표기법] 임의 벡터 v 는 원좌표계의 기저벡터 e_j와 그에 대한 성분 v_j의 곱을 더한 선형 합(Linear Combination)이다. [v_1은 벡터 v의 e_1 기저벡터 축 성분이다. 축성분 값을 해당 기저벡터에 곱한 후 모두 더한 것] 이번에는 벡터 v를 변형 좌표계에서 나타내 보면 기저벡터 e_j_tilde와 성분 v_j_tilde의 선형 합이다. 일반화를 위해 점을 찍는 대신 총합(summation)의 기호 ∑_j를 사용하여 표현한다.

다차원으로 일반화 시킨 벡터의 표현과 앞서 구한 변형된 좌표계사이의 변환식을 활용하여,




벡터 v를 다시 써보면,



위의 두 식을 비교하여 다음과 같은 식을 얻는다. 변형된 좌표계의 i번째 벡터 성분 v_i_tilde 은 원 좌표계의 벡터 성분 v_j 와 역변환 행렬 B 의 i-번째 행과 선형합 임을 보였다. [행렬 B와 벡터 v 성분의 곱이다.]



같은 방법으로 변환된 좌표계의 벡터 성분에 순방향 행렬식 F을 곱하여 원좌표계의 벡터 성분을 구할 수 있음을 알 수 있다. 변형 좌표계에서 원좌표계의 벡터 성분 변환에 순방향 변환행렬이 사용되었다. [변환행렬의 사용을 보면 뭔가 반역(Contra)의 기운이..!]



-------------------------------------------

[행렬 B_ij와 벡터 v_j의 곱이다! 원 좌표계에서 벡터의 성분과 역방향 변환 행렬을 곱하여 변형된 좌표계의 성분을 구할 수 있음을 증명]



-------------------------------------

지금까지 살펴본바 대로 불변 벡터를 두고 두 좌표계 사이의 변환을 기저벡터와 성분으로 나눠보면 다음과 같다. 특히 성분에 대한 변환의 경우 기저벡터 변환과 반대의 변환행렬을 적용한다. 이를 두고 벡터 성분 변환은 '반변 텐서(Contravariant tensors)'라고 한다. 이에 대해서 나중에 다시 다룰 것이다.



끝으로 벡터의 표기법에 대해 언급하고자 한다. 벡터를 표기할 때 아래와 같이 첨자를 사용 하였다. 이 첨자는 벡터에 나열된 값의 위치를 나타낸다.



앞서 살펴 봤듯이 기저벡터 e_i와 e_i_tilde 의 경우 정역변환 행렬의 적용이 순리적 이었지만 성분 v_i와 v_i_tilde의 경우 반대로 적용 되였다(Contra!). 이와같이 숨은 특성을 위의 식에 적용하기 위해 윗첨자를 사용한다. 일반적인 대수식에서 윗첨자는 제곱의 의미를 가진다. 하지만 텐서(벡터) 분야에서 제곱은 거의 등장하지 않는다.



원소(element)를 첨자로 사용하는 벡터의 표기법에서 아래 첨자는 공변벡터(Covariant) 윗첨자는 반변벡터(Contravariant) 라고 한다.

---------------------------------
[이전] 2. 벡터의 정의(Vector Definition)
[다음] 4. 여벡터 란?(What is CoVector?)

------------------------------------
[구구단만 알아도 '텐서']
-1. 동기(Motivation)
0. 텐서의 정의(Tensor Definition)
1. 정역방향 변환(Forward and Backward Transformation)
2 벡터의 정의(Vector Definition)
3. 벡터 변환 규칙(Vector Transformation Rules)
4. 여벡터 란?(What's a Covector?)
5. 여벡터 성분(Covector components)
6. 여벡터 변환 규칙(Covector Transformation Rules)
7. 선형 사상(Linear Maps)
8. 선형사상 변환규칙(Linear Map Transformation Rules)
9. 측량 텐서(Metric Tensor)
10. 쌍선형 형식(Bilinear Form)
11. 선형사상은 벡터-여벡터의 짝(Linear-Maps are Vector-Covector Pair)
12. 쌍선형 형식은 여벡터-여벡터 짝(Bilinear Forms are Covector-Covector Pairs)
13. 텐서 곱 vs. 크로네커 곱(Tensor Product vs. Kronecker Product)
14. 텐서는 벡터-여벡터 조합의 일반형(Tensors are a general vector-covector combinations)
15. 텐서 곱 공간(Tensor Product Spaces)
16. 색인 올림과 내림(Raising/Lowering Indexes)
-------------------------

2 벡터의 정의(Vector Definition)

[구구단만 알아도 '텐서'] 2. 벡터의 정의(Vector Definition)


원본출처: Tensors for Beginners by eigenchris(YouTube)

텐서의 가장 기본적인 예가 벡터다.[벡터는 랭크 1 텐서다.] 벡터가 무엇인지 정의를 내려 보라고 한다면 저마다 다른 답이 나올 수 있다.

벡터를 숫자의 배열 이라고 하자. [객체가 정의되면 이에따라 연산도 정의되어야 한다.] 두 배열사이의 연산은 동일한 색인의 숫자끼리 더할 수 있고 벡터에 스칼라 곱을 하면 모든 색인의 숫자에 곱해진다. 이런 정의는 배열에 속한 숫자들, 즉 벡터 성분(components)들을 정의한 것이다. 성분의 배열과 벡터는 다르다.



앞서 이야기 했지만 벡터는 불변성이 있지만 성분은 (좌표계에 따라) 가변한다. 따라서 벡터(Vectors)와 벡터 성분(Components)은 완전히 다른 개념이다.



만일 숫자의 나열 속에 숨은 기하학적 의미를 이해 한다면 올바른 벡터의 정의가 될 것이다. [그러나 이 기하학적 의미를 어떻게 표현할 것인가?]

벡터를 화살표 그림으로 표현하기도 한다. 평행이동이 가능하며 스칼라 곱으로 길이변화도 자유롭다. 화살표의 덧셈 연산과 곱셈 연산이 정의되어 있다. 화살표는 아주 직관적이며[기하학적이지 않은가!] 벡터를 잘 표현하고 있다. 그런데 문제가 있다. 모든 벡터를 화살표로 그리기는 곤란하다. [심지어 3차원 벡터조차 그리기 어렵고 그이상 차원의 벡터는 그림으로 상상조차 않된다. 게다가 유체나 전자기장 같은 복잡한 문제를 다룰때 모든 벡터를 그려 놓고 따지기는 불가하다.] 이를 극복하기 위해 선형 대수학(Linear Algebra)를 배우게 되지만 이 또한 어려운 수학 분야다. 이 강좌에서 선형대수를 자세히 다루진 않겠다.



세번째 벡터의 정의로 '벡터 공간(Vector Space)'에 소속된 객체라는 것이다. '벡터공간'은 네개의 요소로 구성되는데, V(벡터집합), S(스칼라), +(덧셈) 그리고 ⋅ (스칼라 곱) 이 공간을 이룬다.



['공간', 객체(혹은 사건)이 존재(발생)할 수 있는 장소(요건) 쯤으로 이해해 두자. 예를들어 '평면'을 2차원 공간에 놓인 모든 점들의 집합이라고 한다. 이때 2차원 '공간'이란 2개의 좌표축을 말한다. 이 좌표축에 대한 최소한의 요건은 모든 실수라 할 것이다.]

['벡터공간'을 가지고 벡터를 정의하다니 다소 혼란하다. 벡터를 숫자의 나열로 혹은 화살표로 정의 할 수 있고 완전히 틀린 정의는 아니다. 다만 일반화의 어려움이 있을 뿐이다. 어쨌든 앞서 내린 '벡터'들을 서로 덧셈이 가능하고 스칼라 곱으로 길이변화(scale)가능하다는 요건 내에 두겠다는 뜻이다.]

앞으로 벡터는 유클리디언 공간[길이와 각도로 구성된 공간. 민코프스키 공간은 3차원 공간과 시간이 어울려진 공간이다.]에 존재하는 것으로 한정하겠다. 화살표 그리기도 수월하니까.

벡터의 성격[불변성]을 정의하기 위해 변형된 좌표계에서 [성분이]어떻게 변하는지 살펴 보기로 하자. 앞서 예로 들었던 두 좌표계에서 변환 행렬은 각각 F와 B였다. 임의의 벡터 v는 원좌표계에서 성분이 각각 1과 1.5다. 변환된 좌표계에서 벡터 v의 성분은 각각 1과 2다.



위의 그림에서 벡터를 세가지 방식으로 기술 하고 있다. 먼저 화살표 그림, 이어서 벡터 선형연산(기저벡터에 스칼라 값의 곱), 그리고  성분값을 수직으로 배열하고 대괄호를 씌운후 좌표계를 표시하기 위해 기저벡터의 일반형을 첨자로 붙였다. [새로운 개념이 도입 될 때마다 새로운 표기법이 등장 한다.]

벡터 v를 원좌표계에서 변형좌표계로 변환시켜보자. 먼저 정변환 행렬 F에 벡터 v의 원좌표계에서 성분을 곱하면 변형 좌표계에서 성분과 같아야 할 것이다. 그런데 계산해보니 성분이 각각 1.25와 1.375다. 변형된 좌표계에서의 성분과 틀리다. 변환 규칙이 잘못되었을까?



이번에는 역방향 변환 행렬에 곱해보자. 원하는 계산 결과값이 나왔다.



처음 생각했던 것과 다른 규칙을 세워야 한다. 벡터를 원좌표계에서 변형 좌표계로 변환 하려면 역방향 변환행렬을 곱해야 한다. 반대로 변형좌표계에서 원좌표계로 변환 하려면 순방향 변환행렬을 곱해야 한다.



이처럼 변환 방향과 반대의 변환행렬을 적용해야 하다니 어쩐지 비상식처럼 느껴질 것이다. 그 이유는 다음 강의에서 다뤄 보자.

--------------------------------------------------------------
[이전] 1. 정역방향 변환(Forward & Backward Transformation)
[다음] 3. 벡터 변환 규칙(Vector Transformation Rules)

------------------------------------
[구구단만 알아도 '텐서']
-1. 동기(Motivation)
0. 텐서의 정의(Tensor Definition)
1. 정역방향 변환(Forward and Backward Transformation)
2 벡터의 정의(Vector Definition)
3. 벡터 변환 규칙(Vector Transformation Rules)
4. 여벡터 란?(What's a Covector?)
5. 여벡터 성분(Covector components)
6. 여벡터 변환 규칙(Covector Transformation Rules)
7. 선형 사상(Linear Maps)
8. 선형사상 변환규칙(Linear Map Transformation Rules)
9. 측량 텐서(Metric Tensor)
10. 쌍선형 형식(Bilinear Form)
11. 선형사상은 벡터-여벡터의 짝(Linear-Maps are Vector-Covector Pair)
12. 쌍선형 형식은 여벡터-여벡터 짝(Bilinear Forms are Covector-Covector Pairs)
13. 텐서 곱 vs. 크로네커 곱(Tensor Product vs. Kronecker Product)
14. 텐서는 벡터-여벡터 조합의 일반형(Tensors are a general vector-covector combinations)
15. 텐서 곱 공간(Tensor Product Spaces)
16. 색인 올림과 내림(Raising/Lowering Indexes)
-------------------------

2019년 8월 24일 토요일

1. 정역방향 변환(Forward and Backward Transformation)

[구구단만 알아도 '텐서'] 1. 정역방향 변환(Forward and Backward Transformation)


원본출처: Tensors for Beginners by eigenchris(YouTube)

* 주의: 위의 강의 영상에 오류가 있어 수정편이 추가되었음. 변환 행렬의 행과 열의 색인 순서가 바뀌는 오류가 있었음. 아래 본문 내용은 "수정"편에 근거거하여 작성 되었음.



앞서 텐서(Tensor)를 배우는 동기와 그 정의에 대해 이야기 했다. 이제부터 정말 수학으로 접근해보자. 먼저 정역방향 변환(Forward & Backward Transformation)이다. 변형된 좌표계 사이에서 벡터의 불변성(invariance)은 이미 이야기했다. 이 불변성은 벡터를 이해하는데 아주 중요하다. 정역방향 변환이란 두 좌표계 사이의 변환 방법을 다룬다. [벡터는 불변성을 유지하지만 각 좌표계에서 성분값은 변한다.]



두개의 좌표계가 있다. 파란색으로 표시된 원 좌표계(old coordinate)와 빨간색은 변형된 좌표계(new coordinate)다. [좌표계는 복수의 기저 벡터(Basis Vector)에 의해 정의 된다. 기저벡터는 저마다 길이와 방향을 갖는다. 기저 벡터의 길이는 임의 값을 갖는다. 기저 벡터의 길이를 1로 잡은 경우 단위벡터(unit vector)라 한다. 기저벡터의 각도가 90도인 경우 직각 좌표계(Cartesian Coordinate)라 한다. 기저벡터의 방향은 같을 수 없다.] 예에서 파란색 원 좌표계의 두 기저벡터는 각각 길이가 1인 직각 좌표계다. 빨간색은 변형된 좌표계다.

먼저 파란색의 원 좌표계는 e_1 과 e_2라는 두 기저벡터를 가지고 있다. 빨간색의 변형된 좌표계는 e_1_tilde 와 e_2_tilde다. 두 좌표계를 구성하는 기저벡터의 변환식을 구해보자. 벡터의 덧셈(화살표 더하기)을 활용하면 쉽고 직관 적으로 구할 수 있다. 결국 두 좌표계(각 좌표계는 다시 두개의 기저벡터를 가지고 있음)의 변환은 2x2 행렬로 표현된다.





[좌표변환 행렬의 표기규칙:행(row)은 성분(component), 열(column)은 벡터 의미한다. 행렬의 색인 순서는 행-열 이다. 벡터는 수직(열)으로 세워놓은 것이다.]

------------------------

이번에는 변형된 좌표계에서 원 좌표계로 되돌리는 방법이다. 변형된 기저벡터 e_1_tilde 와 e_2_tilde 가지고 e_1을 표현 하려니 좀 어색하다. 기저 벡터의 방향은 어쩌지 못한다. 평행이동만 있을 뿐이다. 단, 길이는 바꿀 수 있다. [앞으로 계속 나올 테지만 '선형성' 에서 벡터에 스칼라 곱과 덧셈이 허용될 뿐이다.] 변환 방법은 여러가지가 있을 수 있다. 우선 직관적으로 e_1_tilde를 1/4등분 하고 e_2_tilde를 수평이동 하여 역방향을 취하여 더하면 e_1이 된다. 같은 직관을 동원 하여 e_2를 표현해 보자. 먼저 e_1_tilde를 1/2등분 하고 e_2_tilde를 수평이동 하여 2배하면 e_2가 된다. 좌표 변환에 필요한 두개의 관계식(연립방정식)은 행렬 B로 표현했다.





[벡터의 덧셈을 그림으로 표현하면 직관적이긴 하다. 하지만 직관으로 다차원 벡터라는 추상적인 개념을 언재까지 표현 할 수 있을 것인가. 더구나 그림으로 당장 3차원의 좌표계를 어찌어찌 '그릴 수'  있다손 쳐도 그이상의 좌표계는 불가하다. 그래서 벡터 방정식을 도입하여 다수의 방정식(연립 방정식, simultaneous equation)은 행렬(matrix)로 기술한다. 행렬은 한 '객체'에 여러 특성을 담을 수 있는 '클래스(class)' 혹은 '컨테이너(container)' 같은 것이다.]

두 행렬 F와 B는 두 좌표계 사이의 변환 관계를 규정한다. 한가지 목적[벡터 불변성]을 위해 구해진 두 객체다. 그럼 이들 행렬을 서로 곱해보자. 행렬 곱셈을 연습삼아 해봐도 좋다. 정역변환 행렬 곱의 결과는 대각(Diagonal) 단위 행렬(Unit Matrix)이다. 이는 정변환 행렬 F와 역변환 행렬 B가 서로 역관계에 있다는 의미다.



2차원 좌표공간에 대한 예를 들어 봤다. 이제 다차원으로 일반화 해보자. 좌표계 변환을 위해 n 개의 연립 방정식이 얻어지며 기저 벡터의 계수로 정변환 nxn 행렬이 얻어진다. 일반화 하기위해 아직 확정되지 않은 n 에 대하여 행렬 내 원소를 일일이 표현하기 불가하므로 점을 찍어 표현된 것을 보게 되는데 지극히 수학적이지 못하다.



변환 연립 방정식을 합의 연산기호 ∑_j 를 도입하여 표현해 보자. 색인(index) 붙이기에 주의해야 하지만 매우 유용한 방법이다. 변환된 좌표계의 i번째 기저 벡터 e_i_tilde 는 원좌표계의 기저 벡터 e_j 에 변환계수 F_ij 를 곱하여 모두 더한 것이다. 이렇게 함으로써 변환이 아주 간단히(그리고 수학 방정식으로) 표현되었다.




이번에는 역변환이다. 역변환 역시 같은 방법으로 표현될 수 있다.



정역방향 변환식을 구했다. [벡터의 합을 그림으로 표현한 것도 아니고 일반화를 위해 점을 찍지도 않았다. 지금까지 그림을 그려가며 벡터와 그들 사이의 선형 연산을 정의하고 다시 행렬과 곱셈을 해 본 것은 결국 일반화된 변환식을 얻기 위한 과정이었다!] 이 두 변환식을 활용하여 두 변환이 서로 역관계(inverse relation)에 있음을 다시 증명해보자. [6:30]



몇가지 간단한 수학원리를 적용하여 다음과 같은 식을 얻는다. 좌변의 원좌표계의 기저 벡터를 얻기위해 우변에 역시 원좌표계의 기저 벡터들 선형 합이 동원 되었다. 조금 기묘하지 않은가? 아마도 괄호 않은 어떤 요소가 이런 방정식을 성립하게 만들었을 것이다.



잘 따져보면 e_n 은 ∑_k을 고려할 필요도 없이 그냥 e_n 이다. 예를 들어 e_2 = e_2 가 당연하다. 뭔가 덧붙일 필요 없다. 따라서 e_i = ∑_(...) e_k 에서 i=k일 경우 괄호안의 부분은 단위행렬의 꼴이 되어야 한다.




괄호안이 단위 행렬이 되도록 i=k일때만 1이며 그외의 행렬 원소는 모두 0으로 만드는 연산(기호)을 크로네커 델타(Kronecker Delta)라고 한다.




이번 강의를 요약하면 (벡터 불변성을 유지하는) 정방향 및 영방향 변환식과 두 변환은 서로 역의 관계에 있다는 점을 밝혔다. 아울러 두 변환의 곱은 단위 행렬이 되며 이는 크로네커 델타라고 한다.



* 색인 붙이는 순서에 주의해야 한다. 좌변은 변환된 좌표축의 기저 벡터이며 우변은 원좌표계의 좌표축 성분 합이다.

------------------------------------------------
[행렬과 벡터의 곱 vs 변환행렬]

행렬(row & column element, matrix)과 벡터(vector)의 곱의 결과는 벡터다. 아울러 이 곱셈을 일반형으로 기술할 대 붙인 색인에 주목하자.



좌표계의 변환(Coordinate Transformation)은 기저벡터의 선형합이다. 이때 원 기저벡터의 계수(스케일 값)을 변환 행렬로 표현 하면 다음과 같다.



좌표변환은 변환행렬과 원 기저벡터의 행렬곱셈이 아니라는 점에 주의하자. 굳이 행렬 곱으로 표현하자면 변환행렬의 트랜스포스와의 곱이다.



이번 동영상 강의에서도 좌표변환의 기저벡터 선형 합과 행렬 곱을 혼돈하여 수정편이 마련되었다. 이렇게 혼란스럽게 굳이 행렬로 표시하려는 이유는 변형된 좌표계 사이의 성분 계산을 비롯한 여러 계산에 유리하기 때문이다. 이에 관해 차례로 배우게 될 것이다.

-----------------------------------------------
[이전] 0. 텐서의 정의(Tensor definition)
[다음] 2. 벡터의 정의(Vector Definition)

------------------------------------
[구구단만 알아도 '텐서']
-1. 동기(Motivation)
0. 텐서의 정의(Tensor Definition)
1. 정역방향 변환(Forward and Backward Transformation)
2 벡터의 정의(Vector Definition)
3. 벡터 변환 규칙(Vector Transformation Rules)
4. 여벡터 란?(What's a Covector?)
5. 여벡터 성분(Covector components)
6. 여벡터 변환 규칙(Covector Transformation Rules)
7. 선형 사상(Linear Maps)
8. 선형사상 변환규칙(Linear Map Transformation Rules)
9. 측량 텐서(Metric Tensor)
10. 쌍선형 형식(Bilinear Form)
11. 선형사상은 벡터-여벡터의 짝(Linear-Maps are Vector-Covector Pair)
12. 쌍선형 형식은 여벡터-여벡터 짝(Bilinear Forms are Covector-Covector Pairs)
13. 텐서 곱 vs. 크로네커 곱(Tensor Product vs. Kronecker Product)
14. 텐서는 벡터-여벡터 조합의 일반형(Tensors are a general vector-covector combinations)
15. 텐서 곱 공간(Tensor Product Spaces)
16. 색인 올림과 내림(Raising/Lowering Indexes)
-------------------------

2019년 8월 21일 수요일

0. 텐서의 정의(Tensor Definition)

[구구단만 알아도 '텐서'] 0. 텐서의 정의(Tensor Definition)


원본출처: Tensors for Beginners by eigenchris(YouTube)

"초보자를 위한 텐서(Tensors for Beginner)" 강좌는 19편의 동영상/16장으로 구성되었다. 그중 두번째 비디오다. 앞의 강의에서 텐서를 공부해야 할 동기를 이야기 했다. 이번에는 텐서가 무엇인지 분명히 해보기로 한다. 사실 텐서를 한마디로 정의하기는 쉽지 않다. 다양한 경험을 가진 사람들이 텐서(Tensor)를 이야기 할텐데 수학적인 의미[선형사상(Linear Map) 등]은 차후 강좌 중에 설명하기로 하고 먼저 누군가 물어보면 한마디로 뭐라 해야할지 알아보자.

먼저 텐서는 다차원 숫자 배열(Multidimensional array of numbers) 혹은 격자(grid)라고 말한다. 숫자 한개는 스칼라(Scalar)다. 때로 스칼라는 랭크 0 텐서(Rank 0 Tensor)라 한다. 동류의 숫자들을 모아 놓은 스칼라 배열로 표시되기도 한다. 숫자를 수직으로 나열해 놓은 1차원 배열을 벡터(Vector)라 한다. 벡터는 랭크 1 텐서(Rank 1 Tensor)다. 행렬(Matrix)을 들어 봤을 것이다. 행렬은 2차원으로 숫자를 늘어 놓은 배열, 혹은 '격자' 인데 랭크 2 텐서다. 앞편에서 잠깐 소개된 일반 상대론(GR; General Relativity)의 수식에 등장하는 측량 텐서(metric tensor)도 2차원 배열, 랭크 2 텐서다. 행렬의 각 숫자는 행의 원소(row element)이자 열의 원소(column element)이기도 하다. 더 높은 차원의 행렬도 있다. 3차원으로 배열된 행렬의 예를 보여준다.



이처럼 다차원 배열로 텐서를 이해하는 것은 한 방편일 수는 있지만 정확한 정의는 아니다. 텐서는 다차원 숫자의 배열이면서 기하학적인 의미(geometrical meaning)를 가지고 있다. 일단 텐서를 다차원 숫자 배열이라고 보고 그 이면에 놓인 기하학적인 의미를 차차 살펴보기로 한다.

그럼 두번째로 텐서를 정의해보면, 좌표의 변형(change of coordinate)에도 그 본성[크기와 방향]을 잃지 않는 객체로서, 변형된 좌표계에 따른 고유성분을 가지며(special components), 그 성분을 표현할 수 있는 [변환의]방법(predictable way)을 가진 객체가 텐서다. [변화된 상황에 대해서도 고유 값을 가지며 이를 표현할 방법이 체계적(수학적) 마련되어야 한다. 그래야 과학이다.] 이를 좌표 변화에 대한 불변(invariant)이라고 한다.



예를 들어, 방안에 문쪽으로 향해 있는 연필이 있다. 이 연필의 재질, 일테면 나무, 흑연 따위를 제외하고 길이와 방향[벡터를 표현하는 방법] 만으로 본질을 기술하기로 하자.



이번에는 임의로 3차원 좌표계를 도입해 보자. 이 좌표계는 서로 수직인 세가지 방향의 단위 벡터(unit vector)로 정의 되었다. 각 방향은 각각 다른 색깔로 구별해 놓았다. 이 좌표계에서 연필의  본질인 방향과 길이를 표현하면 노란 단위벡터 2개, 녹색 단위벡터 1개, 청색 단위벡터 1개의 합이다. 좌표계를 정의할 때 사용된 단위벡터에 갯수를 나타낸 숫자(스칼라)를 곱하고 모두 합쳐 연필의 본질을 기술 하였다[벡터 합].



좌표를 나타내는 기준 성분이 수직일 필요도 없고 기본단위가 1로 같을 필요도 없다. 이번에는 좀더 특이한 좌표계를 적용해보자. 역시 좌표계를 정의한 기저 벡터[길이가 1이 아니며 방향도 서로 수직이 아니다. 하지만 동일한 방향이면 않된다. 이처럼 좌표계를 정의하는 기준이 되는 벡터를 기저벡터(basis vector)라 한다.]로 연필을 기술 할 수 있다. 이 때 역시 기저 벡터에 스칼라 값이 곱해지고 모두 합쳐 연필의 본질을 기술 한다.



좌표체계가 변화해도 연필의 본성이 불변하다는 점은 매우 중요하다. [기저 벡터에 스칼라를 곱하여 모두 더한다는 개념은 매우 중요하다. 우리는 이를 선형성(Linearity)이라 하며 바로 선형 대수(Linear Algebra)의 시작이다.] 연필로 대변된 벡터(Vector)는 불변성을 갖지만 좌표에 의존하는 성분(Components)은 변한다.



다시 상기하자면 '벡터'라는 '랭크 1 텐서'는 좌표의 변화에 대해서 불변성을 가지며 좌표의 변화에 따라 텐서의 성분이 달라지는 것이다. 동일한 텐서에 대하여 변형된 좌표 사이의 변환방법(transformation)이 존재한다. 원좌표에서 변형된 좌표로 변환을 순방향 변환(Forward)이라 하고 변형된 좌표에서 원좌표로의 변환을 역방향 변환(Backward)이라고 한다. 좌표 변환으로 텐서를 정의해 봤다(Coordinate Definition). [텐서는 좌표변환에 대해 불변성을 같는 객체다.]



좌표변환 만으로 텐서를 정의하기에는 좀 부족한 면이 있다. 그래서 텐서의 세번째 정의는 다음과 같다. 텐서는 '텐서 곱(tensor product)'으로 만들어진 벡터(vector)와 여벡터(covector)들의 집합(collection)이다. 이는 텐서에 대하여 아주 단순하면서도 정확하게 정의한 것이지만 처음 접하는 경우 금방 이해되지 않다는 어려움이 있다.



벡터(vectors)는 이미 들어 봤을지 모르나 여벡터(covector)와 텐서 곱(tensor product)는 생소하다. 어쨌든 이는 텐서의 아주 정확한 정의로서 텐서의 추상적 정의(Abstracted Definition)라 한다. 이런 어려움을 극복하기 위해 이강좌가 마련되었다.



만일 미적분의 학습 배경을 가지고 있다면 미적분에서 등장하는 텐서의 정의를 추가로 소개한다. 텐서는 편미분(partial derivatives,[편미분이 기저벡터다])과 자코비언 행렬(Jacobian Matrix)로 변환된 그래디언트(gradients)다. 이런 정의는 일반 상대론(G.R.)에서 다루는 굽은 공간(curved space)을 기술할 때 매우 유효하게 활용된다. 하지만 미적분에 대한 상당한 배경이 없다면 이에 대해서는 넘어가길 바란다.

---------------------------------
[이전]-1. 동기(Motivation)
[다음] 1. 정역방향 변환(Forward and Backward Transformation)

------------------------------------
[구구단만 알아도 '텐서']
-1. 동기(Motivation)
0. 텐서의 정의(Tensor Definition)
1. 정역방향 변환(Forward and Backward Transformation)
2 벡터의 정의(Vector Definition)
3. 벡터 변환 규칙(Vector Transformation Rules)
4. 여벡터 란?(What's a Covector?)
5. 여벡터 성분(Covector components)
6. 여벡터 변환 규칙(Covector Transformation Rules)
7. 선형 사상(Linear Maps)
8. 선형사상 변환규칙(Linear Map Transformation Rules)
9. 측량 텐서(Metric Tensor)
10. 쌍선형 형식(Bilinear Form)
11. 선형사상은 벡터-여벡터의 짝(Linear-Maps are Vector-Covector Pair)
12. 쌍선형 형식은 여벡터-여벡터 짝(Bilinear Forms are Covector-Covector Pairs)
13. 텐서 곱 vs. 크로네커 곱(Tensor Product vs. Kronecker Product)
14. 텐서는 벡터-여벡터 조합의 일반형(Tensors are a general vector-covector combinations)
15. 텐서 곱 공간(Tensor Product Spaces)
16. 색인 올림과 내림(Raising/Lowering Indexes)
-------------------------

2019년 8월 20일 화요일

[구구단만 알아도 '텐서'] -1. 동기(Motivation)

[구구단만 알아도 '텐서'] -1. 동기(Motivation)

* 유튜브 동영상 강좌를 들어가며 대략 한글직역 한 것이라 첨삭된 내용이 틀릴 수 있습니다. 원본 동영상도 함께 시청해 주세요.


원본출처: Tensors for Beginners by eigenchris(YouTube)

'텐서(Tensor)'

텐서를 쉽게 설명 하겠다. 먼저 왜 텐서를 공부해야 할까? 그리고 텐서를 뭐라고 해야 할지 정의를 내려보기로 한다. 시작하기 전에 먼저 기본으로 갖춰야할 배경을 알아보자. 선형 대수(Linear Algebra)를 알고 있다면 좋겠지만, 벡터와 행렬 그리고 곱셈과 덧셈 [구구단] 정도는 알고 시작 하자. 초보자용 강의 시리즈인 만큼 생소하다면 강의를 진행하면서 배우면 된다.



텐서를 미적분(Calculus)으로 접근 하는 강좌도 있겠으나 이 강좌는 미적분 이야기는 하지도 않겠다. 나중에 미적분 턴서 강좌를 소개 할테니 초보 과정에서는 빼기로 한다.

그럼 '텐서'를 왜 배우려고 하는가? '텐서'라 하면 기하학(geometry)를 떠오르는 사람도 있을 텐데 굳이 틀리진 않다. 다만 초중고교에서 배우던 아주 직관적인 각종 도형이나 삼각법(trigonometry)이 아니라 아주 추상적인 개념의 기학학이라는 점을 알아두자. 가령 아인슈타인의 일반 상대성(General Relativity)에 등장하는 시공간(Space-Time)의 기하학을 수학적으로 표현하는 도구가 '텐서'다.



기왕 이야기가 나왔으니 상대론을 감깐 들여다보자. 수많은 과학 동영상을 통해 시공간이 휜다는 이야길 들었을 것이다. 매우 높은 밀도의 블랙홀(Black hole)에 의해 빛이 휜다던가 초기 우주의 대폭발(Big-Bang)이후 점점 (가속)팽창 한다는 이야기도 들어봤을 것이다. 공간이 휘었다거나 우주가 팽창한다는 것을 수학적으로 표현 하려면 텐서가 필요하다. 아인슈타인의 장 방정식(Field Equation)이라는 것이다.



한개의 수식으로 보이지만 실은 16개의 방정식으로 어떻게 빛이 휘는지, 우주가 팽창하는지 설명한다. 위의 방정식에 나오는 모든 기호를 지금 이해하기는 곤란하지만 적이도 이 방정식에 등장하는 빨간 밑줄 친 항들이 바로 '텐서'라는 점만 알아두자. 특히 빨간 상자로 표시된 항이 핵심인데 소위 측량 텐서(Metric Tensor)라는 것이다. 이 텐서는 4x4 짜리 행렬로 된 랭크 2(Rank 2) 텐서로서 시공간(space-time)에서 길이, 각도 따위를 측량(계산하여 구함)하는 데 사용된다. 측량 텐서에 관한 설명도 이 강좌 7이나 8편 쯤에 나올 것이다. 이 측량 텐서의 기본을 배우고 나면 시공간이 휘었다던가 우주가 가속 팽창을 조금이나마 이해할 수 있으리라 기대한다.



'텐서'를 배워야 하는 다른 중요한 예는 양자 역학, 특히나 최신 연구 과제로 등장한 양자 컴퓨팅을 이해하는데 필요하다는 것이다. 양자역학에 관한 과학 강좌를 보면 꼭 등장하는 양자 중첩(Quantum Superposition)이 꼭 등장한다. 두가지 상태가 동시에 존재할 수 있다는 것인데 어떻게 받아들여야 할지 모르지만 죽은 고양이와 산 고양이로 흔히 비유된다. 다른 예로 양자 얽힘(Quantum Entanglement)이 있다. 양자 특성이 얽혀있는 두 입자는 수백 킬로미터 떨어트려 놓아도 서로 영향을 교환한다는 것이다. 과연 이런 이상한 중첩이라거나 얽힘이라는 특성들을 어떻게 수학적으로 표현 할 수 있을까? 바로 텐서라면 가능하다. 중첩은 벡터의 선형 겹합(스칼라곱과 벡터 덧셈)으로 설명하며 얽힘은 서로다른 두 텐서 곱셈으로 새로운 공간을 만들어냄으로 설명된다. 이에 대해서도 이 강좌 후반부에 다뤄 볼 것이다.

------------------------------------
[다음] 0. 텐서의 정의(Tensor definition)

------------------------------------
[구구단만 알아도 '텐서']
-1. 동기(Motivation)
0. 텐서의 정의(Tensor Definition)
1. 정역방향 변환(Forward and Backward Transformation)
2 벡터의 정의(Vector Definition)
3. 벡터 변환 규칙(Vector Transformation Rules)
4. 여벡터 란?(What's a Covector?)
5. 여벡터 성분(Covector components)
6. 여벡터 변환 규칙(Covector Transformation Rules)
7. 선형 사상(Linear Maps)
8. 선형사상 변환규칙(Linear Map Transformation Rules)
9. 측량 텐서(Metric Tensor)
10. 쌍선형 형식(Bilinear Form)
11. 선형사상은 벡터-여벡터의 짝(Linear-Maps are Vector-Covector Pair)
12. 쌍선형 형식은 여벡터-여벡터 짝(Bilinear Forms are Covector-Covector Pairs)
13. 텐서 곱 vs. 크로네커 곱(Tensor Product vs. Kronecker Product)
14. 텐서는 벡터-여벡터 조합의 일반형(Tensors are a general vector-covector combinations)
15. 텐서 곱 공간(Tensor Product Spaces)
16. 색인 올림과 내림(Raising/Lowering Indexes)
-------------------------