The isom command determines whether or not a 2× 2 or
3× 3 matrix determines an isometry, and if it does, finds a
characterization.
isom takes one argument: A, a 2× 2 or 3× 3 matrix.
isom(A) returns [0] is A does not
determine an isometry, otherwise it returns a list
[char,n], where char is the characteristic
element of a list of characteristic elements and n is 1
for a direct isometry and -1 for an indirect isometry.
For a 2× 2 matrix, char is
the angle of rotation about the origin for a direct isometry or
a vector determining the line (through the origin) of reflection
for an indirect symmetry.
For a 3× 3 matrix, char is a list
consisting of the axis direction and angle of rotation for a
direct isometry or a vector normal to the plane of reflection for
an indirect isometry.
Examples.
Input:
isom([[0,0,1],[0,1,0],[1,0,0]])
Output:
⎡
⎣
⎡
⎣
1,0,−1
⎤
⎦
,−1
⎤
⎦
which means that this isometry is a 3-d symmetry with respect to the plane
x − z = 0.
Input:
isom(sqrt(2)/2*[[1,-1],[1,1]])
Output:
⎡
⎢
⎢
⎣
π
4
,1
⎤
⎥
⎥
⎦
Hence, this isometry is a 2-d rotation of angle
π/4.