지난번 포스팅에서는 계수(rank)의 개념에 대하여 알아보았습니다.

 

이번 포스팅에서는 행 사다리꼴(Row echelon form)과 계수(Rank)를 이용해서 선형연립방정식 해의 존재성(existence)과 유일성(uniqueness)을 알아보는 방법을 소개하겠습니다.

 

이전의 가우스 소거법이나 행렬식(determinant), 계수(rank) 등에 대해서 포스팅했던 내용과 일부 겹치기도 하는데요, 해의 존재성과 유일성이라는 관점에서 다시 한번 정리를 해보겠습니다.

 

 

먼저 n개의 x1, ... xn변수와 m개의 연립방정식이 있다고 했을 때(아래 그림의 왼쪽 상단), 이를 행렬로 표기하는 방법은 아래 그림의 우측 상단과 같습니다. 

 

 

  

 

 

 

a11, ..., amn은 이 연립방정식의 계수(coefficient)라고 합니다 (Rank도 계수라고 해서 좀 헷갈리는 부분이 있습니다...)  이들 계수(coefficient)로만 이루어진 행렬을 위 선형연립방정식의 계수행렬 (coefficient matrix)라고 하며, 위의 그림의 왼쪽 하단에 있는 행렬이 되겠습니다.

 

이 계수행렬의 우측에 연립방정식의 우변의 b1, ..., bm 을 추가한 행렬을 위 연립방정식의 첨가행렬(augmented matrix)라고 하며, 위 그림의 우측 하단에 있는 행렬이 되겠습니다.

 

 

계수행렬 또는 첨가행렬에 대해서 아래의 기본행연산(elementary row operations)을 통해서 연립방정식을 푸는 과정으로 가우스 소거법(Gauss elimination), 가우스-조르단 소거법(Gauss-Jordan elimination)이 있는데요, 마지막에 정리된 후의 모습은 아래와 같은 행 사다리꼴(Row echelon form)이 됩니다.  

 

 

행렬에 대한 기본 행 연산 (elementary row operations)

 

  1. 두 행을 교환하는 것

  2. 한 행의 상수배를 다른 행에 더하는 것

  3. 한 행에 0이 아닌 상수를 곱하는 것

 

 

 

 

 

 

가우스 소거법의 행 사다리꼴을 기준으로 설명을 하자면, 모든 성분이 0인 행이 제일 아래쪽에 오도록 기본 행 연산을 수행합니다. 그 외의 행에서는 0이 왼쪽에 오고 0이 아닌 성분은 오른쪽에 오도록 정리를 기본 행 연산을 하게 됩니다.  말로 설명하려니 쉽지가 않은 데요, 위의 그림의 행 사다리꼴의 0인 부분에 색깔을 칠해 두었으니 그림을 보는 것이 이해가 더 쉽겠네요. (가우스-조르단 소거법의 기약행 사다리꼴은 일단 패스...)

 

 

아래의 그림은 행 사다리꼴(Row echelon form)의 첨가행렬(augmented matrix)을 나타낸 것입니다.

 

 

 

가우스 소거법의 마지막에 얻을 수 있는 위의 행 사다리꼴의 첨가행렬 C를 가지고 선형연립방정식의 행에 대한 매우 중요한 아래와 같은 정보를 쉽게 직관적으로 얻을 수 있습니다.

 

 

1) 행렬 C의 모든 성분이 0이 아닌 행의 개수는 r이 바로 행렬 C의 계수(Rank) 이며, 동치 행렬 A의 계수(Rank) 이기도 합니다.  n개의 미지수 x1, ..., xn 에 관한 m개의 선형연립방정식이 모순이 없기 위한 (consistent) 필요충분조건은 계수행렬 A와 첨가행렬 C가 같은 계수를 갖는 것입니다.

 

 

