Hạng (đại số tuyến tính)

Trong đại số tuyến tính, **hạng** (rank) của một ma trận  là số chiều của không gian vectơ được sinh (span) bởi các vectơ cột của nó. Điều này tương đương với số cột độc lập tuyến tính tối đa của , và như vậy, cũng chính là số chiều của không gian vectơ sinh bởi các hàng của ma trận trên. Vì vậy hạng là một con số chỉ sự "không suy biến" của hệ phương trình tuyến tính và phép biến đổi tuyến tính được biểu diễn bởi . Còn có nhiều định nghĩa tương đương khác của khái niệm hạng. Hạng của một ma trận là một trong những thuộc tính cơ bản nhất của nó.

Hạng của  thường được ký hiệu là  hay , ; hoặc đôi khi cũng có thể viết không có dấu ngoặc như sau, .

## Định nghĩa
Trong mục này, chúng ta đưa ra một số định nghĩa về hạng của một ma trận.

**Hạng cột** (column rank) của  là số chiều của không gian cột của , trong khi đó **hạng hàng** (row rank) của  là số chiều của không gian hàng của  (hoặc, đó là số hàng không phải là hàng *zero* của ma trận bậc thang rút gọn Ar).

Một kết quả quan trọng trong đại số tuyến tính đó là, hạng cột và hạng hàng luôn luôn bằng nhau. Giá trị các hạng này đơn giản được đồng nhất gọi là **hạng** của .

Một ma trận được gọi là có **hạng đầy đủ** nếu hạng của nó bằng số hạng lớn nhất có thể của một ma trận có cùng kích thước, và đó là cái nhỏ hơn trong hai giá trị số hàng và số cột của . Ngược lại, một ma trận được gọi là **thiếu hạng** nếu nó không có hạng đầy đủ.

Hạng cũng là số chiều của không gian ảnh của biến đổi tuyến tính được cho bởi phép nhân với ma trận .

Tổng quát hơn, nếu một toán tử tuyến tính \Phi trên một không gian vectơ (có thể vô hạn chiều) có ảnh có số chiều hữu hạn (ví dụ một toán tử hữu hạn hạng), thì hạng của toán tử được định nghĩa là số chiều của ảnh:

:\operatorname{rank} (\Phi) := \dim (\operatorname{img} (\Phi))

trong đó \dim là số chiều của không gian vectơ, còn \operatorname{img} là ảnh của ánh xạ (toán tử).

## Ví dụ
Ma trận sau đây

: \begin{bmatrix}1&0&1\\-2&-3&1\\3&3&0\end{bmatrix}

có hạng bằng 2: bởi vì hai cột đầu tiên của nó là độc lập tuyến tính, vì thế hạng ít nhất là 2, nhưng vì cột thứ ba là một tổ hợp tuyến tính của hai cột đầu (nó là cột thứ nhất trừ đi cột thứ hai), ba cột này là phụ thuộc tuyến tính, vì thế hạng phải nhỏ hơn 3.

Ma trận

: A=\begin{bmatrix}1&1&0&2\\-1&-1&0&-2\end{bmatrix}

có hạng bằng 1: có các cột khác không, vì vậy hạng là một số dương, nhưng bất kỳ cặp cột nào cũng phụ thuộc tuyến tính. Tương tự, chuyển vị của nó

: A^{\mathrm T} = \begin{bmatrix}1&-1\\1&-1\\0&0\\2&-2\end{bmatrix}

cũng có rank bằng 1.

Thật vậy, vì các vectơ cột của  là các vectơ hàng của chuyển vị của ,  từ mệnh đề rằng hạng cột của một ma trận bằng hạng hàng ta có mệnh đề tương đương rằng hạng của một ma trận bằng hạng của chuyển vị của nó, .

Một số ví dụ khác
* A=\left[ \begin{matrix}
   2 & 3 & 1 & 8  \\
   0 & 3 & 0 & 2  \\
   0 & 0 & -1 & 9  \\
\end{matrix} \right]\Rightarrow r(A)=3

* B=\left[ \begin{matrix}
   1 & 3 & 3 & 0  \\
   1 & 0 & 0 & 5  \\
   0 & 0 & 0 & 0  \\
\end{matrix} \right]\Rightarrow r(B)=2

