MCP로 연결 →

계산 입력

공식

광고

결과

행렬 A의 계수(rank)
2
일차독립인 행 / 열
행렬 크기 (m x n) 3 x 3
행 개수 (m) 3
열 개수 (n) 3
가능한 최대 계수 min(m, n) 3
전계수(full rank)인가요? No (rank deficient)

행렬의 계수(rank)란?

행렬 A의 계수(rank)란 그 행렬에 들어 있는 일차독립인 열벡터의 최대 개수를 말하며, 이 값은 일차독립인 행벡터의 최대 개수와 항상 일치합니다. 기하학적으로는 A의 행(또는 열)이 생성하는 공간의 차원을 의미하죠. 계수는 선형대수학 전반에서 쓰이는 보편적인 개념으로, 특정 국가나 표기 관습에 따라 달라지지 않습니다. 참고로 영어로는 'rank', 일본어에서는 '계수(階数, かいすう)'라고 부릅니다.

선형 독립 행과 종속 행이 강조 표시된 행렬
계수(rank)는 행렬에서 선형 독립인 행(또는 열)의 수를 셉니다.

계산기 사용법

먼저 행의 개수(\(m\))와 열의 개수(\(n\))를 설정한 다음, 텍스트 상자에 행렬의 원소를 한 행씩 입력하세요. 한 행 안의 값들은 쉼표나 공백으로 구분하고, 행과 행은 줄바꿈이나 세미콜론(;)으로 구분합니다. '표시 정밀도' 드롭다운은 계산 과정의 값을 몇 자리로 보여줄지만 조정할 뿐, 일반적인 입력에서는 수학적인 계수 값 자체를 바꾸지 않습니다. 계산 버튼을 누르면 행렬의 계수와 함께 행렬의 크기, 그리고 전계수(full rank) 여부까지 알려 줍니다.

공식과 계산 원리

이 계산기는 부분 피벗팅(partial pivoting)을 적용한 가우스 소거법으로 A를 행 사다리꼴(row-echelon form)로 변형합니다. 계수를 0에서 시작해 각 열을 차례로 살펴보고, 각 열에서 절댓값이 가장 큰 후보 행을 (수치 안정성을 위해) 피벗으로 선택합니다. 그 값이 작은 허용 오차(tolerance)보다 크면 해당 행을 피벗으로 삼아 다른 모든 행에서 그 열을 소거하고 계수를 1 증가시킵니다. 어떤 열 전체가 0에 가까운 후보뿐이라면 그 열은 피벗을 만들지 못합니다. 최종적으로 만들어진 피벗의 개수가 곧 계수이며, 이 값은 항상 \(0 \le \text{rank}(A) \le \min(m,\, n)\)을 만족합니다.

$$\text{rank}(A) = \dim\!\big(\text{span of pivot rows of }\text{Matrix }A\big) \le \min\!\left(m,\; n\right)$$$$\text{rank}(A) = \#\{\text{nonzero pivots in REF}(A)\}$$$$\text{where}\quad \left\{ \begin{aligned} A &= \text{Matrix entries} \;(m \times n) \\ \text{tol} &= 10^{-12}\cdot \max_{i,j}\lvert a_{ij}\rvert \\ \text{rank}(A) &\le \min(m,\, n) \end{aligned} \right.$$
광고
단계별로 행 사다리꼴 형태로 변환되어 피벗이 계단 모양으로 배열된 행렬
가우스 소거법은 행렬을 행 사다리꼴 형태로 변환하며, 0이 아닌 각 피벗이 계수를 1씩 더합니다.

예제로 살펴보기

\(A = [[1, 2, 3], [2, 4, 6], [1, 0, 1]]\)을 예로 들어 보겠습니다. 2행은 1행의 2배이므로 이 두 행은 서로 종속(일차종속)입니다. 소거를 마치면 0이 아닌 피벗 행이 두 개만 남아 계수 = 2가 됩니다. 반면 \(3 \times 3\) 단위행렬은 피벗이 세 개 나와 계수가 3이고, 모든 원소가 0인 영행렬은 계수가 0입니다.

자주 묻는 질문

계수가 행이나 열의 개수보다 클 수 있나요? 아닙니다. 계수는 절대로 \(\min(m,\, n)\)보다 클 수 없습니다.

전계수(full rank)란 무엇인가요? 행렬의 계수가 \(\min(m,\, n)\)과 같을 때 그 행렬은 전계수(full rank)라고 합니다. 정사각행렬의 경우 전계수라는 것은 곧 그 행렬이 가역(역행렬이 존재)이며 행렬식이 0이 아니라는 뜻입니다.

왜 가장 큰 값을 피벗으로 쓰나요? 부분 피벗팅을 쓰면 아주 작은 수로 나누는 일을 피할 수 있어 부동소수점 반올림 오차가 작게 유지되고, 그만큼 계수 계산도 신뢰할 수 있게 됩니다.

최종 업데이트: