부의 추월차선


인터넷 검색을 하던 중 우연히 발견한 책이다. 이 책을 추천하던 사이트가 꽤 괜찮은 사이트 였던 걸로 기억한다. 해서 주저 없이 바로 서점으로 가서 사버렸다. 보통 책을 사서 읽으면 잘 읽히는 책과 잘 읽히지 않는 책이 있다. 이 책은 읽기 시작하자마자 급속도로 빨려들어가는 느낌과 함께 너무나 잘 읽혔다. 아마도 현실적인 문제를 다룬 데다가, 요즘 나의 관심사와 잘 맞아 떨어져서 그런 것 같다. 


책 표지에 나와 있듯이 저자가 주장하는 슬로건은 부자가 되어도 젊어서 되어라! 이다. 다 늙어서 부자되면 뭐하냐. 몸이 말을 듣지 않아 부를 즐길 수가 없는 것을. 전적으로 동의하는 바다. 다만 그 방법을 몰라서 자본가들의 노예와 같은 삶을 하고 있을 뿐 ㅋㅋ


책에서는 크게 세 가지 길을 걷는 사람을 묘사했다. 인도, 서행차선, 추월차선이 바로 그것인데, 인도를 걷는 사람들은 가난을 면치 못하는 사람들, 서행차선은 열심히 직장생활을 하며  저축도 하고 절약하며 부를 차곡차곡 쌓는 사람들, 마지막으로 추월차선을 걷는 사람들은 일반 사람들과는 달리 엄청난 부를 쌓아서 부와 자유를 만끽하는 사람들이다. 각각의 길을 걷는 사람들을 언급하고 그들의 특징을 잘 묘사하였다.


아마 대부분의 사람들이 서행차선을 걷는 사람들일 것이다. 특히 우리 나라 사람들이 이 길을 걷는 경우가 많을 텐데, 정말 누구보다도 열심히 살고 아끼고 저축하며 차곡차곡 돈을 모으는 그런 사람들이다. 사실 요즘엔 이마저도 쉽지 않은 것이 사실이다. 그렇게 열심히 살아도 노후는 보장이 되지 않고, 평생 빚만 갚으며 살아가야 하는 것이 현실이다. 이는 비단 우리나라 뿐만 아니라 전 세계적인 현상이긴 하지만, 좁은 땅덩어리와 높은 인구밀도에 따른 높은 경쟁, 거기에 여러 가지 사회적, 정치적 문제 때문에 그 정도가 심화되어 나타나는 것 같다. 


어쨋든 저자가 주장하는 바는 서행차선을 걸으며 평생 빚만 갚으며 노후를 맞이 하지 않으려면 추월차선으로 노선을 바꿔야 한다고 주장한다. 제안된 여러 방법들에 대한 핵심은 내가 직접 몸으로 뛰지 않더라도 나를 위해 일을 해서 부를 지속적으로 늘려줄 수 있는 시스템을 만드는 것이다. 이를 테면 많은 자본이나 부동산 등을 통한 이자 수익, 사업을 통한 성공 등이다. 이렇게 말만 들으면 누군가는 그럼 애초에 금수저 물고 태어나던가, 아니면 로또에 당첨을 되던가, 사업을 성공해야 하는데 그게 어디 쉬운 소린가? 라고 할 것이다. 물론 이 모든 것들은 쉽지 않다. 그러나 중요한 것은 당장에 돈이 없더라도, 서행차선식 사고 방식을 탈피하여 추월차선식 사고방식을 갖추는 것으로부터 시작하는 것이다. 이 추월차선식 사고방식의 중심엔 바로 자유와 시간이다. 필자가 평소에 생각해왔던 것들과 상당히 비슷한 면들이 많이 있긴 했지만, 책의 저자가 주장하는 것들은 객관적으로 봐도 꽤 설득력이 있다. 물론 필자는 많은 부분에 있어 동의하는 바다. 게다가 실제로 30대에 크게 성공하고 람보르기니를 끌며 이미 은퇴를 해버린 저자가 쓴 책이기 때문에 스스로 본인의 논리와 가설을 뒷받침 할만한 근거를 이미 마련한 셈이다. 


어떤 사람들은 서행차선식 사고 방식과 삶에 이미 만족하며 살고 있을 것이다. 혹은 어떤 사람들은 인도, 혹은 서행차선식 삶을 살고 있으나 현실에 만족하지 못하고 있을 것이다. 현재의 삶에 만족을 하고 있다면 그대로 살면 될 것이고, 만약 만족하지 못한다면 우선 현재의 사고방식에서 탈피할 필요가 있다. 그렇지 않으면 지금 이 생활이 그대로 지속될 테니까. 그리고 그 다음으로 이것이 없다면 바뀌는 것은 아무 것도 없다. 약간 진부하게 들릴지 모르겠지만, 바로 실천이다. 


이번 강의는 행렬식(Determinant)에 관한 마지막 강의다. 이번에 알아볼 내용은 determinant가 기하학적(geometrical)으로 어떤 의미를 갖는지에 대해서 알아볼 것이다. 미리 결론부터 언급하자면 행렬식(determinant)은 기하학적으로 부피(Volume)와 관련이 있다. 즉 2D에서는 넓이를, 3D에서는 부피를 각각 의미한다. 그러나 4차원 이상의 공간은 우리의 상상력을 필요로 하기 때문에 여기서는 2차원과 3차원 행렬에 대해서만 알아볼 것이다. 그 이상의 차원에 대해서는 여러분의 상상에 맡기도록 하겠다. determinant가 공간에서 어떤 의미를 갖는지, 또한 부호는 어떤 것을 의미하는지를 알아보도록 하자. 

 

 

1. 행렬식과 넓이(Determinant and Area)

 

- Area of parallelogram by determinant

 

앞서 언급했듯이 행렬식(Determinant)은 기하학적으로 부피(Volume)와 관련이 있다. determinant가 부피 그 자체이다. 넓게 보면 어떤 상자의 부피가 되지만, 2차원 공간에서는 두 row벡터로 형성되는 평행사변형(parallelogram) 넓이(area)로 표현된다. 정의는 아래와 같다. 

 

 

일단 바로 예를 들어보도록 하겠다. 다음의 2x2크기의 행렬 A를 보자. 

 

 