## Tính toán hạng của ma trận

### Đưa về dạng hàng bậc thang

Một cách tiếp cận thông dụng để tìm hạng của một ma trận là đưa nó về một dạng đơn giản hơn, thường là dạng hàng bậc thang rút gọn, bằng các phép biến đổi hàng sơ cấp. Các phép biến đổi hàng không làm thay đổi không gian hàng (vì thế không làm thay đổi hạng hàng), và bởi tính khả nghịch, chúng ánh xạ không gian cột tới một không gian đẳng cấu (vì thế cũng không làm thay đổi hạng cột). Một khi đã đưa về dạng bậc thang rút gọn, hạng của cột và hàng rõ ràng là như nhau, và bằng số phần tử chính (pivot) hay số cột chính, cũng là số hàng khác zero.

Ví dụ, ma trận  được cho bởi
:A=\begin{bmatrix}1&2&1\\-2&-3&1\\3&5&0\end{bmatrix}
có thể được đưa về dạng hàng bậc thang rút gọn bằng dãy các phép biến đổi sơ cấp trên hàng sau:
:\begin{bmatrix}1&2&1\\-2&-3&1\\3&5&0\end{bmatrix}
\xrightarrow{2h_1 + h_2\rightarrow h_2}
\begin{bmatrix}1&2&1\\0&1&3\\3&5&0\end{bmatrix}
\xrightarrow{-3h_1 + h_3  \rightarrow h_3}
\begin{bmatrix}1&2&1\\0&1&3\\0&-1&-3\end{bmatrix}
\xrightarrow{h_2 + h_3 \rightarrow h_3}
\begin{bmatrix}1&2&1\\0&1&3\\0&0&0\end{bmatrix}
\xrightarrow{-2h_2 + h_1 \rightarrow h_1}
\begin{bmatrix}1&0&-5\\0&1&3\\0&0&0\end{bmatrix}.
Ma trận cuối cùng đã được đưa về dạng hàng bậc thang rút gọn có hai hàng khác zero và vì vậy rank của ma trận  là 2.

### Tính toán
Khi áp dụng cho các tính toán với dấu phẩy động trên máy tính trong thời gian thực, sử dụng phương pháp khử Gauss (phân tích LU) có thể không hiệu quả, và thay vào đó nên sử dụng một thuật toán phân tích tìm hạng. Một phương pháp thay thế hiệu quả là phép phân tích giá trị suy biến (*[[Singular value decomposition]]* hay SVD), nhưng cũng có các cách ít tốn kém hơn, như phân tích QR có chọn phần tử chính (vì thế được gọi là *phân tích tìm hạng QR*), vẫn mạnh hơn về mặt tính toán số học so với phép khử Gauss. Việc xác định hạng bằng số yêu cầu một tiêu chí để quyết định khi nào một giá trị (chẳng hạn như một giá trị suy biến từ SVD) thì nên được coi là bằng 0, một lựa chọn thực tế phụ thuộc vào cả ma trận và mục đích ứng dụng.

## Chứng minh hạng hàng bằng hạng cột
Một kết quả cơ bản trong đại số tuyến tính đó là hạng hàng và hạng cột của một ma trận là đồng nhất với nhau. Có nhiều chứng minh đã được đưa ra. Một trong những chứng minh đơn giản nhất đã được phác trong mục trên. Sau đây là một biến thể của cách chứng minh này:

Dễ chỉ ra rằng thực hiện các phép biến đổi hàng sơ cấp không làm thay đổi cả hạng hàng và hạng cột. Bởi vì phép khử Gauss chính là thực hiện các phép biến đổi hàng sơ cấp, dạng hàng bậc thang rút gọn của ma trận có cùng hạng hàng và hạng cột với ma trận ban đầu. Tiếp tục thực hiện các biến đổi sơ cấp trên cột để đưa ma trận về dạng một ma trận đơn vị có thể với các hàng và cột toàn số 0 ở xung quanh. Một lần nữa, thao tác này không làm thay đổi hạng hàng hay hạng cột. Ta thấy ngay hạng hàng và hạng cột của ma trận kết quả này đều bằng nhau và bằng số phần tử khác 0 trong nó.

