hermiteForm

Hermite normal form of an integer matrix.

Category: Mathematics > Linear Algebra

Syntax

H = hermiteForm(A)

Returns the upper triangular Hermite form of A.

[U, H] = hermiteForm(A)

Also returns the unimodular matrix U with U*A == H.

Description

The Hermite form plays the role of the row echelon form over the integers: only integer row operations are allowed, so no division occurs. It is used to solve linear Diophantine systems and to find bases of integer lattices.

Input arguments

A
Matrix of integers (symbolic).

Output arguments

H
Upper triangular matrix with non-negative pivots; entries above a pivot are reduced modulo that pivot.
U
Integer matrix with determinant 1 or -1.

Example

Hermite form with its transform

A = sym([2 3; 4 5]);
[U, H] = hermiteForm(A)
U*A
Output
U = 
[-5,  3]
[ 2, -1]
H = 
[2, 0]
[0, 1]
ans = 
[2, 0]
[0, 1]

Notes

MatLivre handles integer matrices only.

See also

smithForm rref lu det