row reduced form R? 이게 뭐지 싶을 것이다. 기다려라. 다 설명할 예정이다. 이전의 포스팅에서 말했듯이, 이번에는 조금 특별한 방법으로 Ax = 0과 Ax = b를 풀어보려고 한다. 그 특별한 방법이라는 것이 row reduced form R을 이용하려는 것이다. 조금 더 정확한 표현으로 row reduced echelon Form이다. MATLAB command rref(A)로 계산할 수 있다고 한다.


우선 row reduced echelon form이 뭔지 알아보자. 


U를 만들기 위해서 우리는 row1을 2배하여 row2에서 뺐고, row1과 row2를 더한 것을 row3에서 뺐다.여기서 한 발자국 더 가보자.


row2를 row1에서 빼버리고, row2에 대하여 1/2배를 곱했다. 이 형태가 row reduced echelon form이다. (참고로 echelon은 계단식? 정도의 뜻이 되겠다.행렬이 계단식으로 되어있다는 의미에서 선택한 단어인가보다.) row2에 대하여 1/2배 한 것은 어짜피 나중에 Ax = b나 Ax = 0을 풀때 양번에 1/2배 하는 것은 문제가 안 되기 때문이다.


자, Ax = 0이었으므로 Rx = 0이겠지? 지금 이 상태에서 한번 Null Space를 구해보자.(Null Space라는 것이 결과 Rx = 0을 푸는 것과 동일한 말이라는 것을 이전 포스팅에서 설명했었다.)

여기서 Pivot Column은 Column1과 Column3이다. A행렬의 Column1과 Column3을 pivot으로 하여 수차례 Elimination 한 것이 R이라는 것을 기억하자.

그리고 Pivot Column 이외의 모든 Column은 Free Column이라고 명시한다. Free라는 단어를 쓴 이유는 어느 값이 들어와도 된다는 뜻인데 그 이유를 밑에서 확인해보자.

Pivot Column : Column1, Column3

Free Column : Column2, Column4


이제 진정한 의미의 Free variable을 설명할 수 있다. x2와 x4는 Free하다 왜냐하면 아무 값이나 들어갈 수 있기 때문이다. (1,0), (2,5), (1000,-2), ....등등 모든 값이 가능하다. 따라서 위와 같은 A일 때 우리는 ∞개의 답을 얻을 수 있다는 것이다. 조금 더 Linear Algebra 스타일로 말을 하면, Free Column의 모든 Linear Combination이 Ax = 0의 답이 된다는 것이다.


Ax = 0을 풀어봤으므로, 이제 Ax = b를 풀어보자. 물론 row reduced echelon form으로 말이다. 기본적으로 Ax = b에서 b는 Column space A의 Linear Combination이 된다. 이것을 생각해보고 아래의 풀이를 봐보자.

위에서 정한 b = (1,3)을 만족하기 위한 X는 Xp + Xn의 모든 조합이라는 말이다.


자 일단 뭔가 풀긴 풀었는데, 왜 굳이 우리는 다른 방법으로 이 Ax = b를 풀 이유가 있었을까? 일단 row reduced echelon form을 왜 필요로 하는지부터 알아보자. 내가 생각하는 이유는 아래와 같다.

1. row reduced echelon form은 pivot column이 1인데, 어짜피 계산하다보면 나중에 1로 만들게 되어있더라. 미리 해준다는 입장에서 필요한 것 아닌가?

2. free variable을 직관적으로 알 수 있게 해준다. 왜냐하면 pivot column이외의 모든 column이 free column이고 이 free column과 곱셈을 하게 될 x의 row들이 free variable이 되니까.


Ax = b를 row reduced echelon form을 이용해서 풀 때, A라는 mxn 행렬에 대하여 특정짓지 않았다. 한번 특정 지어보자. 네가지 경우가 나올 수 있다. (밑에서 r은 rank라고 하여 pivot의 개수를 의미한다.)


