Для нахождения общего целочисленного решения системы линейных уравнений используется нормальная диагональная форма Смита матрицы. Пусть ранг матрицы A размерами
равен k. Обозначим через
наибольший общий делитель миноров i-го порядка матрицы А (i=1,..,k). Положим
и
(i=1,..,k). Матрица
называется нормальной диагональной формой Смита матрицы А.
Известно (см. ниже), что нормальная диагональная форма Смита эквивалентна матрице A, то есть найдутся унимодулярные матрицы P и Q (то есть с определителем
), что PAQ=S.
Если известны матрицы P и Q, то построение общего решения в целых числах системы линейных уравнений Ах=b не составляет труда. Для этого делаем замену переменных x=Qy и от системы AQy=b перейдем к равносильной ей PAQy=Pb=с. Последняя система выглядит следующим образом,
…,
,
— любые целые числа. Соответственно, общее решение имеет вид
. Умножая на Q обе части равенства, получим
— общее решение. Любое частное решение исходной системы получается подстановкой вместо
любых целых чисел.