linalg(deprecated)
smith
compute the Smith normal form of a matrix
Calling Sequence
Parameters
Description
Examples
smith(A, x)
smith(A, x, U, V)
A
-
square matrix of univariate polynomials in x
x
the variable name
U
name
V
Important: The linalg package has been deprecated. Use the superseding command LinearAlgebra[SmithForm], instead.
- For information on migrating linalg code to the new packages, see examples/LinearAlgebraMigration.
The Smith normal form of a matrix with univariate polynomial entries in x over a field F is computed. Thus the polynomials are then regarded as elements of the Euclidean domain F[x].
This routine is only as powerful as Maple's normal function, since at present it only understands the field Q of rational numbers and rational functions over Q.
The Smith normal form of a matrix is a diagonal matrix S obtained by doing elementary row and column operations. The diagonal entries satisfy the following property for all n≤rankA: ∏i=1nSi,i is equal to the (monic) greatest common divisor of all n by n minors of A.
In the case of four arguments, the third argument U and the fourth argument V will be assigned the transformation matrices on output, such that smith(A) = U &* A &* V.
The command with(linalg,smith) allows the use of the abbreviated form of this command.
withlinalg:
A≔matrix1−x,y−xy,0,1−x2
A≔1−x−xy+y0−x2+1
smithA,x
−1+x00x2−1
H≔inversehilbert2,x
H≔−−3+x2−2+x−3+x−2+x−4+x−3+x−2+x−4+x−−3+x2−4+x
smithH,x
−3+x00x3−9x2+26x−24
B≔smithA,x,U,V
B≔−1+x00x2−1
evalU
−10x+1−1
evalV
1−y−y11
evalmU&*A&*V−B
−1+x1−y+xy−y+1−x−−1+xy+xy−yx+11−x1−y+x+1−xy+y+x2−1−x+11−xy+x+1−xy+y
See Also
linalg(deprecated)[hermite]
linalg(deprecated)[ismith]
LinearAlgebra
LinearAlgebra[SmithForm]
Smith
Download Help Document