Phương trình tuyến tính với nghiệm nguyên¶
Phần này xét một phương trình tuyến tính trên \(\mathbb{Z}\). Đây là bài toán nghiệm nguyên, không phải phép khử Gauss trên một trường hữu hạn. Các phép biến đổi cột đều là unimodular nên bảo toàn song ánh giữa các nghiệm nguyên.
Xét trường hợp khi hệ chỉ có một phương trình
với \(a_i\), \(d \in \mathbb{Z}\).
Ta viết các hệ số của phương trình trên dưới dạng ma trận
kích thước \((n + 1) \times n\) với hàng đầu là hệ số \(a_i\), ở dưới là ma trận đơn vị.
Ta thực hiện các bước
Chọn trên hàng đầu của \(A\) phần tử khác \(0\) có giá trị tuyệt đối nhỏ nhất là \(a_i\).
Chọn số \(j \neq i\) mà \(a_j \neq 0\).
Thực hiện chia \(a_j = q a_i + r\) với \(0 \leqslant r < \lvert a_i \rvert\).
Trừ cột \(j\) của ma trận \(A\) từ cột \(i\) nhân với \(q\).
Như vậy, ma trận mới sẽ có phần tử ở vị trí \(a_j = 0\) nếu \(r = 0\), hoặc có phần tử mới có giá trị tuyệt đối nhỏ hơn \(a_i\), nghĩa là
Rõ ràng, sau một lượt thực hiện các bước từ 1 tới 4 thì ma trận sẽ có dạng
với \(\lambda\), \(c_{ii} \in \mathbb{Z}\), \(\lambda \neq 0\). Nếu \(\lambda \nmid d\) thì phương trình ban đầu không có nghiệm. Nếu \(\lambda \mid d\) thì phương trình có nghiệm tổng quát dạng
với \(t_1\), ..., \(t_{s-1}\), \(t_{s+1}\), ..., \(t_n\) tùy ý thuộc \(\mathbb{Z}\), còn \(\bar{c}_i\) là vector cột của ma trận
Trong một lần lặp của thuật toán thì ma trận \(A\) biến thành ma trận \(A D_{ij}\) với \(D_{ij}\) có kích thước \(n \times n\), trên đường chéo chính là \(1\); phần tử tại hàng \(i\), cột \(j\) là \(-q\); các phần tử còn lại bằng \(0\).
Ma trận \(D_{ij}\) là ma trận nguyên với \(\det(D_{ij}) = 1\), nghịch đảo của \(D_{ij}\) cũng là ma trận nguyên.
Viết (16) dưới dạng vector
Xét biến mới
Khi đó ta có phương trình mới
với \((a_1', \ldots, a_n') = (a_1, \ldots, a_n) \cdot D_{ij}\).
Giá trị \(y_1\), ..., \(y_n\) là nguyên khi và chỉ khi \(x_1\), ..., \(x_n\) cũng nguyên.
Nếu ta thực hiện thuật toán \(k\) lần với giá trị tại chỉ số \((i_1, j_1)\), \((i_2, j_2)\), ..., \((i_k, j_k)\) thì hệ trở thành hệ theo các biến \(z_1\), ..., \(z_n\)
Nếu khi đó, hàng đầu ma trận \(A\) có dạng
thì hệ có dạng \(\lambda z_1 = b\) (8).
Nếu \(\lambda \nmid b\) thì hệ vô nghiệm, còn \(\lambda \mid b\) thì (8) có nghiệm dạng
với \(t_1, \ldots, t_n \in \mathbb{Z}\) tùy ý. Khi đó
Chú ý: ma trận \(C\) ở (6) bằng \(D_{i_1 j_1} \cdots D_{i_k j_k}\) vì với các hàng còn lại của ma trận \(A\) ta đã làm cho hàng đầu (ma trận đơn vị \(n \times n\)) nhân với một dãy \(D_{i_1 j_1}\), \(D_{i_2 j_2}\), ..., \(D_{i_k j_k}\).