'rk(A)'에 해당되는 글 1건

  1. 2016.03.22 [선형대수] 행렬의 계수, rank, rank A, rk(A), 階數 (6)

지난 포스팅에서는 사상 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