2) 행렬 C가 모든 성분이 0인 행을 적어도 1개 이상 가지고 있어서 r < m 이고 & dr+1, ..., dm 중 적어도 한 개 이상이 0이 아닐 경우 해가 없습니다.  모든 계수(coefficient)의 성분이 0인 행의 경우 x 값에 어떠한 실수가 들어가도 0이 나올 수 밖에 없는데요, 우변의 d 는 0이 아닌 실수라고 하면 모순(inconsistent)이 되기 때문입니다.

 

 

3) 행렬 C가 모든 성분이 0인 행을 적어도 1개 이상 가지고 있어서 r < m 이거나 r = m 이더라도 dr+1, ..., dm 이 모두 0이라면 해가 존재(existence)합니다.

 

 

4) r = n 이고 모순이 없는 경우 해가 유일(unique solution)하게 존재합니다.

 

 

5) 행렬 A와 C가 같은 계수 r을 가지고 r < n 이면 무수히 많은 해(infinitely many solutions)가 존재하게 됩니다.  r < n 이므로 임의의 값을 할당할 수 있는 n-r 개의 미지수로 나머지 r개의 미지수를 표현함으로써 모든 해를 얻을 수 있습니다.

 

 

다음번 포스팅에서는 행렬의 고유값(eigenvalue)과 고유벡터(eigenvector)에 대해서 알아보겠습니다.

 

이번 포스팅이 도움이 되었다면 아래의 공감 ♡ 꾸욱~ 눌러주세요. ^^

 

 

 

 

 

 

 

Posted by R Friend R_Friend

댓글을 달아 주세요

지난 포스팅에서는 사상 f의 핵(kernel), 상공간(image), 차원정리(dimension theorem)에 대해서 알아보았습니다.

 

이번 포스팅에서는 행렬의 계수(rank)에 대해서 소개하겠습니다.

  

계수(rank)는 선형연립방정식의 해의 존재성과 유일성을 파악하는데 매우 매우 매우 중요한 개념입니다.

 

계수를 이해하려면 선형독립을 먼저 알아야 하므로, 이전에 한번 소개드렸던 선형독립에 대해서 복습하는 차원에서 아주 간략히 살펴보고 바로 계수(rank)로 넘어가겠습니다.

 

[선형독립 (linearly independent), 1차독립] 

 

같은 수의 성분을 가진 n개의 벡터 a(1), ..., a(n) 에 대하여, 이들 벡터의 1차결합(linear combination) 인 

 

  (1)      c1a(1) + c2a(2) + ... + cna(n) = 0     (단, c1, ..., cm 은 임의의 실수)

 

의 선형연립방정식을 만족하는 해가 유일하게 {c1, ..., cn 이 모두 0} 만 존재하는 경우 벡터 a(1), ..., a(n)은 선형독립 혹은 1차독립이라고 합니다. 반면에 {c1, ..., cn} 중에서 1개라도 0이 아닌 경우에 벡터 a(1), ..., a(n)은 선형종속 혹은 1차종속이라고 합니다.

 

이전에 선형독립 혹은 1차독립(linearly independent)에 대한 이해가 필요한데요, 선형독립에 대한 자세한 설명은 아래 링크를 참고하시기 바랍니다.

   ☞ 선형독립(linear independence) :  http://rfriend.tistory.com/163

 

 

선형독립과 선형종속 개념이 중요한 이유를 살펴보시죠.

행렬 A가 선형종속(linearly dependent) 이면 벡터 a(1), ..., a(n) 중에서 최소 1개 이상을 다른 벡터들의 1차 결합으로 나타낼 수 있다. 예를 들어 만일 식 (1)이 성립하고 c1 ≠ 0 이면, 벡터 a(1) 을

 

        a(1) = k2a(2) + ... + kna(n)     (여기서 kj = -cj/c1)

와 같이 나타낼 수 있다.

 