1) r = n = m


2) r = n < m

이 경우에는 항상 0개 또는 1개의 solution을 가지게 된다. 0개의 solution일 경우는 마지막 행에서 0 = 3과 같은 이상한 식이 나와버리면 값을 solution이 없을 것이고, 0 = 0일 경우에는 Ax = b를 만족하는 오로지 하나의 solution이 나오게 된다. (직접 해봐라! 하나밖에 안 나온다는 것을 알 수 있다.)


3) r = m< n

이럴 경우는 값이 1개 또는 ∞개의 값을 얻을 수 있다. 왜 ∞가 가능할까? F가 있기 때문이다. F는 무엇인가? Free variable이다. 아까 위에서 설명했던, 아무거나 대입해도 되는 variable이다. 따라서 실수 아무거나 집어넣으면 그것을 만족하는 Ax = b를 Linear Combination으로 찾을 수 있다는 얘기가 된다.


4) r < m, r < n

위의 식에서 Column 1과 Column 3이 I의 형태를 띈다. 그래도 I F와 같이 표현한다. 물론 결과값도 섞여있는 형태로 나오게 된다. 아무튼 이와 같은 형태는 값이 0개 또는 ∞개 얻을 수 있다. 알아서 계산해봐라. -_-


위에서 3번과 4번은 R의 형태에 Free column space가 들어가게 되고 이렇게 되면 값이 ∞개가 나올 가능성이 생기게 된다. 자 이제 우리는 A의 형태와 r의 형태만 보면 Ax = b가 가질 수 있는 값의 가능성을 알게 되었다.


매우 Quick하면서도 직관적이다. 아마 이것을 알기 위해서 MIT 강의에서 무려 3개의 강의에 걸쳐 이것을 설명한 것이 아닌가 싶다. 다음 포스팅은 뭐가 될지 아직 모르겠다. 왜냐면 아직 강의를 안 들었거등. -_- 아무튼 뭐가 되었든 금방 올라옵니다. 


빨리 Linear Algebra 끝내버려야지...

Posted by 빛나유

댓글을 달아 주세요

  1. 오타 2015.10.29 23:48  댓글주소  수정/삭제  댓글쓰기

    4번째 사진에 x=[-2x2+2x4, x2, -2x3, x4]에서 -2x3가 아니라 -2x4인 것같습니다.
    좋은 자료 감사합니다.^^

미리 예고했듯이 이번 포스팅에서는 Vector Space, Subspace, Null Space에 대해서 이야기해보려고 한다. 우선 Vector Space가 무엇인지부터 알아야 될 것 같다. 


Vector Space는 말 그대로 Vector들이 이루고 있는 공간이다. 우리 머리 속에서 가장 편하게 이해할 수 있는 2-Dimensional Space를 생각해보자. a = (a1,a2), b = (b1,b2)가 있다고 해보자. 그렇다면 Vector Space의 정의는 Vector addition과 Scalar Multiplication에 대하여 닫혀있는 공간을 말하는 것이다. Vector a와 Vector b를 더하면 a + b = (a1+b1,a2+b2)가 된다. 지금까지 a1, a2, b1, b2에 대한 조건(가령, 0보다 크다 또는 작다 등등)은 아무것도 없는 상태이다. 그렇다면 Vector a + b는 2차원 공간 xy축의 모든 영역을 표현하게 된다.

이와 같이 모든 2차원 공간을 R2라고 하자. 마찬가지로 a = (a1,a2,a3), b = (b1,b2,b3)와 같다면 Vector Space는 R3가 되며 3-Dimensional Space가 된다. mathworld.wolfram.com에서 Vector Space의 정의를 찾아보면 아래와 같이 되어 있다.


A vector space V is a set that is closed under finite vector addition and scalar multiplication. The basic example is n-dimensional Euclidean space R^n, where every element is represented by a list of n real numbers, scalars are real numbers, addition is componentwise, and scalar multiplication is multiplication on each term separately.


