물리학을 배우는 학생이라면 방학 중에 꼭 상대성이론 한번 공부해 보겠다고 책을 샀다가, 텐서에서 눈물을 머금고 포기하기를 반복하는 경험을 한번씩은 할 것이다. 그만큼 물리학과 학생에게 텐서는 애증의 개념이라고 할수 있다. 아마 텐서가 무엇인지, 텐서가 왜 필요한지에 대해서는 이런 저런 소스로부터 많이 봤을 것이니, 여기에서는 텐서의 핵심적인 특징과 표기법, 연산에 대하여 정리하여 실제적으로 텐서를 가지고 계산을 하는 방법들에 대하여 살펴본다.
먼저, 텐서를 이해하기 위해서는 다음의 개념들에 대해서는 반드시 알아야 한다.
1. 함수 : 함수의 기본 개념, 변수와 함수값, 벡터 함수
2. 스칼라와 벡터 : 스칼라와 벡터의 기본 개념, 벡터의 덧셈, 스칼라 곱, 벡터의 내적, 벡터의 내적의 성질
3. 벡터와 공변벡터 : 공변벡터의 기본적인 개념
함수, 스칼라, 벡터, 공변벡터에 대해서 잘 모른다면 텐서를 이해할 준비가 덜 된 것이니 개념들을 알아보고 다시 도전하자.
#벡터와 공변벡터의 기본 연산
아마 텐서에 대해서 이것저것 찾아보면 벡터와 공변벡터에 대해서 여러가지 개념들이 나올것이다. 공변벡터에 대하여 여러가지 설명들이 많이 봤을 것으로 가정하고, 먼저 벡터와 공변벡터를 수학적으로 표기하는 것부터 시작하자.
NOTATION 벡터, 공변벡터
벡터
벡터와 공변벡터의 핵심적인 내용은 서로 내적 연산이 가능하다는 것이다.
와 열벡터(공변벡터)
는 서로 내적하여
를 얻을 수 있다. 물리학에서는 벡터
공변벡터: 벡터가 들어가면 스칼라(벡터와 공변벡터의 내적값)이 나오는 함수
벡터: 공변벡터가 들어가면 스칼라(벡터와 공변벡터의 내적값)이 나오는 함수
따라서 벡터와 공변벡터의 내적을 함수와 같이 표기할 수 있다.
NOTATION 벡터와 공변벡터의 연산
벡터
함수의 개념처럼
또 다른 표기 방법으로는 벡터와 공변벡터의 성분을 이용하는 표기하기도 한다. 벡터
와 같이 표현된다. 따라서 내적 연산을 다음과 같이 표기하기도 한다.
NOTATION 벡터와 공변벡터, 연산의 성분표현
벡터
또는
기억해야 할 것은, 벡터와 공변벡터의 내적연산은 스칼라가 나온다는 것이다.
#선형 함수와 텐서
텐서에 대해 설명하기 전에 마지막으로 필요한 내용이 선형 함수에 대한 내용이다.
DEFINITION 선형 함수
벡터를 변수로 하는 함수
이 조건을 하나로 합쳐서 다음과 같이 표현하기도 한다.
대표적인 선형 함수가 공변벡터이다. 내적의 성질
를 함수로 바꿔서 생각하면
이제 1개의 벡터가 아닌 2개의 벡터를 변수로 하고 결과로 스칼라가 나오는 함수
만약
또한 첫번째 벡터를 고정했을 때, 두번째 벡터에 대해서도 선형이라고 하자.
이 두 조건을 만족하는 경우 함수
변수로 2개의 벡터가 아닌, 3개의 벡터인 경우 (0,3)-텐서, 4개의 벡터인 경우 (0,4)-텐서가 된다. 일반적으로 q개의 벡터가 들어가 결과로 스칼라가 나오고, 각 벡터에 대해서 선형인 경우 (0,q)-텐서라고 부른다.
꼭 변수로 벡터만 할 필요는 없을 것이다. 2개의 공변벡터를 변수로 하고 결과로 스칼라가 나오는 함수
(0,2)-텐서와 마찬가지로 한쪽을 제외한 나머지를 고정했을 때, 선형이 되는 경우 함수
3개의 공변벡터를 변수로 하는 경우 (3,0)-텐서, 4개의 공변벡터인 경우 (4,0)-텐서가 된다. 일반적으로 p개의 공변벡터가 들어가고 결과로 스칼라가 나오고, 각 공변벡터에 대해서 선형인 경우 (p,0)-텐서라고 부른다.
꼭 변수로 한 종류의 벡터만 들어갈 필요는 없다. 만약 2개의 공변벡터, 1개의 벡터를 변수로 하고, 각각에 대해서 선형인 경우 (2,1)-텐서라고 부른다.
이를 일반화하면, p개의 공변벡터, q개의 벡터를 변수로 하여 결과로 스칼라가 나오고, 각각에 대해서 선형인 경우 (p,q)-텐서라고 부른다.
기억해야 할 것은 텐서는 ① 벡터나 공변벡터가 들어가는 함수라는 것 ② 결과로 스칼라가 나온다는 것 ③ 각각의 투입에 대해서 선형 함수라는 것 ④ p개의 공변벡터, q개의 벡터가 들어가는 경우 (p,q)-텐서라고 부른다는 것이다.
#(0,2)-텐서의 세부 구조
그렇다면 텐서의 실제 연산은 어떻게 이루어지는 것일까? 한마디로 정리하면, 텐서는 여러개의 내적들을 독립적으로 수행한다음 그 결과를 곱하는 것으로 이해할 수 있다. (0,2)-텐서부터 자세히 살펴보자.
(0,2)-텐서
NOTATION (0,2)-텐서
그리고
NOTATION (0,2)-텐서 계산
첫번째 벡터를 고정했을 때, 두번째 벡터에 대해서 선형이 되는 것도 같은 방식으로 확인할 수 있다.
만약 투입되는 벡터의 순서를 바꾸면 어떻게 될까?
는
만약 대응되는 공변벡터의 순서가 바뀌면 어떻게 될까? 당연히 같은 투입에 대해서 다른 결과값이 나오므로, 서로 다른 텐서라는 것을 알 수 있다.
상대성이론에서는 텐서를 성분으로 표현하는 경우가 많다.
NOTATION (0,2)-텐서의 성분 표현
NOTATION (0,2)-텐서 계산의 성분 표현
성분 표현의
성분 표현에서 중요한 것은 위쪽과 아래쪽의 인덱스에서 겹치는 인덱스이다. 위쪽의 i 인덱스는
를 표현한다.
(0,2)-텐서와 마찬가지로, (0,3)-텐서, (0,4)-텐서 등도 모두 이해할 수 있다. 일반적으로 (0,q)-텐서는 안에 각 투입되는 q개의 벡터와 연산이 되는 공변벡터가 q개 존재한다. 각각의 투입과 내적하고 그 결과를 모두 곱하여 최종 함수값을 내놓는다.
이를 수식으로 다음과 같이 표기한다.
NOTATION (0,q)-텐서와 연산
위 그림과 같이,
그리고 (0,q)-텐서의 함수값은 다음과 같이 계산한다.
이 연산을 벡터의 성분을 이용하여 표기할 수 있다. 위에서 벡터의 성분을 이용한 표기법
와 같이 표현한 것을 그대로 이용하면,
NOTATION (0,q)-텐서의 성분 표현
(복잡하지만 인덱스를 잘 구별하자. 1,2,3,...q는 투입되는 순서의 인덱스이고,
#(2,0)-텐서의 세부 구조
같은 방식으로 (2,0)-텐서의 구조도 생각해볼 수 있다. (0,2)-텐서와 바뀐게 있다면, 투입되는 것이 공변벡터이므로 텐서 내부에는 공변벡터 대신 벡터가 있어야 한다는 점이다.
그림과 같이
NOTATION (2,0)-텐서
다시 한번,
NOTATION (2,0)-텐서의 성분 표현
같은 방식으로 (p,0)-텐서의 구조도 생각할 수 있다. 아래 그림을 보고 직접 (p,0)-텐서를 어떻게 써야할지 생각해 보도록 하자.
#(p,q)-텐서의 세부 구조
그렇다면, (2,1)-텐서의 기본 구조 역시 생각해 볼 수 있을 것이다.
(2,1)-텐서
DEFINITION (2,1)-텐서, 연산, 성분표현
성분표현에서 인덱스를 잘 보면, 벡터에 해당하는 인덱스는 위에 쓰고, 공변벡터에 해당하는 인덱스는 아래에 쓴다. 따라서
(p,q)-텐서의 기본 구조도 다음 그림으로부터 유추할 수 있다. 스스로 정리해볼것.
#Pure tensor가 아닌 경우
지금까지 살펴본 텐서는 pure tensor라는 종류의 텐서들이다. 더 일반적인 텐서들은 이 pure tensor들의 합으로 이루어져 있다. 즉, 같은 (p,q)-텐서 종류의 합, 빼기, 스칼라 곱은 (p,q)-텐서가 된다. 예를 들어
로 계산할 수 있다. 이를 그림으로 표현하자면 다음과 같다.
따라서 텐서끼리의 덧셈, 뺄셈, 스칼라 곱 연산을 표현할 수 있다. 함수로 생각했을 때는 특별한 내용은 없다. 다만 물리학과에서는 성분 표현을 많이 사용하므로 성분 표현만 살펴본다.
NOTATION 텐서의 덧셈, 뺄셈, 스칼라 곱의 성분 표현
(p,q)-텐서
덧셈, 뺄셈에서는
다시 한번, 인덱스가 복잡해 보이지만 벡터에 해당하는 인덱스는 위에 쓰고, 공변벡터에 해당하는 인덱스는 아래에 쓴다는 것을 기억하면, 각 텐서들이 위에 인덱스가 p개, 아래에 인덱스가 q개 있으므로, 안에는 벡터가 p개, 공변벡터가 q개 있음을 알 수 있다.
#Contraction
만약 (0,2)-텐서에 첫번째 벡터를 넣고, 두번째 벡터에는 아무것도 넣지 않으면 어떤 일이 일어날까? 다음 그림을 살펴보자.
조금더 정확히 계산을 해보자.
Notation
(0,2)-텐서
만약
이를 성분으로 표현하면 다음과 같이 된다.
이렇게 모두 함수의 투입구에 모두 투입하지 않고 일부만 투입하는 연산을 contraction이라고 한다. 꼭 첫번째 투입구에 넣을 필요는 없다. 첫번째는 비워두고 두번째 벡터만 넣는 경우도 생각할 수 있을 것이다.
이러한 경우 함수의 표현으로는
성분 표현으로는
가 된다. 여기서 특별히 주의를 기울여야 하는 것은 성분 표현이다. 위에서 첫번째 투입구에 벡터를 넣은 것과 비교해보자.
이제, 이 그림의 경우 쉽게 이해할 수 있을 것이다. 이를 식으로 쓰면
또는
으로 쓸 수 있다.
이 그림의 경우는 contraction의 의미를 확실하게 알 수 있다. (2,1)-텐서에 일부만 투입을 하면, (1,1)-텐서로 축소(contraction) 되는 것을 볼 수 있다. 특히 함수 표현
로 결과 텐서
가장 복잡한 경우는 텐서와 텐서의 contraction이다. 일단 그림으로 생각해보자.
텐서와 텐서의 contraction은 먼저 텐서를 완전히 벡터와 공변벡터로 분해한다. 그리고 contraction하고자 하는 벡터와 공변벡터끼리 내적한후 남은 것들을 순서대로 배열한다. 배열 순서는 (앞에 있는 텐서의 남은 벡터), (뒤에 있는 텐서의 남은 벡터), (앞에 있는 텐서의 남은 공변벡터), (뒤에 있는 텐서의 남은 공변벡터)로 배열하자. 텐서와 텐서의 contraction은 함수의 형태로 표기하기에는 적합하지 않다. 따라서 보통 성분 표현을 이용하여 표현한다. 위 그림과 같은 경우의 성분 표현은 다음과 같이 표현된다. 4
인덱스를 잘 살펴보자. 먼저 좌변에서 위와 아래쪽 인덱스에 동시에 출현하는 인덱스들은
꼭 contraction이 2개의 텐서에서 계산될 필요는 없다. 하나의 텐서를 분해해서 그 안에서 내적을 한다면 그 것 역시 contraction이 된다.
중요한 것은 성분 표현에서 인덱스를 contraction이 되는 것들끼리 같은 문자를 배정해야 한다는 것이다. contraction이 되지 않는 것은 서로 다른 문자를 배정해야 한다.
#텐서곱
마지막 텐서의 연산으로 텐서곱을 살펴본다. 텐서곱은 간단히 분해 후 재배열 이다. 다음 그림을 살펴보자.
텐서와 텐서를 완전히 벡터와 공변벡터로 분해하고, 다시 재배열 하는 것으로 생각할 수 있다. 배열 순서는 contraction과 같이 (앞에 있는 텐서의 벡터), (뒤에 있는 텐서의 벡터), (앞에 있는 텐서의 공변벡터), (뒤에 있는 텐서의 공변벡터)로 배열하자. 이 연산을 다음과 같이 표기한다. 5
NOTATION 텐서곱
두 텐서
텐서곱을 성분으로 표현하면 다음과 같이 표기된다.
텐서곱은 다음과 같이 분배법칙이 성립한다.
THEOREM 텐서곱과 텐서 합의 분배법칙
위 식의 덧셈은 덧셈 조건에 맞아야 한다. 즉,
텐서의 덧셈, 뺄셈, 스칼라곱은 같은 쪽에서 인덱스가 같아야 함을 주의.
재해석
이번 페이지에서는 텐서의 세부 구조와 표기법, 연산에 대하여 살펴보았다. 분명 여기 내용만으로 모든것을 알 수 없을 것이다. 다만, 상대성이론이나 다른 텐서가 나오는 부분을 보면서, 여기에 나온 구조와 연산, 표기법으로 정리한다면 텐서가 계산량만 많고 식만 길뿐, 벡터 연산과 다를바 없다는 것을 금방 이해할 것이라 생각된다.
마지막으로 살펴볼 내용은 벡터를 (1,0)-텐서, 공변벡터를 (0,1)-텐서로 생각하고 이 페이지의 처음부터 끝까지를 contraction과 텐서곱으로 재해석하는 것이다. (1,0)-텐서와 (0,1)-텐서의 contraction은 선택의 여지 없이 내적일 수밖에 없다. (1,0)-텐서를 p번 텐서곱을 하면, (p,0)-텐서를 얻고, (0,1)-텐서를 q번 텐서곱을 하면, (0,q)-텐서를 얻는다. 이 둘을 다시 텐서곱을 하면 (p,q)-텐서를 얻을 수 있다. 또한, 내적이 contraction이므로 텐서와 벡터, 공변벡터 사이의 연산은 contraction으로 모두 표현된다. 결국 텐서의 연산은 덧셈, 스칼라곱, contraction, 텐서곱으로 모두 해석할 수 있다. 이러한 관점에서 다시 한번 이 페이지를 읽는다면 텐서의 연산에 대하여 더 자세히 알 수 있을 것이다.
Example
1. 코시 응력 텐서(Cauchy stress tensor)
유체역학이나 구조역학 등에서 나오는 코시 stress 텐서는 다음과 같은 행렬로 정의된다.
Sanpaz / CC BY-SA via Wikimedia
코시 stress 텐서의 가장 기본적인 것은 평면의 normal vector
평면의 normal vector가 공변벡터라는 사실로부터, 공변벡터와 연산되어 벡터가 나오는 텐서는 (2,0)-tensor이므로, 코시 stress 텐서는 (2,0)-tensor임을 알 수 있다. 다만 코시 stress 텐서는 pure 텐서가 아니기 때문에, 위 식을 해석하기 위하여 3가지 pure 텐서
Normal vector
로부터
가 된다. 즉,
Mets501 / CC BY-SA via Wikimedia
텐서
따라서,
1.
2.
3.
가 된다. 코시 stress 텐서
따라서
임을 알 수 있다. 즉, xy, yz, xz-평면에 작용하는 stress 벡터들을
가 된다. 좌변에
만약 코시 stress 텐서와 두번째 인덱스로 contraction을 하면 어떤 정보를 얻을 수 있을까? 다음 그림을 살펴보자.
가 된다. 같은 방식으로
따라서 코시 stress 텐서의 두번째 인덱스와 x방향 단위벡터가 contraction되면 다음의 결과가 얻어진다.
텐서의 정의, 각 벡터에 대한 선형성을 이용하면, 단위 공변벡터
즉, 위쪽 행부터 순서대로, yz, xz, xz-평면에 작용하는 stress 벡터를
코시 stress 텐서에서 많이 쓰이는 식은
이를 성분 표현으로 쓰면
우변에
이고
이므로
가 된다.
2. (2,0)-텐서 또는 (0,2)-텐서 연산의 행렬 표현
(2,0)-텐서와 (0,2)-텐서는 행렬로 표현되기도 한다. 코시 stress 텐서도 다음과 같이 행렬로 표현된다.
그리고 normal vector도 row 행렬이나 column 행렬로 표현된다. 그래서 (2,0)-텐서 또는 (0,2)-텐서의 연산은 행렬로 표현하여 빠르게 계산하기도 한다. 예를 들어, n-평면에 작용하는 stress 계산
로 표현된다. 텐서 연산식에서 행렬 연산이 어떻게 도출되는지 살펴보자.
①
②
각 경우에 대해서 하나씩 행렬 연산과 텐서 연산식을 연결시켜보자.
먼저
이 경우 행렬 곱셈 식은
가 된다. 우변에
이 경우 행렬 곱셈식은
가 된다. 이 식은
이러한 방식으로
이므로
여기에서 주의해야 할 것은, (2,0)-텐서나 (0,2)-텐서를 행렬로 표현할 때, 첫번째 인덱스가 행, 두번째 인덱스가 열을 나타내야 한다. 만약 첫번째 인덱스가 열, 두번째 인덱스가 행을 나타내는 경우, 위의 결과가 뒤바뀐다. 직접 생각해볼 것.
3. 계량 텐서(metric tensor)
Metric 텐서
위 식을 성분 표현으로 쓰면 다음과 같이 표현된다.
또는 성분 표현으로
벡터의 내적은
로 계산하여야 한다. 우변을 metric 텐서를 이용하면 간단히
4. 인덱스 raising과 lowering
Metric 텐서의 첫번째 인덱스와 벡터
즉,
Metric 텐서와의 contraction은 마치
반대로
다시한번
5. 대칭 텐서(symmetric tensor)와 반대칭 텐서(antisymmetric tensor)
Metric 텐서는 정의상 첫번째 벡터와 두번째 벡터를 바꿔서 넣어도 결과가 똑같다.
일반적인 텐서는 성립하지 않는 이러한 성질을 가진 텐서를 대칭 텐서라고 부른다. 위 식을 성분으로 표현하면
우변의 인덱스를 조금 정리하면
따라서 대칭 텐서는 성분으로 표현할 때 인덱스의 순서를 바꿔도 같은 값을 갖는다.
역으로 위 식이 성립하는 경우에 대칭 텐서가 된다.
DEFINITION 대칭 텐서
(0,2)-텐서
마찬가지로 (2,0)-텐서, (1,1)-텐서의 경우 같은 방식으로 대칭 텐서를 정의할 수 있다. 또한 대칭 텐서의 필요충분 조건은 다음과 같다.
위에서 살펴본, 코시 stress 텐서 역시 대칭 텐서이다. 13
어떤 종류의 텐서는 첫번째 벡터와 두번째 벡터를 바꿔서 넣는 경우 결과의 부호가 반대가 된다.
이러한 성질을 가진 텐서를 반대칭 텐서라고 부른다.
DEFINITION 반대칭 텐서
(0,2)-텐서
마찬가지로 (2,0)-텐서, (1,1)-텐서의 경우 같은 방식으로 반대칭 텐서를 정의할 수 있다. 또한 반대칭 텐서의 필요충분 조건은 다음과 같다.
같은 방식으로 더 일반적인 텐서에 대해서도 대칭, 반대칭을 정의할 수 있다.
6. 텐서 필드(tensor field)
지금까지 텐서에 대해서 살펴보았다. 그러나 유체역학이나 상대성이론 식에서 나오는 텐서는 사실 텐서 필드이다. 벡터장이 모든 좌표에 벡터가 붙어있는 모습인 것처럼, 텐서 필드는 모든 좌표에 텐서가 붙어있는 모습이다. 이렇게 정의된 텐서 필드에 대하여 공변 미분 등이 정의된다.
- 인덱스 문자 i, j는 마음대로 선택하면 된다. [본문으로]
- 이렇게 시그마를 생략하는 표기법을 Einstein summation convention(아인슈타인 합 규약)이라고 한다. [본문으로]
- 사실은 공변벡터의 정의가 벡터를 변수로 하는 선형 함수이다. 그러나 물리학과 학생들에게는 반대로 접근하는 것이 더 익숙할 것이다. [본문으로]
- 가장 일반적으로는 배열 순서는 텐서 식을 세우는 사람이 마음대로 정하면 된다. 다만 여기에서는 쉬운 이해를 위해 이렇게 고정한다. [본문으로]
- contraction과 마찬가지로 재배열 순서는 텐서식을 세우는 사람 마음대로 정하면 된다. 여기에서는 쉬운 이해를 위해 이렇게 정렬한다. [본문으로]
- normal vector가 x방향이라면 yz평면, y방향이라면 xz평면, z방향이라면 xy평면이다. --normal vector-- 참고. [본문으로]
- normal vector와 단위벡터는 정의상 길이가 1. [본문으로]
- \(N\) 의 직각방향은 사이 각도가 \(\frac{\pi}{2} - \theta\) 이므로 \(\cos{\left(\frac{\pi}{2} - \theta\right)} = \sin{\theta}\\) 이므로 결국은 똑같이 사이 각도의 cosine인건 똑같다. [본문으로]
- \(\sigma\) 가 3x3 행렬이므로 뒤에 나올 \(n\) 행렬은 3x1 행렬이 되어야 할 것이다. \(n\) 행렬이 1x3 행렬인 경우에는 행렬 곱셈을 할 수 없다. [본문으로]
- 이 경우에는 \(n\) 행렬이 1x3 행렬이 되어야 행렬 곱셈이 성립한다. [본문으로]
- 표현 방법은 간단하더라도 계산 과정은 생략된 \(\sum _{i,j}\) 때문에 결국 똑같다. 그나마 계산 과정을 줄이는 것은 행렬을 이용하는 것이다. [본문으로]
- 벡터는 ① 공변벡터 1개와 연산하여 스칼라가 된다는 점 ② 내적 연산이 각각에 대해 선형이라는 점으로부터 (1,0)-텐서로 생각할 수 있다. [본문으로]
- 코시 stress 텐서의 대칭은 물리학의 각운동량 보존 법칙과 stress의 정의로부터 얻어진다. [본문으로]
'임시페이지' 카테고리의 다른 글
Reporducing Kernel Hilbert Space (RKHS) (0) | 2022.08.30 |
---|---|
Algebra: Chapter 0, Aluffi, Exercise III.1.4 (0) | 2022.01.05 |
Algebra: Chapter 0, Aluffi, Exercise III.1.3 (0) | 2022.01.04 |
Algebra: Chapter 0, Aluffi, Exercise III.1.2 (0) | 2022.01.04 |
Algebra: Chapter 0, Aluffi, Exercise III.1.1 (0) | 2022.01.04 |
함수의 극한, |
2021.01.21 |