지난 시간에 행렬의 Row picture와 Column picture에 대해 알아보고 2x2행렬에 대해 2D 공간에서 plot을 통해 그 내용을 이해 하였다. 

좀 더 깊은 이해를 위해 3x3행렬을 3D 공간에서 표현해보자. 

 

아래 3개의 방정식과 3개의 미지수를 가지고 있는 식을 가정해보자. 

x,y와 z까지 가지고 있는 3차원의 방정식이다. 

 

 

우선은 위 식을 이해하고 그 다음 해를 구해야 한다. 

 

어떻게 이해할 것인가?

 

바로 전 시간 공부했던 Row picture가 첫 번째 방법이고, Column picture가 두 번째 방법이다. 특히 Column은 매우 중요하다!

이를 위해 우선 위 식을 행렬 형태(Matrix form)로 만들어 보자. 그리고 위의 두 가지 방법으로 행렬을 이해해본다. 

 

 

 

1. Row picture

 

3개의 방정식 중 가운데 방정식 

이 공간상에서 어떻게 표현되는지를 살펴보자. 이 식과 같이 x, y의 2차원 일 경우는 공간상에서 직선으로 표현되지만, x, y와 z까지 포함된 선형 3차원 방정식일 경우엔 아래 그림과 같이 공간상에서 평면으로 표현될 것이다. 

 

 

 

즉 방정식 

을 만족시키는 모든 해 [x,y,z]는 저 평면위에 존재하는 것이다. 

진짜로 그런가? 라고 생각할 수 있는 사람들을 위해 실제로 solution값을 그려보도록 하자. 

 

우변이 -1이 되도록 만들기 위해선 x=1, y=0, z=0 의 값을 대입하면 될 것이다. 이 외에도 아래와 같은 여러 가지의 해를 직관적으로 살펴볼 수 있다. 

 

x=-1, y=-2, z=-2

x= 0, y=-1, z=-1

x= 0, y= 0, z= 1

...

 

아래 그림은 위 해들을 실제로 plot한 결과이다. MATLAB의 회전 도구를 통해 돌려보면 실제로 해 값들이 정확히 평면위에 존재하는 것을 볼 수 있다. 

 

 

 

 

이제 나머지 Row 방정식들도 함께 표현해보자. 결과는 아래와 같다. 

 

 

 

위의 3평면은 딱 한 점에서 만나게 된다. 그것이 바로 이 시스템(Matrix)의 해이다. 

어떤 두 평면이 평행한 평면이 아닌 이상 반드시 어느 한 점에서 만나게 되어 있다. 

 