Vector Space의 정의를 공부했으니 Subspace를 알아보자. Subspace는 상위 Vector Space 아래 속해있는 공간을 의미한다. 가령 R2라는 공간 안에서 x = y라는 직선을 생각해보자. 이 직선은 항상 (a,a)를 이룬다. 이 Vector는 Vector addition에 대하여 닫혀있다. 가령, (1,1) + (3,3) + (4,4) = (8,8)을 보면 (8,8) 역시 (a,a)에 속한다. 그리고 (a,a)에 어떤 숫자를 Scalar Multiplication을 해도 (a,a)를 이룬다. 따라서 (a,a)는 Subspace이다. 

Vector Space와 Subspace는 기본적으로 Vector Addition과 Scalar Multiplication에 대하여 닫혀있는지에 따라 결정된다. 한 가지 예를 더 들어보자. (0,0) Zero Vector이다. 이것은 Subspace인가? 당연하다. (0,0), (0,0,0), (0,0,0,0) ... 모든 Zero Vector들은 Subspace이다. 그렇다면 예를 들어, (1,0)과 같은 Vector는 어떨까? 이것은 Subspace가 아니다. (1,0) + (1,0) = (2,0) 단순 Vector Addition만으로도 (1,0)에 속해있지 않으니까. 그런데 (a,0)은 Subspace이다. Vector addition이나 Scalar Multiplication에 닫혀있기 때문이다.

Subspace에 대한 몇 가지 예제를 또 들어보자.


그런데 여기에서 a, b, c에 0보다 크다라는 조건을 집어넣으면 어떻게 될까?

행렬에 음수 Scalar Multiplication을 하면 다른 Space에 속하게 된다. 따라서 위의 경우는 Subspace가 아니다.


이제 Null Space에 대해서 이야기해보자. Null Space의 정의는 Ax = 0을 만족시키는 Vector Space x 이다. 가령 아래와 같다.


다른 경우를 생각해보자.


Null Space에 대한 이야기도 끝냈으니, 이제 한가지만 더 이야기해보자. Column Space이다. Column Space의 정의는 모든 Column들의 Linear Combination이다. 아래의 예를 보자.


지금까지 계속 Space에 대한 이야기를 계속했던 것은 다음 포스팅에 대한 기본지식을 알려주기 위함이었다. 다음 포스팅에서는 Ax = 0을 조금 특별하게 풀어보려고 한다. 더 나아가 같은 방법으로 Ax = b도 풀어보려고 한다.

Posted by 빛나유

댓글을 달아 주세요

  1. 와.. 2015.10.05 07:49  댓글주소  수정/삭제  댓글쓰기

    쉽게 이해가 갔네요. .

  2. 대박 2016.04.15 19:24  댓글주소  수정/삭제  댓글쓰기

    헐.. 대박
    진짜 설명 잘하시네요~~

  3. 진짜.. 2016.10.26 03:06  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다.. 이해가 엄청 잘 되요!

  4. 감사감사 2016.12.14 23:42  댓글주소  수정/삭제  댓글쓰기

    책보다 훨씬 이해 잘되네요ㅜㅜ 감사합니당

  5. 2017.09.24 16:47  댓글주소  수정/삭제  댓글쓰기

    와 정말 감사해요!!!

  6. 2017.09.24 16:47  댓글주소  수정/삭제  댓글쓰기

    와 정말 감사해요!!!

오늘 포스팅은 Elimination with matrices!! 즉, 소거법이다. Linear Algebra 가장 처음 포스팅에 잠깐 소개한 적이 있었다. 우리는 이 방법에 대해서 조금 더 다양하게 이것 저것 공부해보려고 한다.


우선, 하나의 식을 보자.


Ax = b


우리가 앞으로 수 없이 보게 될 식이다. 가령 아래와 같이 예를 들 수 있다. 이것을 우리가 Elimination을 이용하여 풀어보자.