평행사변형(parallelogram)은 행렬 A의 row 벡터들을 이용하여 정의할 수 있다. 즉 row1이 벡터 v1이고 row2가 벡터 v2라고 생각하면 된다. 반대로 어떤 두 벡터 v1과 v2가 있을 때, 이를 행렬로 만든 것으로 생각해도 될 것 같다. 어쨋든 행렬 A의 row 벡터들을 이용하여 평행사변형을 표현하면 아래와 같다. 

 

Fig. 1 행렬 A의 row벡터들로 형성된 평행사변형(parallelogram)

 

 

Fig. 1의 빨간색 벡터는 행렬 A의 row1, 녹색 벡터는 row2이고, 이 두 벡터의 덧셈과 함께 형성되는 영역, 즉 그림에서 노란색 영역이 바로 두 벡터로 형성되는 평행사변형의 영역이다. 이때 노란색 평행사변형의 넓이는 바로 행렬 A의 determinant와 같다. determinant는 ad-bc=12-2=10이고, Fig.1 의 평행사변형의 넓이는 10인 것을 알 수 있다. 

 

 

 

- Proof 

 

그런데 식 (3)의 determinant가 정말 저 평행사변형의 넓이가 맞을까? 하는 의문이 드는 사람도 있을 것이다. 넓이가 정말 10이 맞는지 평행사변형 공식을 이용해 한 번 증명해보자. 일단 평행사변형의 넓이 공식은? (밑변) x (높이)다. Fig. 1에서 밑변은 v1벡터의 크기가 될 것이고, 높이는 v2에서 v1으로 수직으로 연결한 선이 될 것이다. 

 

Fig. 2 평행사변형의 높이와 넓이 계산

 

Fig. 2의 평행사변형의 높이 $l$은 벡터 v2를 v1에 투영시켰을 때 나오는 투영 벡터인 p를 v2에서 뺀 error벡터와 같다. 이는 Lecture 15-(2)에서 배웠던 투영(projection)을 통해 $l$을 계산하는 방법이다. 그러나 이번엔 간단하게 삼각함수를 이용하여 구해보도록 하자. $l$은 v2의 크기에 v1과 v2의 사잇각의 sin값을 곱해주면 된다. 그러나 여기서 v1과 v2의 벡터 좌표만 알고 두 벡터 사이의 각도는 알려져 있지 않다. 그러나 두 벡터의 내적(dot product)을 통해 사잇각을 구할 수 있다. 이와 관련된 내용은 앞서 언급했던 Lecture 15-(2)에 나타나있지만, 한 번 더 써보도록 하자. 

 

 

 

식 (4)을 보면 내적(dot product)공식을 이용해 두 벡터 v1과 v2사이의 각도 $\theta$를 알아냈다. 그리고 알아낸 

$\theta$와 v2의 크기, 그리고 삼각함수를 통해 평행사변형의 높이 $l$을 알아냈다. 이제 평행사변형의 밑변인 ||v1||과 곱해보자. 

 

 

계산 결과 평행사변형의 넓이는 10이다. 우리는 이미 식 (3)에서 행렬 A의 determinant를 통해 Fig. 1과 Fig. 2에서 보인 평행사변형의 넓이를 구하였고, 그 결과는 10이었다. 이는 삼각함수를 통해 계산한 결과와 같음을 알 수 있다. 결과적으로 아래와 같은 정의를 할 수 있다. 

 

 
임의의 2차원 정방행렬(square matrix) A의 행렬식(determinant)은 A의 row벡터들로 형성되는 평행사변형(parallelogram)의 넓이(area)와 같다. 
 


결과적으로 우리는 임의의 (직)사각형 (or 평행사변형)의 코너에 대한 좌표(coordinate)만 알면, determinant라는 훌륭한 공식을 통해 넓이를 간단히 구할 수 있다

 

 

- Area of triangle

 

위의 식 (6)의 정의를 응용하여 삼각형의 넓이도 간단히 구할 수 있다. 아래 그림을 보자. 

 

Fig. 3 평행사변형의 절반의 넓이인 삼각형

 

 

Fig. 3의 노란색 삼각형의 넓이는 평행사변형의 넓이의 정확히 절반에 해당하기 때문에 간단히 determinant에 1/2를 곱해주면 된다. 결과적으로 Fig. 3의 노란색 삼각형의 넓이는 5임을 알 수 있다. 

 

 

 

그런데 만약 삼각형이 원점으로부터 떨어져 있는 경우엔 어떻게 구할 수 있을까? 알다시피 삼각형은 세 개의 꼭지점을 가지고 있고, Fig. 3의 삼각형은 3개의 꼭지점 중에 첫 번째 점이 원점(0,0)에 있다고 볼 수 있다. 이 첫 번째 점이 원점이 아닌 (1,2)에 존재한다고 생각해보자. 아래 그림은 Fig. 3의 삼각형을 원점으로부터 [1, 2]만큼 떨어뜨린 것으로 생각하면 된다. 

 

Fig. 4 원점으로부터 떨어져있는 삼각형

 

 

