이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

rank

설명

예제

k = rank(A)는 행렬 A랭크를 반환합니다.

희소 행렬의 구조적 랭크를 확인하려면 sprank를 사용하십시오.

예제

k = rank(A,tol)은 랭크 계산에 사용할 별개의 허용오차를 지정합니다. 랭크는 A에서 tol보다 큰 특이값의 개수로 계산됩니다.

예제

모두 축소

행렬이 완전 랭크인지를 확인합니다.

3x3 행렬을 만듭니다. 세 번째 열의 값이 두 번째 열의 값보다 두 배 더 큽니다.

A = [3 2 4; -1 1 2; 9 5 10]
A = 3×3

     3     2     4
    -1     1     2
     9     5    10

행렬의 랭크를 계산합니다. 행렬이 완전 랭크인 경우 랭크는 열 개수 size(A,2)와 같습니다.

rank(A)
ans = 2
size(A,2)
ans = 3

행렬은 열이 1차 종속이므로 랭크 부족입니다.

허용오차를 사용하여 행렬의 랭크를 계산합니다.

4x4 대각 행렬을 만듭니다. 이 대각 행렬에는 하나의 작은 값(1e-15)이 포함되어 있습니다.

A = [10 0 0 0; 0 25 0 0; 0 0 34 0; 0 0 0 1e-15]
A = 4×4

   10.0000         0         0         0
         0   25.0000         0         0
         0         0   34.0000         0
         0         0         0    0.0000

행렬의 랭크를 계산합니다.

rank(A)
ans = 3

이 행렬은 완전 랭크로 간주되지 않는데, 디폴트 알고리즘이 max(size(A))*eps(norm(A))보다 큰 특이값의 개수를 계산하기 때문입니다. 이 행렬의 경우 대각 행렬에 있는 작은 값은 허용오차보다 작기 때문에 제외됩니다.

행렬의 랭크를 다시 계산하되 허용오차를 1e-16으로 지정합니다.

rank(A,1e-16)
ans = 4

입력 인수

모두 축소

입력 행렬입니다.

데이터형: single | double
복소수 지원 여부:

허용오차로, 스칼라로 지정됩니다. 자세한 내용은 알고리즘 섹션을 참조하십시오.

예: rank(A,1e-5)

세부 정보

모두 축소

랭크

행렬의 1차 독립 열 개수가 행렬의 랭크입니다. 행렬의 행 랭크와 열 랭크는 항상 같습니다.

행렬의 랭크가 동일한 크기의 행렬에서 가능한 가장 높은 값인 경우 완전 랭크 행렬이고, 행렬에 완전 랭크가 없는 경우 랭크 부족 행렬입니다. 랭크는 행렬의 치역 즉, 열 공간의 차원에 대한 척도를 제공합니다. 치역 또는 열 공간은 열들의 모든 일차 결합의 모음입니다.

알고리즘

rank는 특이값 분해(SVD)를 기반으로 하는 방법을 사용합니다. SVD 알고리즘은 일부 다른 방법보다 시간이 더 오래 걸리지만 가장 안정적입니다.

행렬 A의 랭크는 허용오차보다 큰 특이값의 개수로 계산됩니다. 기본적으로 허용오차는 max(size(A))*eps(norm(A))입니다. 그러나 명령 rank(A,tol)을 사용하여 다른 허용오차를 지정할 수 있습니다.

확장 기능

참고 항목

| | |

R2006a 이전에 개발됨