'행렬'에 해당되는 글 2건

  1. 2010.02.24 야코비 행렬(Jacobian matrix) (12)
  2. 2010.02.04 선형대수와 행렬
처음 야코비 행렬을 보았을 때는 아마도 신입생 시절이었을 것이다.(기껏해야 재작년이지만) 야코비 행렬의 정의는 wikipedia 항목을 뒤져보면 쉽게 찾을 수 있다.

J=\begin{bmatrix} \dfrac{\partial y_1}{\partial x_1} & \cdots & \dfrac{\partial y_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \dfrac{\partial y_m}{\partial x_1} & \cdots & \dfrac{\partial y_m}{\partial x_n}  \end{bmatrix}.
위 링크에서는 n차원 유클리드 공간에서 m차원 유클리드 공간으로 보내는 사상 F에 대해서 정의되는 값이라고 되어있다. 다른 말로 하자면 n개의 x 성분이 있는 공간에서 정의된 m개의 y 성분이 있는 벡터장(vector field) F의 기울기(gradient)라고도 할 수 있다. 먼저 기울기의 성격을 잘 생각해보자.
 
d\psi=\nabla\psi\cdot d\bold r

위 식은 장을 측정하는 위치가 조금 변했을 때 장의 크기가 변하는 정도는 그 위치변화(변위)와 장의 기울기의 내적과 같다는 것을 말해주고 있다. 벡터장의 경우 동일한 결론을 얻게 되는데, 물론 벡터를 열벡터로 쓰는 것에 동의한 경우이다.[각주:1] 야코비 행렬을 J라고 쓰면 미소변위 dr만큼 움직였을 때 벡터장 F의 변화 dF는 다음과 같다.

d\bold F=\bold Jd\bold r

의문이 생기면 직접 확인해 보도록. 벡터의 각 성분을 스칼라함수로 본 상태에서 기울기를 구해 행벡터로 나열하고, 여기에 뒤쪽의 미소변위 벡터를 곱하면 각 항목마다 내적을 취하게 되어서 그렇다.[각주:2]

이 행렬의 행렬식(determinant)은 상당히 자주 이용된다. 물론 행렬식을 이용하려면 사상이 같은 차원의 공간을 이어주어야 한다. 대표적인 예는 구면좌표계를 직교좌표계로 바꾸는 경우가 있다. wikipedia의 동일 항목에 나온 예이긴 하지만,[각주:3] 이보다 적절한 예는 없다고 생각해서 이 예를 쓰도록 하겠다.

 x_1 = r\, \sin\theta\, \cos\phi \,
 x_2 = r\, \sin\theta\, \sin\phi \,
 x_3 = r\, \cos\theta. \,

이 경우의 야코비 행렬은

J_F(r,\theta,\phi) =\begin{bmatrix}
\dfrac{\partial x_1}{\partial r} & \dfrac{\partial x_1}{\partial \theta} & \dfrac{\partial x_1}{\partial \phi} \\[3pt]
\dfrac{\partial x_2}{\partial r} & \dfrac{\partial x_2}{\partial \theta} & \dfrac{\partial x_2}{\partial \phi} \\[3pt]
\dfrac{\partial x_3}{\partial r} & \dfrac{\partial x_3}{\partial \theta} & \dfrac{\partial x_3}{\partial \phi} \\
\end{bmatrix}=\begin{bmatrix} 
	\sin\theta\, \cos\phi &  r\, \cos\theta\, \cos\phi  & -r\, \sin\theta\, \sin\phi \\
	\sin\theta\, \sin\phi &  r\, \cos\theta\, \sin\phi  &  r\, \sin\theta\, \cos\phi \\ 
	\cos\theta            &  -r\, \sin\theta             &             0                               
\end{bmatrix}.

이 된다. 위 링크를 따라가보면 알겠지만 야코비 행렬식은 미소부피가 얼마나 팽창하는지 알려주는 계수가 된다. 위의 경우에서 행렬식을 구하면 r^2 sin θ가 되는데, 구면좌표계를 공부한 사람들은 알다시피 dx dy dz = r^2 sin θ dr dθ dφ 이다. 왜 그런지는 이렇게 보일 수 있다. 편의상 야코비 행렬이 다음과 같은 모습이라고 하자.

J_F=\left(\begin{array}{ccc} a&b&c\\d&e&f\\g&h&i \end{array}\right)

이제는 다음 방정식이 성립한다.

d\bold x=J_Fd\bold y

아까의 예제대로라면 x는 데카르트 좌표계, y는 구면좌표계의 미소변화이다. 위 식을 풀어쓰면 다음과 같은 세 방정식이 된다.

dx_1=a~dy_1+b~dy_2+c~dy_3\\ dx_2=d~dy_1+e~dy_2+f~dy_3\\ dx_3=g~dy_1+h~dy_2+i~dy_3

이제 미소부피를 구할 차례이다. 그런데 애석하게도, 미소부피는 저 세 값을 단순히 곱한다고 얻어지는게 아니다. 잘 생각해보면 각 항목은 하나의 벡터이다. 따라서 단위벡터를 ^를 씌워 나타낸다면 위 방정식은 정확히는 이런 방정식이 된다.

dx_1\hat{x_1}=a~dy_1\hat{y_1}+b~dy_2\hat{y_2}+c~dy_3\hat{y_3}\\ dx_2\hat{x_2}=d~dy_1\hat{y_1}+e~dy_2\hat{y_2}+f~dy_3\hat{y_3}\\ dx_3\hat{x_3}=g~dy_1\hat{y_1}+h~dy_2\hat{y_2}+i~dy_3\hat{y_3}

그리고 미소부피를 정확히 나타내려면 위 세 벡터를 스칼라곱 해주어야 한다. 더 높은 차원에서는 쐐기곱을 해주어야 하는데, 아직은 필요없으니 무시하자. 더 알고 싶은 사람은 여기를 확인하고, 여기서는 계속 나아가도록 하겠다. 이제 미소부피 dV는 다음과 같이 쓸 수 있다.

dV=(dx_1\hat{x_1})\cdot( dx_2\hat{x_2})\times (dx_3\hat{x_3})

삼중곱을 간단히 나타내는 방법을 우리는 아주 잘 알고있다. 행렬식을 이용하는 것. y를 사용하는 공간도 유클리드 공간이기 때문에 각 벡터를 성분으로만 써주면 이렇게 된다.

\bold{dx_1}=(a~dy_1,b~dy_2,c~dy_3)\\ \bold{dx_2}=(d~dy_1,e~dy_2,f~dy_3)\\ \bold{dx_3}=(g~dy_1,h~dy_2,i~dy_3)

이제 삼중곱.

dV=(dx_1\hat{x_1})\cdot( dx_2\hat{x_2})\times (dx_3\hat{x_3})~~~~~~~~~~\\=\left|\begin{array}{ccc} a~dy_1&b~dy_2&c~dy_3\\d~dy_1&e~dy_2&f~dy_3\\g~dy_1&h~dy_2&i~dy_3 \end{array}\right|\hat{y_1}\cdot\hat{y_2}\times\hat{y_3}

행렬식의 성질때문에 같은 열에 곱해진 숫자는 앞으로 튀어나올 수 있다. dy_1등을 행렬에서 제거해주자.

dV=(dx_1\hat{x_1})\cdot( dx_2\hat{x_2})\times (dx_3\hat{x_3})~~~~~~~~~~\\=\left|\begin{array}{ccc} a~dy_1&b~dy_2&c~dy_3\\d~dy_1&e~dy_2&f~dy_3\\g~dy_1&h~dy_2&i~dy_3 \end{array}\right|\hat{y_1}\cdot\hat{y_2}\times\hat{y_3} \\=\left|\begin{array}{ccc} a&b&c\\d&e&f\\g&h&i \end{array}\right|dy_1~dy_2~dy_3~\hat{y_1}\cdot\hat{y_2}\times\hat{y_3}

이제 사실상 의미없는 삼중곱을 지워주면 우리가 그토록 애타게 원하던 결과가 나온다.

dV=dx_1~dx_2~dx_3=\left|\begin{array}{ccc} a&b&c\\d&e&f\\g&h&i \end{array}\right|dy_1~dy_2~dy_3



강의를 듣던 당시에는 '오 신기하네' 정도로 생각하고 넘어갔는데 돌이켜보니 나름대로의 논리가 스며들어 있었던 결과물중 하나이다. 설명을 다시 짚어보지 않아서 제대로 설명했는지는 모르겠다.
  1. 행렬이 참으로 놀랍지 않을 수 없다. 얜 어디를 가더라도 등장해 -_- [본문으로]
  2. 행 별로 보는게 이해가 빠를 것이다. 각 행은 그 성분의 gradient라는 점에 주의. [본문으로]
  3. 대상은 조금 다르지만 상관없다. [본문으로]

'Mathematics' 카테고리의 다른 글

무한대와 무한대가 만났을 때  (4) 2010.04.13
Power Set에 대한 잡담  (10) 2010.03.15
야코비 행렬(Jacobian matrix)  (12) 2010.02.24
선형대수와 행렬  (0) 2010.02.04
루빅스로 배우는 군론  (0) 2010.01.27
무한대의 비교: 자연수와 실수  (0) 2010.01.13

댓글을 달아 주세요

  1. Favicon of http://blog.naver.com/dwhuh2002 BlogIcon Joe군  댓글주소  수정/삭제  댓글쓰기

    얽 현 나이 중3
    이해X

    2010.06.27 01:06
  2.  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    2011.02.20 12:44
  3. Favicon of http://GMLWND3011@NATE.COM BlogIcon AJ  댓글주소  수정/삭제  댓글쓰기

    어렵네요

    2011.02.20 12:44
  4. 엄태민  댓글주소  수정/삭제  댓글쓰기

    엑박이 좀 많은데 수정하실생각은 없으신지..

    2011.04.10 23:31
  5. Favicon of http://ckdwo0605.blog.me BlogIcon Heterotic-E  댓글주소  수정/삭제  댓글쓰기

    해석학공부중에 야코비안이 참임을 증명하기는 했지만 어떻게 도입되었는지에 대해서는 언급이 없어서 찾아보다가 이 글을 보게 되었네요. 좋은 글 잘보고갑니다. 아직 궁금증은 다 채워지지 않았지만요...

    2012.04.14 18:56
  6. 공대3학년  댓글주소  수정/삭제  댓글쓰기

    큐... 봐도모르겠네 대학공부 헛했네 ㅠㅜ

    2012.11.04 22:09
  7. ㅇㅇㅇㄴ  댓글주소  수정/삭제  댓글쓰기

    저기요, 위에 dx1 dx2 dx3 스칼라 값에서 벡터 값으로 넘어가는데 어떤 연산을 한건가요? 왠지 그러할 것이다- 하고 넘어가는 것 같아서 조금 찝찝해요 ㅠㅠ

    2015.10.09 07:15
  8.  댓글주소  수정/삭제  댓글쓰기

    네 저기 위에 벡터표시를 얹어주는 과정이 틀렸는데요?

    2017.07.02 14:43

선형사상(linear map)은 두 벡터공간을 연결하는 특정한 함수의 하나이다. 이 함수를 규정하는 조건은 다음과 같다.


(생각해보니 두번째 줄은 넣지 않아도 되었을 듯)
선형사상은 항상 적절한 행렬로 나타낼 수 있다는 것이 알려져 있다.[각주:1] U와 V는 벡터공간이므로, 각 공간의 기저(basis)를 임의로 정할 수 있다. 각 공간의 차원을 m, n이라고 부르고 벡터를 어떤 고정된 기저의[각주:2] 선형조합으로 나타낼 때 각 성분을 열벡터로 쓰자. 예시;


출력되는 벡터도 마찬가지로 써 준다.(이번에는 n개의 행을 가진 열벡터가 된다.) 다음, 선형사상의 정의를 고려해서 출력값을 다음과 같이 써 준다.


이제 각 기저벡터의 상(image)을 열벡터로 나타내준다. 각 기저벡터의 상을 b_i라고 쓰자.


이제 x의 상은 다음과 같아진다.


이 연산은 행렬로도 쓸 수 있다.


b_i는 n×1 열벡터이기 때문에 선형사상 f는 n×m 행렬이 된다.



재미있는 사실은 이 선형사상을 텐서의 일종으로[각주:3] 볼 수 있다는 것이다.(물론 차원이 조금 이상하기는 하지만)

먼저 사상을 F라는 행렬로 쓰자. 그리고 F라는 행렬을 만드는데 쓰였던 상의 기저를 Y라는 집합으로, 전상(preimage)의 기저를 X라는 집합으로 쓰자. 상을 열벡터 y로, 전상을 열벡터 x로 쓴다면 위의 방정식은 다음과 같다.


이제 전상의 기저(X→X')를 바꾸어보자. 벡터 자체는 그대로 있지만 기저를 바꾸어서 그 벡터를 나타내는 숫자를 변경하는 것이다. 어차피 벡터의 표현 형식보다는 벡터 자체의 성질이 중요하기 때문에 원상의 기저를 바꾼다고 해서 상이 바뀔 이유는 없다. 그리고 상 자체는 그대로 있기 때문에, 상을 나타내는 기저가 바뀌지 않는 한 벡터 y는 바뀔 이유가 없다. 먼저 기저를 바꾸어서 x로 측정되던 벡터가 이제는 x'으로 측정된다고 하자.[각주:4] 이렇게 기저를 바꾸어주는 행렬을 T_x라고 쓰자.


그러면 사상 F가 변해야만 상이 y로 제대로 나올 수 있다. 단순히 F에 x'을 곱한다고 y가 나오지는 않으니 말이다. 기저 X를 새로운 기저 X'으로 쓸 때 사상을 나타내는 행렬을 F'이라고 하자.[각주:5] 물론 사상 자체가 바뀌지는 않았지만 숫자는 바뀌었다. 의외로 F'를 구성하는 숫자들은 간단하게 얻을 수 있다.


이번에는 상의 기저(Y→Y')마저 변했다고 치자. 벡터 y를 나타내는 숫자는 다음과 같이 변한다.


이렇게 되면 사상을 나타내는 행렬마져도 변하게 되는데, 이 행렬은 F''으로 쓰자. 처음처럼 간단한 형식을 유지하고 싶으면 다음과 같이 숫자를 변경하면 된다.


선형대수학을 공부한 많은 사람은 무언가 비슷한 식을 기억하고 있을 것이다. 위 식은 유사변환(similarity transform)의 전 형태이다. 상과 전상의 차원이 같고 둘 다 같은 기저만을 쓰도록 한다면 T_y와 T_x가 똑같기 때문에 유사변환이 된다.

이 글을 읽고나면 텐서의 정의를 읽기 조금은 쉬워질지도 모르겠다. 위에서 쓴 것을 좀 더 일반적으로 쓴 것이 텐서의 변환이기 때문이다. 역행렬이 곱해지는 것은 covariant의(아래쪽에 인덱스가 붙는 형태) 성질이고 그냥 행렬이 곱해지는 것은 contravariant의(위쪽에 인덱스가 붙는 형태) 성질이다.[각주:6] 나중에 tensor(2)를 쓰게 되면 정리하겠다.(과연 언제이려나)
  1. 선형대수학이 행렬학인 이유 [본문으로]
  2. 계속 같은 기저를 이용해 벡터를 측정한다는 말이다 [본문으로]
  3. 양쪽을 동일한 성질(covariant 또는 contravariant)의 벡터라고 할 때 (1,1) 텐서이다. [본문으로]
  4. 벡터가 변한 것이 아니라 벡터를 나타내는 숫자가 변한 것이다. 예를 들어 xy평면에서 (1,0)에 있는 점은 축을 시계방향으로 90도 돌리면 (0,1)에 있게 되지만, 축이 돌아간 것일 뿐 점 자체가 이동한 것은 아니다. 여기서는 (1,0)이 x에 해당하고, (0,1)이 x'에 해당한다. [본문으로]
  5. y=F'x'으로 쓰고 싶은 상태 [본문으로]
  6. 링크된 글에서는 엄격히 말하자면 contravariant 성분이 둘인 (2,0)텐서로 써야 했지만 귀찮아서 covariant로 써버렸다. [본문으로]

'Mathematics' 카테고리의 다른 글

Power Set에 대한 잡담  (10) 2010.03.15
야코비 행렬(Jacobian matrix)  (12) 2010.02.24
선형대수와 행렬  (0) 2010.02.04
루빅스로 배우는 군론  (0) 2010.01.27
무한대의 비교: 자연수와 실수  (0) 2010.01.13
Laplace 변환을 이용한 미분방정식 풀이  (2) 2009.12.17

댓글을 달아 주세요

1 

글 보관함

카운터

Total : 654,568 / Today : 10 / Yesterday : 49
get rsstistory!