Hermite Normal Form (reduced row echelon form)
hermite(A, x, U)
rectangular matrix of polynomials in x
Important: The linalg package has been deprecated. Use the superseding command LinearAlgebra[HermiteForm], instead.
- For information on migrating linalg code to the new packages, see examples/LinearAlgebraMigration.
The function hermite computes the Hermite Normal Form (reduced row echelon form) of an m by n rectangular matrix of univariate polynomials in x over the field of rational numbers Q, or rational expressions over Q.
In principle this should work for polynomials in x over any field F, i.e. the Euclidean domain F[x], but in practice the code is only as powerful as Maple's normal function.
The Hermite normal form is obtained by doing elementary row operations on A. This includes interchanging rows, multiplying through a row by a unit, and subtracting a multiple of one row from another.
One can use transposes to obtain the column form of the Hermite Normal Form of a matrix.
In the case of three arguments, the third argument U will be assigned the transformation matrix on output, such that the following holds: hermite(A) = U &* A.
The command with(linalg,hermite) allows the use of the abbreviated form of this command.
H ≔ inverse⁡hilbert⁡2,x
H ≔ matrix⁡3,3,1,x,x2,x3+2⁢x−1,0,1,1,x−1,x2+1
To obtain the column form of HNF for H do
A ≔ matrix⁡2,3,x+1,x2+1,2⁢x−1,x+2,x2+x,x−2:
B ≔ hermite⁡A,x,U
map⁡normal,evalm⁡U &* A−B
Download Help Document
What kind of issue would you like to report? (Optional)