Sau đây trình bày hai chứng minh khác của kết quả này. Chứng minh thứ nhất sử dụng các tính chất cơ bản của tổ hợp tuyến tính của các vectơ, và vẫn đúng với trường bất kỳ. Chứng minh này dựa trên Wardlaw (2005). Chứng minh thứ hai sử dụng tính trực giao và vẫn đúng với ma trận trên trường số thực; dựa trên Mackiw (1995). Cả hai chứng minh có trong sách của Banerjee và Roy (2014).

### Chứng minh sử dụng tổ hợp tuyến tính
Cho  là một ma trận . Ký hiệu hạng cột của  là , và  là một cơ sở bất kỳ của của không gian cột của , đặt vào các cột của một ma trận  có kích thước . Mỗi cột của  có thể được biểu diễn bằng một tổ hợp tuyến tính của  cột trong . Điều này có nghĩa là tồn tại một ma trận  cỡ  sao cho .  là ma trận mà cột thứ  của nó gồm các hệ số trong tổ hợp tuyến tính của  vectơ cột của  để tạo ra cột thứ  của . Nói cách khác,  là ma trận chứa các bội của các vectơ cơ sở của không gian cột của , còn  là ma trận gồm các vectơ cơ sở đó, hai ma trận này kết hợp để tạo ra . Bây giờ, ta có mỗi hàng của  được cho bởi một tổ hợp tuyến tính của  hàng trong . Vì vậy các hàng của  lập thành một hệ sinh của không gian hàng của , và theo bổ đề trao đổi Steinitz, hạng hàng của  không thể vượt quá . Điều này chứng tỏ rằng hạng hàng của  chỉ có thể là nhỏ hơn hoặc bằng hạng cột của . Kết quả này có thể được áp dụng đối với ma trận bất kỳ, vì thế có thể áp dụng với chuyển vị của . Vì hạng hàng của chuyển vị của  là hạng cột của  và hạng cột của chuyển vị của  là hạng hàng của , chúng ta cũng có bất đẳng thức với chiều ngược lại, suy ra hạng hàng và hạng cột của  phải bằng nhau. (Xem thêm Phân tích hạng.)

### Chứng minh sử dụng tính trực giao
Cho  là một ma trận  với các phần tử là số thực với hạng hàng là . Do đó, số chiều của không gian hàng của  là . Gọi  là một cơ sở của không gian hàng của . Ta khẳng định rằng các vectơ  là độc lập tuyến tính. Để chứng tỏ, xét một liên hệ đồng nhất tuyến tính với các vectơ trên với các hệ số vô hướng :

: 0 = c_1 A\mathbf{x}_1 + c_2 A\mathbf{x}_2 + \cdots + c_r A\mathbf{x}_r = A \left (c_1\mathbf{x}_1 + c_2\mathbf{x}_2 + \cdots + c_r\mathbf{x}_r \right ) = A\mathbf{v},

trong đó .  Ta quan sát rằng: (a)  là một tổ hợp tuyến tính của các vectơ trong không gian hàng của , suy ra  thuộc không gian hàng của , và (b) vì , vectơ  trực giao với mọi vectơ hàng của  và, vì vậy, cũng trực giao với toàn bộ các vectơ trong không gian hàng của . Từ (a) và (b) ta suy ra  trực giao với chính nó, điều này dẫn đến  hay là, theo định nghĩa của ,

: c_1\mathbf{x}_1 + c_2\mathbf{x}_2 + \cdots + c_r \mathbf{x}_r = 0.

Nhưng nhớ rằng  được chọn là các vectơ cơ sở của không gian hàng của  và vì vậy độc lập tuyến tính. Suy ra .  Vậy  cũng độc lập tuyến tính.

Đến đây, ta thấy mỗi vectơ  hiển nhiên là thuộc không gian cột của . Vì thế,  là một tập hợp  vectơ độc lập tuyến tính trong không gian cột của , suy ra số chiều của không gian cột của  (hay hạng cột của ) phải ít nhất bằng . Điều này cho thấy hạng hàng của  không lớn hơn hạng cột của . Bây giờ áp dụng kết quả này với chuyển vị của  để được bất đẳng thức chiều ngược lại và kết thúc như chứng minh trước.
## Các định nghĩa khác
Trong tất cả các định nghĩa dưới đây, ma trận  được coi là có kích thước  trên một trường bất kỳ .