Fig. 4의 삼각형은 첫 번째 꼭지점이 원점이 아니라 원점으로부터 (1, 2)만큼 떨어져 있다. 이 경우엔 삼각형의 넓이를 어떻게 구할 수 있을까? 일단 각 꼭지점은 원점으로부터의 벡터들로 볼 수 있다. v1, v2, v3가 바로 그것이다. 여기서 삼각형의 각 변의 길이인 a, b, c를 알 수 있다면, 헤론의 공식(Heron's formula)등을 이용하여 삼각형의 넓이는 어렵지 않게 구할 수 있다. 여기서 Fig. 4의 a, b, c는 아래와 같이 각 벡터의 뺄셈의 크기와 같다. 

 

 

 

헤론의 공식을 이용하면...

 

 

 

 

계산 결과 삼각형의 넓이는 5가 되고, 식(7)의 결과와 같은 것을 볼 수 있다. 

 

답을 구하긴 했지만 계산량이 너무 많다. 좀 더 간단하게 구할 수 있는 방법이 없을까? 당연히 있다. 방법은 바로 v1의 위치에 해당하는 꼭지점을 원점으로 끌고 온 뒤, 평행사변형의 넓이를 구하여 1/2를 곱해주는 것이다. 어떻게 끌고올 수 있을까? 벡터 뺄셈을 통해 간단히 끌고올 수 있다. v2-v1의 벡터와 v3-v1의 벡터가 각각 Fig. 3의 v1과 v2이다. 실제로 계산을 해봐도 같은 결과가 나옴을 알 수 있다. v2-v1=[5 3]-[1 2]=[4 1], v3-v1=[3 5]-[1 2]=[2 3]이다. 이들의 determinant를 구하면 평행사변형(parallelogram)의 넓이가 나오고, 1/2를 곱해주면 삼각형의 넓이가 나온다. 결론적으로 원점에서 떨어진 삼각형의 넓이는 벡터 뺄셈을 통해 첫 번째 꼭지점을 원점으로 끌고온 뒤, determinant의 계산을 통해 구한 평행사변형의 넓이에 1/2를 곱하여 계산할 수 있다

 

혹은 세 꼭지점을 나타내는 벡터들을 이용하여 아래와 같이 행렬에 대한 식을 세운 뒤 determinant를 계산하여 원점으로부터 떨어진 삼각형의 넓이를 계산할 수도 있다. 아래 식은 Fig. 4의 삼각형의 꼭지점들로 만든 행렬이다. 

 

 

 

식 (10)의 행렬 A는 각 row 벡터들이 원점으로부터 떨어진 삼각형의 3개의 꼭지점들로 이루어져 있다. 여기에 각 row 벡터의 마지막에 1을 붙여서 3x3행렬을 만들어준다. 그 다음 row1를 제외한 나머지 row 벡터에서 row1을 빼서 마지막 원소들을 0으로 만들어준다. 식 (10)의 우측의 A'은 각 row 벡터에서 row1을 빼서 만든 행렬이다. 다음으로 A'의 determinant를 계산하고 2로 나누어주면 삼각형의 넓이가 나온다. 

 

 

식 (9)에서 헤론의 공식을 이용한 방법보다 훨씬 간단하게 넓이를 계산했다. 식 (10)에서 삼각형의 꼭지점을 이용해 행렬을 만들 때 1을 붙인 이유는 넓이를 determinant의 계산을 통해 풀기 위함이다. 이렇게 하여 determinant를 통해 삼각형의 넓이를 구할 수 있었다

 

 

- Sign of Determinant

 

우리는 앞서 2x2크기의 정방행렬의 행렬식(determinant)이 row벡터들로 이루어지는 평행사변형의 넓이임을 알았다. 그런데 어떤 determinant는 부호가 +인 반면, 어떤 것은 -를 가진다. 넓이가 -값을 가진 다는 것이 언뜻 이해가 가지 않을 것이다. 그렇다면 determinant에서 부호가 의미하는 것은 무엇일까? 아래 그림을 보자. 

 

Fig. 5 determinant의 부호에 따른 좌표계. [Left] determinant의 부호가 +일 때 Right-handed. [Right] determinant의 부호가 -일 때 Left-handed

 

 

determinant의 부호는 volume의 좌표계를 결정짓는다. determinant의 부호가 +일 때 평행사변형은(혹은 사각형, 3차원에선 box) 오른손 좌표계(Right-handed)를, 부호가 -일 때 왼손 좌표계(Left-handed)가 된다

Fig. 5은 determinant의 부호에 따른 좌표계의 변화를 나타낸다. 왼쪽은 기존의 A행렬에 대한 평행사변형을 나타낸다. 이때의 determinant는 10이고 +부호를 가지기 때문에 평행사변형이 오른손 좌표계로 형성됨을 볼 수 있다. 반면 오른쪽은 기존 행렬 A의 row1의 4를 -4로 만들어주었으며, 이때의 determinant는 -4*3-2=-14가 된다. 부호가 -이기 때문에 왼손 좌표계가 됨을 볼 수 있다. 좌표계는 3차원에서 z축을 결정하기 때문에 중요하다. Fig. 5의 왼쪽의 오른손 좌표계는 z축이 화면에서 나오는 쪽으로 형성되고, 오른쪽 그림도 오른손 좌표계였다면 화면에서 들어가는 쪽으로 z축이 형성이 되겠지만, 왼손 좌표계이기 때문에 역시 화면에서 나오는 쪽으로 형성된다. 좌표계는 3차원 행렬에 대한 determinant를 설명할 때 다시 보도록 하겠다. 

 

 

- MATLAB Implementation

 

아래 그림은 MATLAB 구현 코드와 Plot 결과이다. 변수나 row 벡터들의 부호 등을 바꿔가며 테스트 해보길 바란다. 한 가지 더 알아둘 것은 우리는 지금까지 행렬 A의 row벡터들을 평행사변형의 정점으로 하여 넓이를 구하였다. 그렇다면 column 벡터는 정점이 안되는걸까? 물론 가능하다. MATLAB코드의 처음 부분에 주석 처리된 transpose코드 A=A'를 주석 해제하고 프로그램을 돌려보면 된다. 물론 모양은 약간 달라지겠지만, 그 넓이는 같다

 

Fig. 6 MATLAB Plot 결과

 

 

 

 

 

2. 행렬식과 부피(Determinant and Volume)

 

- Volume of a box by determinant

 

첫 번째 섹션에서는 2차원 공간에서 평행사변형(parallelogram)의 넓이(area)를 determinant를 통해 구할 수 있음을 배웠다. 이번 섹션에서는 n차원 공간의 경우를 살펴보자. n차원이라고는 하지만 실제 그림을 통한 표현은 3차원을 대상으로 한다. 4차원 이상에 대해서는 그림을 통해 표현할 길이 없고 그저 상상에 맡기도록 하겠다. 어쨋든 4차원 이상의 공간에서도 어떤 box의 volume으로 생각하자. 

 

어떤 임의의 정방행렬 A의 행렬식(determinant)은 행렬을 통해 표현되는 상자(box)의 부피(volume)을 나타낸다

 

 

우리는 여기서 3차원 공간에대한 것을 이야기 해보자. 어떤 3x3크기의 행렬의 행렬식(determinant)는 상자의 부피를 나타낸다. 아래의 3x3행렬을 생각해보자. 

 

 

행렬 A의 각 row벡터는 우리가 공간에서 나타내고자 하는 상자의 각 정점이 된다. 일단 식 (13)의 A를 공간상에 표현해보자. 

 

 

Fig. 7 행렬 A의 row벡터들이 형성하는 3차원 공간의 box

 

이번 강의에서 우리가 하고자하는 것은 이 row벡터들이 형성하는 어떤 box의 부피를 determinant로 구할 수 있음을 보이는 것이다. 우선 해야할 일은 row벡터들이 형성하는 box가 공간상에서 어떤 모양으로 표현되는지를 알아야 한다. Fig. 7은 식 (13)의 행렬 A의 row벡터들이 형성하는 상자(box)를 3차원 공간에 표현한 것이다. v1은 빨간색, v2는 녹색, v3는 파란색 벡터로 각각 표현하였다. 또한 노란색 영역은 v1과 v2가 형성하는 평행사변형을 의미한다. 파란색 점선 벡터로 표현된 선들을 통해 행렬 A의 row벡터들이 형성하는 상자의 모양을 눈으로 확인할 수 있다. 보다시피 일반적인 cube형태의 상자가 아닌 기울어져 있는 모습이다. 

 

행렬식(determinant)을 계산하여 식 (13)의 행렬 A로 형성되는 상자의 부피를 계산하면 다음과 같다. 

 

 

 

- Proof

 

3차원 공간의 어떤 상자의 부피를 계산하기 위해선 (가로)x(세로)x(높이)를 계산하면 된다. 그러나 Fig. 7에서 보이듯이 일반적인 cube형태의 직사각형 모양이 아니다. 평행사변형 모양으로 벡터들이 기울어져있는 형태이다. 이 경우엔 부피(volume)를 어떻게 구하면 될까? 우선 v1과 v2로 만들어지는 평행사변형의 넓이를 구한 뒤, 높이를 곱해주면 된다. 평행사변형의 넓이는 앞서 구한 것과 같은 방법으로 계산하면 된다. 즉 내적(dot product)을 이용하여 v1과 v2사이의 각도를 알아내고, 두 벡터의 크기와 사잇각에 대한 sin값을 곱해주면 된다. 자세한 방법은 식 (4)와 같은 방법이기 때문에 이를 참고하도록 하고, 값을 계산해보면 아래와 같다. 

 

 

Fig. 7의 평행사변형의 넓이는 9.4868임을 알았다. 이제 높이를 구해서 곱해주면 상자의 부피를 구할 수 있다. 그런데 그냥 단순히 v3의 크기를 곱해주면 되는 걸까? 결론적으로 그냥 곱해서는 안된다. 물론 v3 벡터가 v1과 v2로 만들어지는 평행사변형에 수직(orthogonal)하다면 그냥 v3의 크기를 곱해줘도 무관하다. 그러나 이 경우엔 v3가 수직이 아니기 때문에 그냥 곱해서는 안된다. 실제로 v3가 v1과 v2에 수직이 아님을 알아보는 방법은 v3와 v1, v3와 v2를 각각 내적하여 각도를 알아보면 된다. 

 

 

v3와 v1, v2가 이루는 각도가 각각 59.21도, 97.44도 이기 때문에 수직이 아니다. 그렇다면 실제 높이를 구하기 위해선 어떻게 해야할까? 바로 Lecture 15-(2)에서 배웠던 투영(projection)을 이용하는 것이다. 즉 v3를 v1과 v2로 이루어지는 평면에 투영시켜서 얻을 수 있는 error벡터가 바로 높이가 되는 것이다. Lecture 15-(2)에서 투영을 할 때 우리는 투영 시키는 평면을 column space로 간주했었다. 여기에서도 마찬가지로 v3를 v1과 v2로 형성되는 평행사변형에 투영하는 것이기 때문에 v1과 v2를 column space의 기저(basis)로 간주하고 계산하면 된다. 아래와 같은 식으로 3차원 평행사변형의 높이(height)를 계산하면 된다. 투영에 대한 자세한 사항은 Lecture 15-(2)를 참고하기 바란다. 

 

 

아래 그림은 식 (17)으로 구한 error벡터, 즉 평행사변형의 높이를 나타낸 것이다. 

 

 

Fig. 8 투영(Projection)을 통해 구한 error 벡터. 평행사변형의 높이(보라색)

 

Fig. 8의 보라색 벡터가 v3의 투영을 통해 구한 error벡터이자 평행사변형의 높이를 나타낸다. error벡터는 평행사변형에 수직임을 알 수 있다. 이제 식 (15)에서 구한 노란색 영역의 평행사변형의 넓이와 높이인 error벡터의 크기를 곱해주면 행렬 A로 형성되는 상자의 부피를 구할 수 있다. 

 

 

벡터 연산과 삼각함수를 통해 계산한 상자의 부피는 24이며, determinant를 통해 구한 식 (14)의 부피와 같은 값을 가진다. 따라서 determinant가 상자의 부피를 나타냄을 증명하였다. 

 

 

- Sign of Determinant in box

 

우리는 앞서 행렬식(determinant)의 부호가 좌표계를 결정한다고 배웠다. 즉 determinant의 부호가 +이면 오른손 좌표계(Right-handed)를, 부호가 -이면 왼손 좌표계(Left-handed)를 나타낸다. 예제를 통해 바로 확인해보자. 

 

 

Fig. 9 determinant의 부호에 따른 좌표계 변화

 

Fig. 9는 determinant의 부호에 따른 좌표계의 변화를 나타낸다. 왼쪽은 determinant가 24이고 부호는 +이며 좌표계는 오른손 좌표계(Right-handed)가 된다. 반면 오른쪽은 determinant가 -48이며, 부호가 -이기 때문에 왼손좌표계가 된다. 앞서 설명을 했기 때문에 따로 부연설명을 하진 않겠다. 

 

 

 

3. 행렬식의 특성에 따른 부피(Volume with respect to the Properties of Determinant)

 

우리는 지난 강의 Lecture 18에서 행렬식의 특성 10가지를 배웠다. 이 특성 10가지는 처음 3개의 특성으로부터 유도 됨을 배웠다. 이 3개의 특성이 기하학적으로 어떻게 표현되는지 알아보도록 하자. 

 

 

- prop.(1) :

 

 

첫 번째 특성은 단위 행렬(Identity)의 행렬식(determinant)는 1이라는 것이다. 3x3단위 행렬을 예로 들어보자. 

 

 

행렬 A의 각 row벡터는 식 (19)와 같이 v1, v2, v3가 되고, 이들은 서로 직교(orthogonal)하며 크기가 1인 벡터들이다. 이 벡터들로 형성되는 상자(box)는 어떤 모양일까? 바로 정육면체(cube)의 모습이다. 정육면체의 부피(volume)는 마찬가지로 (가로)x(세로)x(높이)로 구할 수 있는데, 각각의 수치가 모두 1이기 때문에 결과적으로 부피는 1이 된다. prop.(1)을 통해 단위 행렬의 determinant가 1임을 보였고, 단위 행렬로 만들어지는 상자가 기하학적으로도 동일하게 1의 부피(volume)를 갖는 것을 보였다. 결과적으로 임의의 차원의 단위행렬의 determinant는 공간상에서 cube형태의 상자를 나타내고, 이것의 부피는 항상 1임을 알 수 있다. 이를 통해 determinant는 어떤 상자의 부피(volume)와 같음을 알 수 있다. 

 

약간 비슷한 경우의 행렬을 살펴보도록 하자. 우리는 Lecture 17-(2)에서 Q행렬에 대해 배웠다. Q행렬은 알다시피 기존의 특이 행렬(singular matrix)이 아닌 행렬 A로부터 정규직교(orthonormal)한 행렬을 만든 것이다. 그렇다면 이러한 Q행렬은 공간상에서 어떤 모양으로 나타날까? 역시 cube모양이다. 즉 단위행렬로 정의된 cube와 같은 모양이다. 그러나 다른 것은 바로 회전이 된 cube라는 것이다. 아래 그림을 통해 차이점을 확인하자. 

 

 

Fig. 10 단위 행렬(Identity Matrix)과 Q행렬의 기하학적 표현

 

Fig. 10의 왼쪽은 단위행렬을, 오른쪽은 식 (13)의 Q행렬을 3차원 공간상에 표현한 것이다. Q행렬의 cube는 단위 행렬의 cube와 모양이나 크기, 부피 등은 똑같지만, 원점을 중심으로 회전한 형태이다. 결국 단위행렬과 모든 것이 같지만, 회전했다는 것이 다르다. 그러므로 Q의 determinant는 단위 행렬의 determinant와 같이 1이 되어야 한다. Q행렬의 determinant가 1이 된다는 것을 식으로 증명해보자. 

 

 

식 (20.1)에서 Q는 정규직교행렬(orthonormal matrix)이기 때문에 전치(transpose)가 곧 역행렬이 된다. 따라서 이는 단위행렬이 된다. 다음으로 양변에 determinant를 취해주면 식 (20.2)와 같이 되고, (20.3)에서 좌편은 prop. (9)에 의해 분리가 되고, 우변은 prop. (1)에 의해 1이 된다. 마지막으로 식 (20.4)에서는 prop. (10)에 의해 transpose의 determinant도 원래와 같기 때문에 Q의 제곱이 된다. 따라서 Q의 determinant는 1이 된다. 사실 복소수(complex number)까지 고려한다면, 식 (20.4)에 의해 Q의 determinant가 -1이 되기도 한다. 일단 복소수도 고려는 하되, 기본적으로 Q의 determinant는 1이 된다는 것을 알아두자

 

- prop.(2) :

 

다음으로 보일 determinant의 특성은 row을 교환했을 때 부호가 바뀐다는 특성이다. 

 

 

사실 이건 간단하다. 3x3 단위 행렬 A의 row1과 row2를 바꾼 것은 위의 Fig. 10의 왼쪽 cube에서 v1과 v2를 바꾼 것과 같다. 또는 row2와 row3를 바꾸면 Fig. 10에서 v2와 v3를 바꾼 것과 같다. 이렇게 행교환(row exchange)을 한 번만 할 경우, 오른손 좌표계(right-handed)에서 왼손 좌표계(left-handed)로 바뀌는 것을 볼 수 있다. 

 

 

- prop.(3)-1 :

 

prop.(3)-1은 행렬식의 어느 한 row에 상수 t를 곱한 것은 전체 determinant를 구한 다음 거기에 t를 곱해준 것과 같다는 것이다. 

 

 

아래 그림은 단위 행렬을 이용하여 이 특성을 보인 것이다. 

 

 

Fig. 11 determinant의 prop.(3)-1의 기하학적 특성

 

Fig. 11의 왼쪽 그림은 row1에 상수 2를 곱한 것을 나타낸 것이다. row1은 v1에 해당하기 때문에 v1축의 길이가 두 배로 늘어난 것을 볼 수 있다. 직관적으로 생각해봐도 v1의 길이가 두 배로 늘어나면 부피 1의 cube가 두 개인 것과 마찬가지이기 때문에 총 부피는 2인 것을 쉽게 유추할 수 있다. 실제 계산 결과도 2가 나온다. 오른쪽 그림은 row2에 상수 2를 곱한 결과이며, 마찬가지로 총 부피가 2가 되는 것을 볼 수 있다. 

 

 

- prop.(3)-2 :

 

마지막으로 prop.(3)-2를 기하학적으로 어떻게 표현되는지 살펴보자. 

 

 

prop.(3)-2는 3차원으로 표현해도 알아보기 쉽지 않기 때문에 2차원 그래프로 표현하도록 하겠다. 식은 (2)에서 사용했던 행렬을 그대로 이용할 것이다. 우선 식으로 표현하면 아래와 같다. 

 

 

식 (21)은 원래 행렬식(determinant) A의 row1에 [-2  1]벡터를 더한 식을 나타낸 것이다. 이때 두 개의 행렬로 분리한 것을 각각 행렬 A와 행렬 B라고 해보자. A는 기존의 행렬을, B는 [a'  b']과 row2로 만든 행렬을, F는 row1에 [a'  b']을 더한 행렬을 의미한다. det A와 det B는 각각 10과 -8이므로 결과적으로 행렬 F의 determinant는 2가 된다. 이를 그림으로 표현하면 아래와 같다. 

 

 

Fig. 12 행렬식의 특성 prop.(3)-2에 대한 그래프 표현

 

Fig. 12는 식 (21)의 각 넓이를 그래프로 표현한 것이다. 노란색 영역이 원래 행렬 A의 영역, 녹색이 분리된 행렬인 B, 그리고 마지막 하늘색 영역이 A와 B를 더한 결과이다. B를 보면 벡터가 -x방향으로 향해있으며 왼손좌표계(left-handed)의 형태를 보인다. 따라서 B의 넓이에 해당하는 녹색 영역은 음의 값(-)을 가지며, 양의 값을 가진 A의 넓이(determinant)와 더하면 결국 A의 넓이에서 B의 넓이를 빼는 셈이 된다. 결과적으로 식 (21)의 넓이는 하늘색 영역인 2가 된다. Fig. 12에 나타난 그림과 함께 prop.(3)-2를 잘 이해해 보도록 하자. 

 

 

- MATLAB Code

 

아래 MATLAB코드는 3차원 cube를 그리는 데에 사용된 코드이다. 최적화된 코드는 아니므로 참고만 하길 추천드립니다. 앞서 prop.(3)-2에 관련된 코드는 먼저 올린 코드를 약간만 수정하면 어렵지 않게 만들 수 있기 때문에 올리지 않겠습니다. 

 

 

 

 

4. 마치며

 

이번 포스팅에선 행렬식(determinant)의 기하학적 해석에 관한 내용을 다루었다. 기본적으로 2차원 행렬은 어떤 직사각형, 혹은 평행사변형의 정점(vertex)을 나타낼 수 있고, 3차원 행렬의 경우 상자(box)의 정점을 나타낸다. determinant를 이용하여 이 행렬이 형성하는 평행사변형의 넓이(area)나 상자의 부피(volume)를 구할 수 있음을 배웠다. 또한 determinant의 부호(sign)는 좌표계를 나타내는데, +부호인 경우 오른손 좌표계(right-handed)를, -부호인 경우엔 왼손 좌표계(left-handed)를 나타냄을 알았다. 마지막으로 행렬식의 특성 중 가장 중요한 3가지 특성이 공간상에서 어떤 의미를 갖는지 확인하였다. 

 

이상으로 determinant에 관한 포스팅을 마치도록 하겠습니다. determinant에 관한 내용들은 앞으로 다룰 eigenvalue, eigen vector 및 선형 변환(Linear Transformation)등에 대한 이해를 위해서 반드시 필요한 내용이므로 잘 이해하고 넘어가길 추천드립니다. 

다음 포스팅은 다양한 분야에서 응용되고 있는 중요한 개념인 고유값(eigenvalue)고유 벡터(eigen vector)등을 다루도록 하겠습니다. 

 

이번 시간에 다룰 내용은 행렬식(Determinant)과 역행렬(Inverse Matrix)의 관계, 그리고 크래머 공식(Cramer's Rule)에 관한 내용이다. 지난 Lecture 18, Lecture 19에 이어 행렬식을 다루는 세 번째 강의다. 앞의 내용을 잘 학습해 왔다면 어려움 없이 이해할 수 있을 것이다. 

 

1. 행렬식과 역행렬(Determinant and Inverse Matrix)

 

- Determinant with Inverse Matrix

 

행렬식(determinant)의 값은 해당 행렬에 관한 많은 정보를 압축하여 담고 있다. 이러한 determinant가 역행렬과 어떤 관계가 있는지 살펴보자. 우선 다음의 2x2 행렬 A의 역행렬에 관한 식을 살펴보자. 

 

 

식 (1)의 역행렬에 관한 공식은 이공계 학생이라면 한 번쯤 배웠던 공식일 것이다. 필자 역시 수업시간에 배웠다. 대각선 원소 위치를 서로 바꿔주고 b와 c에는 -부호 붙여주고 이 행렬을 ad-bc로 나눠주면 A의 역행렬이 나온다....라고 말이다... 그냥 이렇게 외워버렸다. 이유 따위는 필요 없고 그냥 이렇게 배웠고 이렇게 외워 왔다. 아마 많은 학생들이 이렇게 배워왔을 거라 생각한다. 이제 무작정 외우는 것은 그만하고 역행렬과 determinant가 어떤 관계인지 알아보도록 하자. 

 

식 (1)은 2x2행렬에 관한 식이다. 그런데 우리는 3x3, 4x4, 나아가 nxn의 행렬에 대한 일반적인 식을 알고싶을 것이다. 일단 2x2를 먼저 이해하면 3x3이나 nxn에 대한 실마리를 찾을 수 있다. 

 

식 (1)은 A의 역행렬에 대한 식이며 우변의 어떤 행렬을 A의 determinant로 나눠준다. 여기서 알 수 있는 것은 만약 determinant가 0이면 역행렬은 존재하지 않는다는 것이다. 우리는 지금까지 특이 행렬(singular matrix)인 경우, determinant가 0이 되고 역행렬은 존재하지 않는다고 배웠다. 이는 역행렬을 구할 때 determinant로 나누어주기 때문이다. 

 

이제 우변의 저 이상하게 생긴 행렬을 파악해 보자. 우변의 row1, col1에 위치한 d는 어디서부터 오게 된 것인가? 바로 cofactor이다. 우변의 d는 좌변의 a에 대한 cofactor인 것이다. 바로 지난 강의(Lecture 19)에서 배운대로 행렬 A의 a에 대한 cofactor를 구해보면 먼저 a를 선택하고 a를 중심으로 row와 column의 모든 원소를 지운다. 그럼 b와 c는 사라지고 d만 남는다. 이때 a는 row1, col1에 위치해있고(a11) 이 둘의 index를 더하면 1+1=2의 짝수가 되므로 부호는 +가 된다. 결국 a에 대한 cofactor가 우변의 a자리로 오게 된다. 

 

다음으로 좌변 행렬에서 row1, col2에 위치한 원소인 b의 cofactor를 구해보자. b를 중심으로 row와 column의 원소를 지우면 남는 것은 c인데, 이때 row1, col2이므로 index의 합이 1+2=3의 홀수가 된다. 따라서 b의 cofactor는 -c가 된다. 그런데 왠걸, b의 cofactor자리에는 -b가 자리잡고 있다. -c는 -b의 반대편 대각 원소에 위치해 있으며, -b는 c의 cofactor이다. 그렇다. 우변 행렬의 counter diagonal 원소들이 뒤집힌 것이다. 즉 우변의 행렬은 여인수 행렬(cofactor matrix)의 transpose이다. 식 (1)을 다시 써보면 아래와 같다. 

 

 

C는 원소들이 여인수(cofactor)들로 이루어진 여인수 행렬(cofactor matrix)이다. 원래는 A의 각 원소들의 cofactor가 C의 동일한 위치에 있어야 한다. 즉 a11의 cofactor는 C의 row1, col1에 위치해 있어야 하고, a12의 cofactor는 C의 row1, col2에 위치해 있어야 한다. 그러나 counter diagonal원소들은 전치(transpose)로 인해 뒤집혔다. 행렬 A에서 b의 cofactor는 우변 행렬에서 row2, col1의 위치로, c의 cofactor는 row1, col2의 위치로 말이다. 

 

2x2행렬인 경우엔 식 (2)가 맞음을 확인했다. 3x3인 경우엔 어떨지 확인해보자. 

 

 

식 (3)은 3x3행렬의 역행렬을 식 (2)를 통해 나타낸 것이다. 우변의 행렬은 여인수 행렬(cofactor matrix)이 이미 transpose가 된 행렬이다. 즉 원래의 C행렬에서 대각 원소들을 기준으로 상삼각 원소들과 하삼각 원소들이 뒤바뀐 것이다. 이와 같은 방식으로 nxn행렬의 역행렬도 구할 수 있다. 결국 식 (2)에서 det A부분은 n개 원소들의 곱들로 이루어져 있고, cofactor matrix는 (n-1)개의 원소들의 곱으로 형성된다. 다시말하면 식 (3)에서 det A는 aei -afh... 와 같이 3개 원소들의 곱들로 이루어져 있고, C는 ei-fh와 같이 2개 원소들의 곱으로 이루어진다. 

 

지난 강의(Lecture 3)에서 배운 역행렬(Inverse Matrix)계산 법을 기억하는가? 행렬 A의 우측에 단위 행렬(Identity)을 붙인 다음 가우스 소거(Gauss Elimination)를 통해 A가 단위 행렬이 될 때 까지 함께 소거를 하면, 처음에 붙였던 단위행렬이 A의 역행렬이 되는 방법 말이다. Lecture 3에서 배웠던 방법은 수치적(numerical) 알고리즘으로 역행렬을 구한 것이고, 식 (2)의 방법은 대수적(Algebraic)방법을 통해 구한 것이다. 결국 우리는 어떤 임의의 정방행렬의 역행렬에 대한 공식(Formula)을 구한 것이다. 

 

 

그렇다면 이 역행렬에 대한 공식은 어디서부터 유도 되었을까? 아래 식을 보도록 하자. 

 

 

식 (4)는 사실 식 (2)의 양변에 (det A)A 를 곱해준 식이다. 따라서 식 (4)가 참임을 증명해낸다면 식 (2)는 자연스레 증명이 된다. 일단 식 (4)를 행렬의 형태로 다시 써보면 아래와 같다.  

 

 

식 (5)에서 C transpose의 원소들은 transpose를 했을 때 원래의 원소들이 어디에 위치해 있는지를 표현한 것이다. 또한 일단 3x3으로 썼지만, nxn까지 확장해서 생각할 수 있다. A의 row1은 C transpose의 column 1과 곱해져서 det A가 된다. 이때 C의 column1은 원래는 C가 transpose되기 전의 C의 row1이며, 곧 A의 row1에 대한 cofactor들 이다. 결국 A의 row1과 C의 row1이 곱해져서 det A가 되는 것이며, 아래와 같이 쓸 수 있다. 

 

 

식 (6)을 자세히 보니 뭔가 익숙한 식이다. 바로 지난 강의에서 배웠던 cofactor로 표현한 A의 determinant에 대한 식이다. 결국 C를 transpose한 이유는 행렬의 계산식으로 표현하기 위함이다. 이때 식 (6)은 row1에 대한 determinant의 식이고, 지난 시간에 언급했듯이 어떠한 row라도 가능하다. 즉 A의 row2와 C transpose의 column 2, row3와 column 3와의 내적(dot product)도 동일하게 det A를 나타내는 식이다. 결국 row는 1에서 n까지 어떤 index를 통해서도 det A를 나타낼 수 있다. 

 

식 (6)을 자세히 보면 원소 a와 그의 cofactor를 곱할 때 column의 index는 각각 동일한 것을 볼 수 있다. 식 (5)를 기준으로 보면 대각 원소에 대한 곱은 det A를 나타내지만, column의 index가 다른 원소끼리의 내적은 0이 되는 것을 볼 수 있다. 즉 row1과 col2, row3와 col1과 같이 말이다. 대각 원소들을 제외한 나머지 원소끼리의 내적은 0이다. 왜일까? 왜 이런 일이 발생하는 것일까? 이는 서로 다른 index를 가진 row와 column을 곱하는 것은 똑같은 row를 두 개 이상 가진 특이 행렬(singular matrix)의 determinant를 구하는 것과 같기 때문이다. 맨 처음 2x2행렬에 대한 식 (1)을 식 (4)와 같이 표현해보자. 

 

 

식 (7.1)을 보면 counter diagonal원소들인 (det A)I12와 (det A)I21은 식 (7.2)와 같이 특이 행렬(singular matrix)의 determinant를 구하는 것과 결과가 같다. 따라서 A와 C transpose를 곱할 때 서로 다른 index를 가진 원소끼리 곱하는 것은 결국 어떤 행렬에서 동일한 row에 대한 cofactor를 구하는 것과 같기 때문에 0이 될 수 밖에 없는 것이다. 이는 2x2경우와 마찬가지로 3x3, nxn에서 동일한 규칙이 적용된다. A와 C transpose에 있어 다른 index를 가진 원소들의 내적은 식 (7.2)와 같이 동일한 row에 대해서 cofactor를 구한다는 것을 명심하자. 똑같은 말을 반복했지만,, 잘 이해하고 넘어가길 바란다. 

 

결과적으로 우리는 식 (4)가 옳다는 것을 증명했기 때문에 역행렬(inverse matrix)에 대한 대수적 공식(algebraic formula)인 식 (2)를 증명했다. 또한 우리는 식 (1)~(3)을 통해 다음의 사실도 알 수 있다. 

 

원래 행렬 A에서 어떤 원소 하나만 값이 바뀌어도 A의 역행렬에서 모든 원소가 영향을 받는다. 왜냐하면 determinant의 계산에는 A의 모든 원소의 값이 영향을 주고 있으며, 이 determinant로 여인수 행렬(cofactor matrix)의 모든 원소를 나누어 역행렬을 계산하기 때문이다

 

식 (2)를 잘 알아두자!

 

 

 

2. 크래머 공식(Cramer's Rule)

 

- Cramer's Rule

 

어떤 선형시스템 방정식(Linear system equation) Ax=b가 있다고 해보자. 우리가 구하고자 하는 해 x는 A행렬의 역행렬(Inverse Matrix)을 정의하여 아래와 같이 정의할 수 있다. 이때 앞서 배운 역행렬의 공식 (2)를 통해 역행렬을 다시 정리할 수 있다. (※ 역행렬 공식 (2)는 determinant를 이용하여 정의하기 때문에 정방행렬에만 해당 됨)

 

 

식 (8)과 같이 선형시스템 방정식의 해 x를 역행렬 공식을 통해 정리하였다. 해를 구하는데 있어 일단 determinant를 구해서 뒤의 모든 원소들을 나눠줘야 한다. 그렇다면 C transpose b가 의미하는 것이 무엇일까? 일단 식 (8)을 좀 더 풀어서 써보도록 하자. 

 

 

 

식 (9.1)에서 행렬 C는 transpose된 것을 표현한 것이니 혼동하지 않도록 하자. 이를 계산해보면 C transpose행렬의 row 원소들과 b원소들을 내적(dot product)한 것을 A의 determinant로 나눠준 것이다. 알다시피 C는 행렬 A의 여인수(cofactor)들의 원소들로 이루어져 있고, 결국 벡터 b와 cofactor들과의 내적을 한다. 이렇게 벡터 b와 cofactor들과 내021적을 하게 되면 어떤 식이 될까? 바로 b와 관련된 어떤 행렬 B의 determinant를 구하는 식이 된다. 결국 식 (9.2)와 같이 C transpose의 각 row와 b를 곱하여 x1, x2, ... xn까지 계산하고 해를 구할 수 있다. 그렇다면 이 B행렬은 어떤 행렬일까? 바로 A 행렬에서 하나의 column이 b로 대체된 행렬이다. 왜 그런지 아래 그림을 보자. 3x3행렬로 가정하고 예를 들어보도록 하겠다. 

 

 

x1에 대한 식을 보면 행렬 A에서 column 1이 b로 대체된 상태에서 determinant를 구하는 식이다. 애초에 (9.1)로부터 정리된 식 자체가 c11b1+c21b2+c31b3인데, c11은 사실 A의 a11에 대한 cofactor를 의미한다. a11의 cofactor는 a11을 기준으로하는 row와 column에 있는 원소들을 제외한 n-1크기의 나머지 원소들에 대한 determinant를 의미한다. 식 (10)의 행렬 A를 보면 a11의 cofactor인 c11은 a22a33-a23a32인데, det B1=c11b1+c21b2+c31b3와 같이 되려면 A의 column 1을 b로 교체한 형태의 식이 되어야만 식이 나올 수 있다. 

 

 

마찬가지로 x2와 x3, xn까지의 식들을 살펴보면 순서대로 행렬 A의 column이 순서대로 b로 대체된 형태어 되어야만 하는 것이다. 한 가지만 더 설명해보자면 x2의 식에서 det B2=c12b1+c22b2+c32b3을 보자. c22b2을 보면 c22은 행렬 A에서 a22에 대한 cofactor이다. 이는 식 (10)의 a22를 기준으로 한 row와 column 원소들을 제외한 나머지 원소들, a11, a13, a31, a33에 대한 determinant이다. 이와 같은 형태가 되기 위해선 x2를 구하기 위해선 A의 column 2가 b로 대체 되어야 하는 것이다. 3x3 행렬에 대한 역행렬 식인 (3)을 잘 살펴보면 이해에 도움이 될 것이다. 

 

정리해보면 크래머의 공식은 아래와 같이 정의할 수 있다. 

 



  •   크래머 공식(Cramer's Rule)
크래머 공식(Cramer's Rule)은 임의의 선형시스템 방정식(Linear System Equation) Ax=b의 해(solution) x를 행렬식(determinant)으로 유도된 공식을 통해 푸는 방법이다. 이때 determinant를 이용하여 해를 풀기 때문에 A는 정방행렬(square matrix)이어야 하며 특이 행렬(singular matrix)이 아니어야 한다. 


크래머 공식을 통해 해를 구하기 위해 먼저 아래와 같이 선형시스템 방정식에 대한 해를 A의 역행렬 대신 determinant와 여인수 행렬(cofactor matrix), 그리고 벡터 b의 곱으로 정의할 수 있다. 




해(solution) x의 각 원소들은 결과적으로 determinant들로 정의된 식으로 구할 수 있다. 여기서 det Bj는 원래 행렬 A의 각 column 벡터들을 순서대로 벡터 b로 대체한 행렬의 determinant를 의미하며, j는 1~n까지 지속된다. 



 

 

- Consideration of the Cramer's Rule

 

크래머의 공식은 행렬식(determinant)를 활용하여 A의 역행렬을 구하데에 그 목적이 있다. 역행렬을 구하는 방법 중 하나인 가우스 소거(Gauss Elimination)에 비해 대수적 공식(Algebraic Formula)으로 깔끔하게 정리된 것이다. 하지만 그 효율성 측면에 있어서 크래머 공식은 굉장히 비효율 적이다. 일단 행렬 A에 대한 determinant야 한 번만 계산해서 계속 써먹을 수 있다고 하지만, xn을 구하는 데에 있어서 A의 column을 순차적으로 b로 교체해서 최대 n번 만큼 determinant를 계속 구해야 하는 것이다. 만약 n이 100이라고 하면 최소 100번 이상 100x100짜리 determinant를 계산해야 한다. 아무리 빠른 컴퓨터로 계산한다고 해도 이는 너무 비효율적이다. 역행렬을 구하기엔 차라리 수치적 알고리즘(numerical algorithm)방법인 가우스 소거가 훨씬 빠르고 효율적이다. 따라서 이런 공식이 있다는 것 정도는 알아두면 좋지만, 실제 역행렬을 구할 때는 가우스 소거 방법을 사용하는 것을 추천한다. 

 

 

3. 마치며

 

이번 포스팅에선 행렬식(determinant)과 역행렬(Inverse Matrix)와의 관계를 알아봤다. 어떤 행렬 A의 역행렬은 A의 determinant와 여인수 행렬(cofactor matrix)을 이용하여 구할 수 있다. 이 관계로부터 선형방정식의 해 x를 대수적 방법(Algebraic way)으로 구할 수 있는 크래머 공식(Cramer's Rule)을 유도하였다. 크래머 공식은 determinant를 이용하여 해를 구하는 방법이며 기존의 가우스 소거 방법과는 달리 공식화해서 푸는 방법이다. 그러나 너무 많은 determinant를 계산해야 하기 때문에 계산 측면에서 비효율적이며 실제로는 많이 사용하지 않는다. 역행렬을 구하는 방법은 가우스 소거 방법이 훨씬 효율적이다. 

다음 시간엔 determinant에 대한 마지막 내용인 determinant의 기하학적 해석에 관한 내용을 다룰 예정이다. 

 

+ Recent posts