그것은 1차종속인 벡터집합에서, 다른 벡터들의 1차 결합으로 표현되는 벡터들을 소거함으로써, 최종적으로 각 벡터들이 나머지 다른 벡터의 1차결합으로는 절대 표현되지 않는, 즉 1차독립인 부분집합을 얻을 수 있다는 것이다. 이 집합이 결국 우리가 필요로 하는 가장 작은 벡터 집합일 것이다.

  (* 출처 : 선형대수와 벡터 미적분학, Erwin Kreyszig 저, 범한서적주식회사)

 

 

 

문제는 1차독립인지 1차종속인지 여부를 암산을 가지고 판별하는 것이 그리 쉽지 않다는 점입니다.  그리고 계수(rank)는 바로 이 지점에서 1차독립, 선형독립과 연결이 됩니다.

 

자, 그럼 이제 계수(rank)로 넘어가 볼까요?

 

 

 

[ 계수 (rank) 정의 ]

 

선형대수에서 어떤 행렬 A의 열계수(列階數, column rank)는 선형독립인 열 벡터의 최대 개수입니다. 마찬가지로 행계수(行階數, row rank)는 선형독립인 행 벡터의 최대 개수입니다.

 

행렬에서 열계수와 행계수는 항상 같으며, 이를 계수 정리(rank theorem)라고 합니다.

 

이에 따라 일반적으로 이 둘을 구분없이 A의 계수(階數, rank)라고 부릅니다.

행렬 A의 계수는 rk(A), 혹은 rank A로 표기합니다.

 

In linear algebra, the rank of a matrix A is the dimension of the vector space generated (or spanned) by its columns. This is the same as the dimension of the space spanned by its rows. It is a measure of the "nondegenerateness" of the system of linear equations and linear transformation encoded by A. There are multiple equivalent definitions of rank. A matrix's rank is one of its most fundamental characteristics.

The rank is commonly denoted rank(A) or rk(A); sometimes the parentheses are unwritten, as in rank A

   * 출처: wikipedia

 

 

 

 

 

 

계수는 이전에 포스팅했던 사상 f의 핵(Ker f), 상공간(Im f) 개념으로도 정의가 가능한데요,

R^m의 부분공간인 Im f의 차원(dimension)을 m*n 행렬의 계수(rank)라고 정의할 수도 있습니다.

(이건 이해하기가 더 어렵죠? ^^')

 

 

좀더 직관적으로 이해할 수 있도록 아래에 2가지 예를 들어보겠습니다.

 

[예 1]

 

 

 

[예 2]

 

 

 

행렬의 계수를 계산하는 좀 더 간단한 방법이 있습니다. 행렬에 대하여 기본 행연산을 시행하여 행 사다리꼴(row echelon form)으로 변환시켜 놓으면 그 행렬의 계수(rank)를 쉽게 알 수 있습니다. 행 사다리꼴 행렬의 0 아닌 행의 개수를 세면 되기 때문입니다.

 

아래의 행렬A를 행렬에 대한 기본 행연산(elementary row operation, 두 행을 교환하는 것, 한 행의 상수배를 다른 행에 더하는 것, 한 행에 0이 아닌 상수를 곱하는 것)에 의해 행 사다리꼴로 변환해보겠습니다.

 

 

 

 

R로 행렬의 계수(rank)를 구할 때는 rank() 함수를 사용하면 안되며, Matrix 패키지의 rankMatrix() 함수를 사용해야 합니다. R의 rank() 함수를 쓰면 크기 순서대로 랭킹이 나옵니다. 행렬의 계수(rank) 개념과는 거리가 한참 멉니다. 위의 예를 가지고 R의 rank() 함수와 rankMatrix() 함수를 사용해보겠습니다.

 

 

> # making a matrix A > A <- matrix( + c(2, 1, 0, 4, + 4, 3, -1, 12, + 0, -3, 3, -12), + nrow = 3, + ncol = 4, + byrow = TRUE) > > A [,1] [,2] [,3] [,4] [1,] 2 1 0 4 [2,] 4 3 -1 12 [3,] 0 -3 3 -12 > > # rank() : sequence, order, <= be cautious!!! it's not rank of Matrix A > rank(A) [1] 7.0 10.5 4.5 6.0 8.5 2.0 4.5 3.0 8.5 10.5 12.0 1.0 > > # rankMarix() : rank of matrix A, <= this is wha we are looking for > library(Matrix) > rankMatrix(A) [1] 2 attr(,"method") [1] "tolNorm2" attr(,"useGrad") [1] FALSE attr(,"tol") [1] 8.881784e-16

 

 

 

 

 

행렬의 계수는 아래의 4가지 정리를 따릅니다. (증명은 생략)

 

 

정리 1)  행동치의 행렬 (Row-Equivalent Matrices)

 

 : 행동치인 행렬들은 같은 계수(rank)를 가진다.

 

