gives the Hermite normal form decomposition of an integer matrix .
Examplesopen allclose all
Basic Examples (1)
Basic Uses (8)
Use HermiteDecomposition for a rational matrix:
HermiteDecomposition can be used to determine if two integer lattices are equivalent. If the generators of the lattices are put in row matrices, the lattices are equal if and only if the matrices of the Hermite decompositions of the corresponding matrices are the same. Consider the lattices generated by , , and , , :
Confirm the result using LatticeReduce, which gives the same reduction up to overall sign:
The first use of HermiteDecomposition gives a unimodular matrix and an upper-triangular matrix:
Compare , and with the result given by SmithDecomposition:
Properties & Relations (7)
HermiteDecomposition gives a unimodular matrix and an upper-triangular matrix:
Det of a unimodular matrix has absolute value 1:
Inverse of a unimodular integer matrix is an integer matrix:
For an matrix , the matrix of HermiteDecomposition[a] has the same dimensions:
For HermiteDecomposition the decomposition is and the matrices returned are integer:
For QRDecomposition the decomposition is and matrices returned can have any values:
LatticeReduce gives a basis consisting of shorter vectors:
Wolfram Research (2007), HermiteDecomposition, Wolfram Language function, https://reference.wolfram.com/language/ref/HermiteDecomposition.html.
Wolfram Language. 2007. "HermiteDecomposition." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/HermiteDecomposition.html.
Wolfram Language. (2007). HermiteDecomposition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/HermiteDecomposition.html