### Số chiều của ảnh
Cho ma trận , nó là biểu diễn của một ánh xạ tuyến tính

: f : F^n \to F^m

được định nghĩa bởi

: f(\mathbf{x})=A\mathbf{x}.

Hạng của  được định nghĩa là số chiều của ảnh của  .  Định nghĩa này có một ưu điểm là nó có thể áp dụng cho bất kỳ một ánh xạ tuyến tính nào mà không cần có ma trận biến đổi cụ thể.

### Hạng và số chiều của hạt nhân
Cho biến đổi tuyến tính  như trên, hạng là  trừ đi số chiều của hạt nhân của  (số vô hiệu). Từ định lý về hạng và số vô hiệu ta suy ra định nghĩa này là tương đương với định nghĩa trên.

### Hạng cột – số chiều của không gian cột
Hạng của ma trận  là số các cột độc lập tuyến tính  tối đa của ; đây chính là số chiều của không gian cột của  (không gian cột là một không gian con của  được sinh bởi các vectơ cột của , mà đây cũng chính là ảnh của ánh xạ tuyến tính   liên hệ với ).

### Hạng hàng – số chiều của không gian hàng
Hạng của ma trận  là số các hàng độc lập tuyến tính tối đa của ; đây là số chiều của không gian hàng của .

### Phân tích hạng
Hạng của  là số nguyên nhỏ nhất  sao cho  có thể được phân tích dưới dạng A=CR, trong đó  là một ma trận  và  là ma trận . Thật vậy, với mọi số nguyên , những điều sau đây là tương đương: (1)\Leftrightarrow(2)\Leftrightarrow(3)\Leftrightarrow(4)\Leftrightarrow(5) (xem phần trên)

# hạng cột của  nhỏ hơn hoặc bằng ,
# Tồn tại  cột  cỡ  sao cho mỗi cột của  là một tổ hợp tuyến tính của ,
# tồn tại một ma trận  cỡ   và một ma trận  cỡ  sao cho  (nếu  là hạng, tích này gọi là phân tích hạng của ),
# tồn tại  hàng  cỡ  sao cho mỗi hàng của  là một tổ hợp tuyến tính của ,
# hạng hàng của  nhỏ hơn hoặc bằng .

Để chứng minh mệnh đề (3) từ mệnh đề (2), chọn  là ma trận có các cột là  từ (2). Để chứng minh (2) từ (3), chọn  là các cột của .

Từ sự tương đương (1)\Leftrightarrow(5) suy ra hạng hàng bằng hạng cột.

Tương tự trường hợp định nghĩa "số chiều của ảnh", có thể mở rộng khái niệm hạng cho một biến đổi tuyến tính bất kỳ: hạng của một biến đổi tuyến tính  là số chiều tối thiểu  của một không gian trung gian  sao cho   có thể được biểu diễn dưới dạng ánh xạ hợp của hai ánh xạ  và . Tuy nhiên, định nghĩa này không cho một cách hiệu quả để tính toán hạng (nên sẽ tốt hơn nếu dùng các định nghĩa thay thế). Xem thêm chi tiết tại phân tích hạng.

### Hạng theo giá trị suy biến
Hạng của  bằng số giá trị suy biến khác 0, cũng là số phần tử khác 0 trên đường chéo của  trong phép phân tích giá trị riêng 

### Hạng theo định thức – kích thước của định thức con khác 0 lớn nhất
Hạng của  là bậc lớn nhất trong bất kỳ các định thức con trong . (Bậc của một định thức con là cỡ của ma trận vuông con mà nó là định thức.) Giống như cách định nghĩa theo phân tích hạng, định nghĩa này không cho một cách hiệu quả để thực hiện tính hạng của ma trận, nhưng lại hữu ích về mặt lý thuyết: bậc của một định thức con đơn có cận dưới chính là hạng của ma trận, điều này có thể hữu ích, ví dụ trong việc chứng minh rằng một số phép toán không làm hạng của ma trận giảm đi.

