Trong lý thuyết đại số tuyến tính, dạng bậc thang của ma trận là kết quả của việc áp dụng phép khử Gauss để đưa ma trận về hình dạng cụ thể.
Ma trận ở dạng hàng bậc thang có nghĩa là phép khử Gauss đã được thực hiện trên các hàng của nó, trong khi dạng cột bậc thang có nghĩa là phép khử Gauss đã được áp dụng cho các cột. Nói cách khác, nếu ma trận chuyển vị của ma trận ở dạng hàng bậc thang thì ma trận gốc ở dạng cột bậc thang. Do đó, bài viết này sẽ chỉ tập trung vào dạng hàng bậc thang. Dạng cột bậc thang có tính chất tương tự như dạng hàng bậc thang và có thể dễ dàng suy ra từ việc lấy chuyển vị của ma trận. Cụ thể, một ma trận ở dạng hàng bậc thang có các đặc điểm sau:
- Các hàng chứa toàn số 0 (hàng zero) được đặt ở cuối cùng
- Hệ số chính (hoặc phần tử chính) của một hàng không chứa số 0 luôn nằm bên phải hệ số chính của hàng ngay phía trên.
Một số tài liệu bổ sung yêu cầu các hệ số chính phải đều bằng 1.
Hai điều kiện trên dẫn đến việc tất cả các phần tử trong cùng một cột và dưới hệ số chính đều phải bằng 0.
Dưới đây là ví dụ về ma trận 3×5 ở dạng hàng bậc thang, nhưng chưa phải là dạng hàng bậc thang rút gọn (xem chi tiết bên dưới).
Từ dạng hàng bậc thang của ma trận, ta có thể suy luận nhiều đặc tính của nó, như hạng và hạt nhân.
Dạng hàng bậc thang rút gọn
Một ma trận được gọi là ở dạng hàng bậc thang rút gọn (hoặc dạng chính tắc hàng) nếu nó đáp ứng ba điều kiện sau đây:
- Đã được đưa về dạng hàng bậc thang
- Các phần tử chính của hàng khác 0 đều bằng 1 (gọi là số 1 chính)
- Tất cả các phần tử khác trong cùng cột với số 1 chính đều phải bằng 0.
Dạng hàng bậc thang rút gọn của ma trận có thể đạt được bằng phép khử Gauss–Jordan. Khác với dạng hàng bậc thang, dạng hàng bậc thang rút gọn là duy nhất và không phụ thuộc vào phương pháp tính toán. Dù dạng hàng bậc thang có thể không duy nhất, nhưng tất cả các ma trận ở dạng bậc thang và dạng hàng bậc thang rút gọn đều có cùng số hàng zero và các phần tử chính ở các vị trí tương ứng.
Dưới đây là ví dụ về một ma trận ở dạng hàng bậc thang rút gọn, nơi phần bên trái của ma trận không nhất thiết phải là ma trận đơn vị:
Đối với ma trận có hệ số nguyên, dạng chuẩn tắc Hermite là dạng hàng bậc thang có thể đạt được bằng phép chia Euclide mà không cần sử dụng phân số hay số hữu tỉ. Ngược lại, dạng bậc thang rút gọn của ma trận với hệ số nguyên thường có các hệ số không phải nguyên.
Chuyển đổi sang dạng hàng bậc thang
Bằng cách thực hiện một chuỗi các phép biến đổi hàng sơ cấp, gọi là phép khử Gauss, ta có thể đưa bất kỳ ma trận nào về dạng hàng bậc thang. Do các phép biến đổi sơ cấp bảo toàn không gian hàng của ma trận, không gian hàng của dạng hàng bậc thang rút gọn vẫn giữ nguyên so với ma trận ban đầu.
Dạng hàng bậc thang thu được không phải là duy nhất; một ma trận ở dạng hàng bậc thang có thể chuyển đổi sang dạng hàng bậc thang tương đương bằng cách cộng một hàng với bội của các hàng phía trên. Ví dụ:
Mỗi ma trận chỉ có một dạng hàng bậc thang rút gọn duy nhất. Ví dụ dưới đây minh họa cách tìm dạng hàng bậc thang rút gọn của ma trận như thế nào.
Điều này có nghĩa rằng các hàng khác không zero trong dạng hàng bậc thang rút gọn tạo thành một hệ sinh duy nhất cho không gian hàng của ma trận gốc.
Hệ phương trình tuyến tính
Một hệ phương trình tuyến tính được gọi là ở dạng hàng bậc thang nếu ma trận bổ sung của nó có dạng hàng bậc thang. Tương tự, hệ phương trình ở dạng hàng bậc thang rút gọn hoặc dạng chính tắc nếu ma trận bổ sung của nó có dạng bậc thang rút gọn.
Dạng chuẩn tắc có thể xem như là một giải pháp rõ ràng cho hệ phương trình tuyến tính. Một hệ phương trình sẽ không có nghiệm hoặc mâu thuẫn nếu một trong các phương trình trong dạng chuẩn tắc trở thành 0 = 1 sau khi giản ước. Nếu không, ta chuyển các số hạng không phải số 1 chính sang bên phải, và biểu diễn các biến chính dưới dạng các hằng số hoặc hàm tuyến tính của các biến còn lại nếu có.
Mã giả
Dưới đây là mã giả để chuyển một ma trận về dạng hàng bậc thang rút gọn:
function ToReducedRowEchelonForm(Matrix M) is lead:= 0 rowCount:= số hàng trong M columnCount:= số cột trong M for 0 ≤ r < rowCount do if columnCount ≤ lead then stop function end if i = r while M[i, lead] = 0 do i = i + 1 if rowCount = i then i = r lead = lead + 1 if columnCount = lead then stop function end if end if end while if i ≠ r then Swap rows i và r Chia hàng r cho M[r, lead] for 0 ≤ i < rowCount do if i ≠ r do Trừ M[i, lead] nhân với hàng r từ hàng i end if end for lead = lead + 1 end for end function
Dưới đây là mã giả để chuyển ma trận về dạng hàng bậc thang (chưa rút gọn):
function ToRowEchelonForm(Matrix M) is nr:= số hàng của M nc:= số cột của M for 0 ≤ r < nr do allZeros:= true for 0 ≤ c < nc do if M[r, c] ≠ 0 then allZeros:= false exit for end if end for if allZeros = true then Đổi chỗ hàng r với hàng nr trong M nr:= nr - 1 end if end for p:= 0 while p < nr và p < nc do label nextPivot: r:= 1 while M[p, p] = 0 do if (p + r) <= nr then p:= p + 1 goto nextPivot end if Đổi chỗ hàng p với hàng (p + r) trong M r:= r + 1 end while for 1 ≤ r < (nr - p) do if M[p + r, p] ≠ 0 then x:= -M[p + r, p] / M[p, p] for p ≤ c < nc do M[p + r, c]:= M[p, c] * x + M[p + r, c] end for end if end for p:= p + 1 end while end function
Ghi chú
- Linear Algebra with Applications, 2009, ISBN 978-0136009290.
- Matrix Analysis and Applied Linear Algebra, 2000, ISBN 978-0-89871-454-8.
Liên kết hữu ích
- Hình thức hàng bậc thang tương tác với đầu ra số hữu tỷ