linalg(deprecated)/ismith - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : linalg(deprecated)/ismith

linalg(deprecated)

  

ismith

  

integer-only Smith normal form

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

ismith(A)

ismith(A, U, V)

Parameters

A

-

rectangular matrix of integers

U

-

name

V

-

name

Description

• 

Important: The linalg package has been deprecated. Use the superseding packages, LinearAlgebra and VectorCalculus, instead.

  

- For information on migrating linalg code to the new packages, see examples/LinearAlgebraMigration.

• 

The function ismith computes the Smith normal form S of an n by m rectangular matrix of integers.

• 

If two n by n matrices have the same Smith normal form, they are equivalent.

• 

The Smith normal form is a diagonal matrix where

rank(A) = number of nonzero rows (columns) of S

sign(S[i,i]) = 1  for 0 < i <= rank(A)

S[i,i] divides S[i+1,i+1] for 0 < i < rank(A)

product(S[i,i],i=1..r) divides det(M) for all minors M of rank 0 < r <= rank(A)

  

Hence if n = m and rank(A) = n then detA=i=1nSi,i.

• 

The Smith normal form is obtained by doing elementary row and column operations.  This includes interchanging rows (columns), multiplying through a row (column) by -1, and adding integral multiples of one row (column) to another.

• 

Although the rank and determinant can be easily obtained from S this is not an efficient method for computing these quantities except that this may yield a partial factorization of detA without doing any explicit factorizations.

• 

In the case of three arguments, the second argument U and the third argument V will be assigned the transformation matrices on output, such that smith(A) = U &* A &* V.

• 

The command with(linalg,ismith) allows the use of the abbreviated form of this command.

Examples

Important: The linalg package has been deprecated. Use the superseding packages, LinearAlgebra and VectorCalculus, instead.

withlinalg&colon;

Harray9&comma;36&comma;30&comma;36&comma;192&comma;180&comma;30&comma;180&comma;180

H9−3630−36192−18030−180180

(1)

ismithH

30001200060

(2)

Aarray13&comma;5&comma;7&comma;17&comma;31&comma;39

A1357173139

(3)

BismithA&comma;U&comma;V

B100020

(4)

evalU

01−11

(5)

evalV

−47−11−72127−19459−104159

(6)

evalmU&*A&*VB

000000

(7)

See Also

linalg(deprecated)[ihermite]

linalg(deprecated)[smith]

LinearAlgebra

LinearAlgebra[SmithForm]