Ma trận chứa một định thức con bậc  khác 0 (của ma trận con cỡ  với định thức khác 0) cho thấy các hàng và cột của ma trận con đó là độc lập tuyến tính, và do đó các hàng và cột đó của ma trận đầy đủ là độc lập tuyến tính, vì vậy hạng cột và hạng hàng ít nhất là bằng hạng theo định thức. Tuy nhiên, điều ngược lại không dễ chứng tỏ. Để làm rõ sự tương đương giữa hạng theo định thức và hạng cột ta cần làm mạnh hơn mệnh đề rằng nếu span của  vectơ có số chiều , thì chỉ cần  trong số  các vectơ ấy để sinh không gian đó (một cách tương đương, ta khẳng định rằng ta có thể chọn một hệ sinh là một *tập hợp con* của các vectơ): từ điều này suy ra rằng một tập hợp con của các hàng và một tập hợp con của các cột đồng thời xác định một ma trận con khả nghịch (hay có thể nói, nếu span của *n* vectơ có số chiều , thì  vectơ trong số các vectơ ấy cũng có thể sinh ra không gian đó *và* tồn tại một tập hợp gồm  tọa độ mà chúng độc lập tuyến tính).

### Hạng tenxơ

## Tính chất
Giả thiết rằng *A* là một ma trận , và ta định nghĩa ánh xạ tuyến tính *f* liên hệ với nó bởi  như trên.
* Hạng của một ma trận  là một số nguyên không âm và không thể lớn hơn *m* hay *n*. Tức là,
:: \operatorname{rank}(A) \le \min(m, n).
: Một ma trận có rank bằng  được gọi là có *hạng đầy đủ*; nếu không thì gọi là *thiếu hạng*.
*Chỉ có ma trận không là có hạng bằng 0.
*r(A)=r(), trong đó *A* là ma trận thực.
* Nếu hai ma trận *A* và *B* là tương đương thì r(A)=r(B).
* *f* là đơn ánh (hay "một-tới-một") khi và chỉ khi ma trận *A* có hạng bằng *n* (trong trường hợp này ta nói *A* có *hạng cột đầy đủ*).
* *f* là toàn ánh khi và chỉ khi *A* có hạng bằng *m* (trong trường hợp này ta nói *A* có *hạng hàng đầy đủ*).
* Nếu *A* là một ma trận vuông (tức là ), thì *A* khả nghịch khi và chỉ khi *A* có hạng bằng *n* (tức là *A* có hạng đầy đủ).
* Nếu *B* là một ma trận cỡ  bất kỳ thì ta có bất đẳng thức
:: \operatorname{rank}(AB) \leq \min(\operatorname{rank}(A), \operatorname{rank}(B)).
* Cho *B* là một ma trận  có hạng bằng *n*, ta có
:: \operatorname{rank}(AB) = \operatorname{rank}(A).
* Cho *C* là một ma trận  có hạng bằng *m*
:: \operatorname{rank}(CA) = \operatorname{rank}(A).
* Hạng của *A* bằng *r* khi và chỉ khi tồn tại một ma trận khả đảo *X* cỡ  và một ma trận khả đảo *Y* cỡ  sao cho
:: 
  XAY =
  \begin{bmatrix}
    I_r & 0 \\
    0 & 0 \\
  \end{bmatrix},

