Trong đại số tuyến tính, phương pháp khử Gauss là một thuật toán dùng để giải hệ phương trình tuyến tính, xác định hạng của ma trận và tính ma trận nghịch đảo của ma trận vuông khả nghịch. Thuật toán này được đặt theo tên nhà toán học người Đức Carl Friedrich Gauss.
Thuật toán sử dụng các phép biến đổi hàng cơ bản và được chia thành hai phần. Phần đầu chuyển ma trận về dạng bậc thang hàng, trong khi phần sau đưa nó về dạng bậc thang tối giản. Nhiều ứng dụng chỉ cần phần đầu tiên là đủ.
Phép khử Gauss-Jordan là một thuật toán liên quan, giúp đưa ma trận về dạng bậc thang tối giản chỉ trong một lần duyệt.
Minh họa
Giả sử mục tiêu là xác định và miêu tả nghiệm của hệ phương trình tuyến tính sau (nếu có):
Thuật toán như sau: khử trong tất cả các phương trình dưới , sau đó khử trong các phương trình dưới . Hệ phương trình sẽ trở thành dạng tam giác và sau đó giải bằng phép thay thế ngược.
Trong ví dụ này, ta loại bỏ khỏi bằng cách cộng vào , tiếp đó loại bỏ khỏi bằng cách cộng vào .
Kết quả đạt được là:
Tiếp theo, chúng ta loại bỏ khỏi bằng cách cộng vào :
Kết quả cuối cùng là:
Chúng ta đã có hệ phương trình tuyến tính dưới dạng tam giác, phần 1 của thuật toán đã hoàn thành.
Trong bước thứ 2, chúng ta thực hiện phép thay thế ngược để tìm các ẩn số theo thứ tự ngược lại. Do đó, dễ dàng nhận thấy rằng
Tiếp theo, thay thế vào và giải để có kết quả dễ dàng.
Tiếp theo, chúng ta thay thế và vào , sau đó giải để tìm được
Vì vậy, chúng ta đã hoàn tất việc giải hệ phương trình.
Thuật toán này áp dụng cho mọi hệ phương trình tuyến tính. Mặc dù có thể hệ không thể chuyển thành dạng tam giác, nhưng ít nhất sẽ có một nghiệm khả dĩ: chẳng hạn, nếu không xuất hiện trong và sau bước đầu, thuật toán vẫn có thể đưa hệ về dạng bậc thang. Trong trường hợp này, hệ sẽ không có nghiệm duy nhất mà sẽ có vô số nghiệm do ít nhất có một biến tự do.
Trên thực tế, thay vì sử dụng hệ phương trình trực tiếp, người ta thường dùng ma trận mở rộng (dễ dàng xử lý trên máy tính). Dưới đây là quy trình khử Gauss áp dụng cho ma trận mở rộng của hệ phương trình trên, bắt đầu từ:
Sau khi hoàn thành phần đầu tiên của thuật toán, chúng ta sẽ có kết quả cuối cùng như sau:
Đây là dạng bậc thang của ma trận.
Kết thúc của thuật toán, chúng ta đạt được kết quả là
Đây là dạng bậc thang rút gọn.
Phân tích thuật toán
Phép khử Gauss đối với một ma trận kích thước n × n yêu cầu khoảng 2n / 3 phép toán, do đó độ phức tạp của nó là .
Thuật toán này có thể xử lý hàng ngàn hệ phương trình và biến số trên máy tính, nhưng không hiệu quả cho hệ thống với hàng triệu phương trình. Đối với các hệ thống lớn như vậy, thường dùng các phương pháp lặp để giải quyết. Có các phương pháp đặc biệt nếu hệ số tuân theo một mẫu nhất định.
Phép khử Gauss có thể được áp dụng cho bất kỳ trường nào.
Phép khử Gauss ổn định về mặt số học cho các ma trận có đường chéo chủ yếu hoặc dương. Đối với các ma trận tổng quát, phép khử Gauss vẫn ổn định nếu sử dụng phương pháp chọn pivot phần.
Ghi chú
- Atkinson, Kendall A. An Introduction to Numerical Analysis, ấn bản lần thứ 2, John Wiley & Sons, New York, 1989. ISBN 0-471-50023-2.
- Golub, Gene H., và Van Loan, Charles F. Matrix computations, ấn bản lần thứ 3, Johns Hopkins, Baltimore, 1996. ISBN 0-8018-5414-8.
- Lipschutz, Seymour, và Lipson, Mark. Schaum's Outlines: Linear Algebra. Tata McGraw-hill edition. Delhi 2001. pp. 69–80.
Liên kết bên ngoài
- Phương pháp khử Gaussian Lưu trữ ngày 24-05-2010 tại Wayback Machine www.math-linux.com.
- Phương pháp khử Gaussian dưới dạng applet Java Lưu trữ ngày 12-08-2006 tại Wayback Machine trên một trang web địa phương. Chỉ hỗ trợ các hệ số tự nhiên.
- Phương pháp khử Gaussian tại Viện Phương pháp Số Toàn diện
- LinearEquations.c Lưu trữ ngày 22-10-2011 tại Wayback Machine, cài đặt phương pháp khử Gaussian bằng ngôn ngữ C
Các chủ đề trong Đại số tuyến tính | ||
---|---|---|
Khái niệm cơ bản |
| |
Ma trận |
| |
Song tuyến tính |
| |
Đại số đa tuyến tính |
| |
Xây dựng không gian vectơ |
| |
Đại số tuyến tính số |
| |
|