시스템의 해 부터 말하자면 해는 (x=0, y=0, z=1)이다. (※ Matlab에서 A\b와 같이 '\' 명령어를 이용하면 해를 구할 수 있음) 

plot3(0,0,1, 'r*') 명령어를 이용해 해를 실제로 그려보면 실제로 모든 평면이 이 점에서 만나는 것을 볼 수 있다. 

 

결론적으로 어떤 3차원 시스템에서 하나의 Row picture (하나의 Row 방정식)는 하나의 평면을 형성하고, 이들은 평행한 평면 등 특수한 경우가 아니라면 어느 한 점에서 만난다. 이 만나는 점이 바로 이 시스템의 해(solution)이다. 

 

아래는 이를 구현한 코드 이다. 

 

 

 

 

 

2. Column picture

 

Row picture는 특히 3차원의 경우 알아보기 어렵다. 이 똑같은 시스템을 이제 Column picture에서는 어떻게 표현되는지 살펴보도록 하자. 

먼저 지난번 포스팅에서 배운것과 같이 위 시스템 (1)을 Column picture의 식으로 나타내면 아래와 같다. 

 

 

좌변이 나타내는 것은 3차원 벡터들선형결합(Linear Combination)이다. 결국 알아내야 할 것은 좌변에서 어떠한 결합이 우변의 벡터를 만들어내는가 이다. 즉 x,y,z에 어떤 적절한 값을 설정해야 우변의 벡터를 만들어 내는가?를 찾는 문제이다. 

마찬가지로 그림으로 그리면 아래와 같다. 

 

 

빨강, 초록, 파랑색 벡터는 각각 x, y, z기준 벡터를 나타내고, 각 column 벡터들은 순서대로 x, y, z에 곱해진 3차원 벡터들이다. 3차원 벡터이기 때문에 화면상으로 감이 잘 오지 않을 수 있지만 Matlab의 그래프 회전도구를 이용해 돌려서 보다보면 감이 올 것이다. 

 

자 그럼 이제 해를 찾아보자. (3)의 식을 다시 보자. 

 

 

가만히 보면 z에 곱해진 벡터가 우변의 벡터와 같은 것을 알 수 있다. 그렇다면 간단히 z의 벡터만 살리면 되겠군! 라고 생각이 들 것이다. x=0, y=0, z=1이면 우변의 벡터와 같아진다. 결국 위 그림에서 청록색 벡터가 해 벡터가 되는 것이다. 

 

어디서 많이 본 벡터인 것 같은데.. 바로 Row picture에서 힘들게 평면의 교점을 찾아 구한 해라는 것을 알 수 있다. 

Column picture에서는 선형결합으로 표현하여 간단히 해를 구할 수 있었다. 

 

 

 

 

한 가지 다른 예를 더 해보자. 우변의 항을 [1 1 -3]이라고 가정해서 식을 다시 써보자. 

 

 

정답이 바로 보이는가? 아마 단번에 보이진 않을 것이다. 

 

우변의 해를 만들기 위해선 간단히 x측 벡터[2 -1 0]T와 y측 벡터[-1 2 -3]T를 더하면 된다(T는 transpose를 의미함). 결국 여기선 x와 y측 벡터만 필요하고 z측 벡터는 필요 없기 때문에 답은 x=1, y=1, z=0이 될 것이다. 

 

그렇다면 여기서 한 가지 생각해 볼 점이 있다. 

식(4)와 같이 이런식으로 모든 경우의 b를 가정해 봤을 때, 예를 들면 b=[-1020, 23301, 32], b=[12322, -33321, 901120], ... 등등 모든 경우의 벡터에 대해서 좌변의 선형 결합으로 우변의 모든 경우의 벡터b를 만들어 낼 수 있는가? 

 

즉 다시 말하자면, 시스템 A에서 좌변의 선형결합으로 공간상의 모든 벡터(혹은 점)를 만들어낼 수 있는가? 

 

이 질문은 정말 정말 중요한 질문이다!! 이후에 배울 Rank, Singular matrix, Invertible matrix등을 이해하기 위해선 이 질문에 대한 깊은 고민이 반드시 필요하다.

 

강의에선 다음과 같은 질문을 칠판에 직접 판서하여 강조한다. 다르게 표현했지만 사실 아래 두 질문은 같은 것을 물어보는 것이다. 

 

Can I solve Ax=b for every b? 

Do the linear combinations of the columns fill 3-D space?

 

위 질문에 대한 답은 지금 우리가 다루고 있는 시스템 A를 기준으로 '그렇다' 이다. 

즉 식(2)의 시스템 A의 column picture를 이용해 만든 선형결합 (3)를 활용하면 공간상에 존재하는 모든 b벡터를 만들 수 있는 것이다. 

 

그렇다는 것은 시스템 A matrix는 non-singular matrix이며 invertible matrix이다. 

시스템 A가 위의 성질로 정의되며 공간상의 모든 벡터 b를 만들 수 있는 것은 바로 A의 column picture의 벡터들이 서로 다른 평면에 존재하기 때문이다. 

 

 

이 말이 잘 와닿지 않는 사람들도 있을 것이다. 이런 사람들을 위해 이 부분에 대해 좀 더 자세하게 설명해 보겠다. 

 

위 그림에서 각 벡터들 v1=[2 -1 0], v2=[-1 2 -3], v3=[0 -1 4]은 3차원 공간상에서 각기 다른 평면에 존재한다. 

그런데 만약 아래와 같이 v3=[1 1 -3]인 경우는 어떻게 될까? 

 

 

눈치 채신 분들도 있겠지만 v3=v1+v2이다. 이것이 의미하는 것은 시스템 A에서 어떤 한 column 벡터가 나머지 두 벡터의 선형결합으로 이루어진 경우고 이는 공간상에서 v3는 v1과 v2가 이루는 평면 위에 놓여져 있다는 의미다. 

 

식 (5)를 실제로 그려보면 아래와 같다. 코드를 실행시키고 그래프 회전 도구를 이용해 돌려보면 아래 오른쪽 그림과 같이 v3가 v1과 v2로 이루어지는 평면위에 존재하는 것을 알 수 있다. 

 

 

 

이 경우 시스템 A는 어떤 선형조합을 해도 노랑 평면을 벗어날 수 없다. (평면의 범위는 그림대로가 아니라 무한대로 생각해야 함)

결국 식(5)의 시스템 A는 2차원으로 그 범위가 한정되며 이 경우를 Rank가 2다 라고 한다. 

Rank는 어떤 시스템에서 선형 독립(Linearly independent)한 Row vector 혹은 Column vector의 개수를 의미하며 자세한 내용은 이후 관련된 포스팅에서 자세하게 다룰 예정이다. 지금은 그냥 이런게 있구나 정도만 알아도 될 것 같다. 

 

4차원 이상부터는 그림으로 표현하기 어렵지만 4차원, 5차원, ... 9차원 등 더 높은 차원에 대해서도 이 룰은 똑같이 적용된다. 

아래는 Column vector를 구현한 코드이다. 

 

 

 

3. 마치며..

 

어떤 시스템을 표현하는 Matrix form A가 있고 이 시스템 행렬을 미지수 벡터 x와 곱하여 b라는 결과를 만드는 식이 아래와 같이 존재한다. 

 

 

이때 미지수 벡터 x를 시스템 행렬A에 어떠한 방법으로 곱할것인가?를 봤을 때 우리가 지금껏 배운 것 처럼 크게 두 가지 방법이 있다. 바로 Row와 Column방법이다. Row 방법은 다른 말로 내적(Dot product)이며, Column 방법은 선형결합(Linear Combination)이다. 

 

Row picture는 공간상에서 선(Line) 혹은 평면(Plane)으로 표현되며

Column picture는 공간상에서 벡터(Vector)들의 조합으로 표현된다. 

Strang교수는 두 가지 방법 중 Column 방법을 선호한다고 한다. 

 

Row picture -> Dot product, Line(2D) or Plane(3D)

 

 

 

Column picture -> Linear Combination, Vectors

 

 

 

 

지금까지 우리는 어떤 시스템 A를 Row와 Column으로 각각 해석하고 공간상에 표현해 보았다. 

이를 통해 각 방법이 어떤 의미를 가지는지, 공간상에서 어떻게 표현이 되는지, 그리고 실제로 어떻게 구현하는지를 알 수 있었다. 

 

 

이상으로 Lecture 1을 마칩니다. 

 

+ Recent posts