: trong đó *I<sub>r</sub>* là ma trận đơn vị .
* **Bất đẳng thức hạng [[James Joseph Sylvester|Sylvester]]**: nếu *A* là một ma trận  và *B* là ma trận , ta có
:: \operatorname{rank}(A) + \operatorname{rank}(B) - n \leq \operatorname{rank}(A B).
: Đây là trường hợp đặc biệt của bất đẳng thức tiếp theo.
* Bất đẳng thức của Frobenius: nếu các tích *AB*, *ABC* và *BC* được xác định thì ta có
:: \operatorname{rank}(AB) + \operatorname{rank}(BC) \le \operatorname{rank}(B) + \operatorname{rank}(ABC).
* Tính cộng dưới:
:: \operatorname{rank}(A+ B) \le \operatorname{rank}(A) + \operatorname{rank}(B) 
: trong đó *A* và *B* có cùng kích thước. Ta có hệ quả rằng một ma trận có hạng bằng *k* có thể được viết dưới dạng tổng của nhiều nhất *k* ma trận có hạng bằng 1.
* Hạng cộng với số chiều của hạt nhân của một ma trận bằng số cột của ma trận đó. (Đây là định lý về hạng và số vô hiệu.)
* Nếu *A* là một ma trận trên trường số thực thì rank của *A* và rank của ma trận Gram tương ứng là bằng nhau. Do đó, đối với ma trận thực
:: \operatorname{rank}(A^\mathrm{T} A) = \operatorname{rank}(A A^\mathrm{T}) = \operatorname{rank}(A) = \operatorname{rank}(A^\mathrm{T}).
: Có thể thấy điều này bằng cách chứng minh rằng các không gian hạt nhân của chúng là như nhau, dẫn đến số chiều như nhau. Hạt nhân của ma trận Gram được cho bởi các vectơ *x* sao cho A^\mathrm{T} A x = 0. Nếu điều kiện này được thỏa mãn, chúng ta cũng sẽ có 0 = x^\mathrm{T} A^\mathrm{T} A x = \left| A x \right| ^2.
* Nếu *A* là một ma trận trên trường số phức và \overline{A} ký hiệu cho ma trận liên hợp phức của *A* và *A*∗ là chuyển vị liên hợp của *A* (tức là liên hợp Hermite của *A*), thì
:: \operatorname{rank}(A) = \operatorname{rank}(\overline{A}) = \operatorname{rank}(A^\mathrm{T}) = \operatorname{rank}(A^*) = \operatorname{rank}(A^*A) = \operatorname{rank}(AA^*).

## Ứng dụng
Một ứng dụng hữu ích, điển hình của việc tính hạng của ma trận là xét số nghiệm của một hệ phương trình tuyến tính. Theo định lý Rouché–Capelli, hệ phương trình không nhất quán nếu hạng của ma trận bổ sung lớn hơn hạng của ma trận hệ số. Ngược lại, nếu hạng của hai ma trận này bằng nhau thì hệ phải có ít nhất một nghiệm. Nghiệm là duy nhất khi và chỉ khi hạng này bằng số biến. Nếu không, nghiệm tổng quát có *k* tham số (biến) tự do trong đó *k* là hiệu giữa số biến và hạng. Trong trường hợp này (và giả sử hệ phương trình số thực hoặc phức) thì hệ phương trình có vô số nghiệm.

Trong lý thuyết điều khiển, hạng của ma trận có thể được sử dụng để xác định xem một hệ thống tuyến tính là có thể điều khiển được hay có thể quan sát được.

Trong lĩnh vực về độ phức tạp truyền thông, hạng của ma trận truyền thông của một chức năng đưa ra giới hạn về lượng truyền thông cần thiết để hai bên tính toán chức năng.

## Tổng quát hóa
Có những cách khái quát khác nhau về khái niệm hạng cho ma trận trên các vành tùy ý, trong đó các khái niệm hạng cột, hạng hàng, số chiều của không gian cột và số chiều của không gian hàng của ma trận có thể không tương đồng với nhau hoặc có thể không tồn tại.

Coi ma trận là tenxơ, hạng tenxơ là khái niệm tổng quát cho các tenxơ tùy ý; đối với tenxơ với bậc lớn hơn 2 (ma trận là tenxơ bậc 2), hạng rất khó tính toán, không giống như đối với ma trận.

Có khái niệm về hạng cho các ánh xạ trơn giữa các đa tạp trơn. Nó bằng với hạng tuyến tính của đạo hàm.

## Xem thêm

* Độc lập tuyến tính

## Chú thích

## Tham khảo

## Đọc thêm

* 
* Kaw, Autar K. Two Chapters from the book Introduction to Matrix Algebra: 1. Vectors http://numericalmethods.eng.usf.edu/mws/che/04sle/mws_che_sle_bck_vectors.pdf and System of Equations http://numericalmethods.eng.usf.edu/mws/che/04sle/mws_che_sle_bck_system.pdf
* Mike Brookes: Matrix Reference Manual. http://www.ee.ic.ac.uk/hp/staff/dmb/matrix/property.html#rank