행동치(Row-Equivalent)란, 행렬 A2에 기본 행연산을 유한번 수행하여 행렬 A1을 얻을 수 있다면 행렬 A1과 A2는 행동치라고 합니다.

 

 

정리 2)  1차종속과 1차독립

 

 : 각각 n개의 성분을 갖는 p개의 벡터들은 이 벡터들을 행벡터로 취하여 구성된 행렬의 계수가 p이면 1차독립이고, 만약 그 계수가 p 보다 작으면 그들은 1차종속이다.

 

 

정리 3)  열벡터에 의한 계수

 

 : 행렬 A의 계수 r은 A의 1차독립인 열벡터의 최대수와 같다. 그러므로 A와 A^T 는 같은 계수를 가진다.

 

 

 

정리 4)  벡터의 1차종속

 

 : n개의 성분을 갖는 벡터가 p개 있고, n < p 라면 이들 벡터는 항상 1차종속이다.

 

* reference : Erwin Kreyszig, 선형대수와 벡터 미적분학, 범한서적주식회사

 

 

 

행렬식 det()와 계수(rank)와는 아래의 관계가 있습니다.

 

 

참고로, 역행렬이 존재하는지 여부를 확인하는 방법으로 행렬식(determinant, 줄여서 det)이라는 지표를 사용하는데요, 이 행렬식이 '0'이 아니면 역행렬이 존재하고, 이 행렬식이 '0'이면 역행렬이 존재하지 않습니다. (행렬식 공식 포스팅 참고 ☞ http://rfriend.tistory.com/142 )

 

 

다음 포스팅에서는 행렬의 계수(rank) 개념을 이용해서 선형연립방정식 해의 존재성, 유일성, 해집합의 일반적인 구조에 대한 정보를 구할 수 있는 방법을 알아보겠습니다.

 

이번 포스팅이 도움이 되었다면 아래의 공감 ♡ 꾸욱~ 눌러주세요. ^^

 

 

Posted by R Friend R_Friend

댓글을 달아 주세요

  1. 학생 2016.04.04 11:11  댓글주소  수정/삭제  댓글쓰기

    도움이 많이 되었습니다. 정말 감사합니다.

  2. 삼다수 2016.04.19 01:56  댓글주소  수정/삭제  댓글쓰기

    죄송한데 혹시 질문 몇가지 해도될까요..?
    det값이 0이 아니면 rank값이 n인 것인가요?
    그러면 어떤 행렬이 가역적이면 rank값이 n인 건가요?

    감사합니다.

    • R Friend R_Friend 2016.04.19 08:37 신고  댓글주소  수정/삭제

      행렬식(det)이 '0'이 아니면 가역적이고 해가 존재한다는 의미이구요, rank는 1~n(차원) 사이의 어떤 값이겠지요. rank는 사다리꼴행렬로 변환해서 따로 계산해야 합니다

  3. 질문좀 드릴게요... 2016.05.14 11:44  댓글주소  수정/삭제  댓글쓰기

    행렬을 선형변환으로 표현할수 있다고 배웠는데 기억이안나네요...
    원리좀 설명해주실수 있으세요?