여기서 Elimination Matrix라는 개념을 생각해보자. 위의 행렬에서 (a)에서 (b)로 갈 떄, Elimination 행렬을 곱해주는 방식이다. (a)식 양변에 Elimination 행렬을 곱해준다는 개념이다.


(a)식의 양변에 곱해준 행렬은 2x2의 Identity 행렬에서 2행1열을 -2로 바꾼 행렬이다. 앞으로 우리는 이와 같이 nxn의 Identity 행렬의 i행 j열을 변경한 Elimination 행렬을 Eij로 표기하겠다. 2행 1열에 -2를 넣으므로서 (a)행렬에 어떤 영향을 주었는지 잘 살펴보자. 2행 1열이 0으로 제거되었다. 이와 같이 i행 j열에 특정 숫자를 넣어주므로서 A의 i행 j열을 삭제해주는 것을 Elimination 행렬(Eij)라고 한다. 따라서 위의 식은 아래와 같이 다시 쓸 수 있다.


이번에 Linear Algebra를 MIT강의를 들으면서 공부하고 있다. 아시는 분들은 아시겠지만, MIT의 일부 강의는 무료로 공개되어있어서 인터넷을 통해 들을 수 있다. 들으면서 느낀 것은, 무언가... 성질을 중요시 여긴다는 것? E21을 양변에 곱했을 때 나타나는 현상, 즉 행렬의 2행1열이 사라지는 현상을 공부하드라. 나는 그저 행렬 곱샘만 할 줄 아는데... 아무튼 E21은 그런 의미이다.


그 다음 이야기 할 내용은 A = LU이다. L?? U?? L은 Lower Triangular Matrix,  U는 Upper Triangular Matrix이다. 결국 A - LU는 A라는 행렬이 Lower Triangular Matrix와 Upper Triangular Matrix의 곱으로 표현될 수 있다는 것이다. 항상? 모든 A에 대해서 LU가 가능한가? 그건 아니다. 일련의 조건이 있나보다. 그런데 거기까지는 공부하지 않았다.


사실, A = LU를 공부하는 것은 궁극적으로 Ax = b를 풀기 위함이다. 자 A = LU를 Elimination 기법을 통해 풀어보자. 아래의 식을 예로 보자.


자, A라는 행렬이 최종적으로 L과 U의 곱으로 표현이 되었다. 결과값 L과 U를 이용해서 Ax = b를 어떻게 풀까?


위에서 A = LU를 설명했던 실제 예제를 통해서 이해해보자.


지금까지 블로그를 운영해오면서 계속 컴퓨터 관련된 이야기만 하다가 갑자기 수학을 하려니까 코드가 보고 싶어지지? A = LU와 Ax = b를 계산해주는 프로그램을 MatLab으로 작성해봤다. 


# A = LU


# Ax = b


간단한 코드이지만 i, j, k 숫자가 조금 헛깔려서 좀 오래걸렸다. 아무튼 Ax = b를 Elimination 기법을 통해서 풀어내는 방법을 이번 포스팅에서 설명했다. 다음 포스팅에서는 Vector Space, Subspace, Null Space에 관하여 이야기 해보도록 하겠다.

Posted by 빛나유

댓글을 달아 주세요

  1. 나그네 2016.04.19 23:31  댓글주소  수정/삭제  댓글쓰기

    포스팅 잘봤습니당
    질문잉 있는데
    5번째 그림의 b는 L의 factor를 갖고있다는 의미가 무엇인지 모르겠습니다

  2. 나그네 2016.04.20 12:17  댓글주소  수정/삭제  댓글쓰기

    앗 그리고 4번째그림에서
    E32E31E21 = [1 0 0;-3 1 0;-2 0.2 1]이 아니라
    E32E31E21 = [1 0 0;-3 1 0;-2.6 0.2 1]아닌가용?