IsMatrixShape - determine if a Matrix has a specified shape
IsVectorShape - determine if a Vector has a specified shape
|
Calling Sequence
|
|
IsMatrixShape(A, shape)
IsVectorShape(V, shape)
|
|
Parameters
|
|
A
|
-
|
Matrix
|
V
|
-
|
Vector
|
shape
|
-
|
name of the shape
|
|
|
|
|
Description
|
|
•
|
The IsMatrixShape(A, shape) function determines whether Matrix A has the specified shape. A Matrix has one of the following built-in shapes if it satisfies the listed condition:
|
|
All entries along the main diagonal are 1, and 0 elsewhere.
|
|
All entries along the main diagonal have the same value, and are 0 elsewhere. This shape can also be indexed, in which case the entries along the main diagonal must have the value specified by the index.
|
|
All non-zero entries appear on the main diagonal.
|
|
All entries have the same value. This shape can also be indexed, in which case all entries have the value specified by the index.
|
|
If a single index is given, all non-zero entries must lie on the b sub- and super-diagonals or on the main diagonal. If two indices are given, all non-zero entries must lie on the u subdiagonals, l superdiagonals or on the main diagonal.
|
|
The Matrix must be square and for all i and j, .
|
|
skewsymmetric, antisymmetric
|
|
The Matrix must be square and for all i and j, .
|
|
The Matrix must be square and for all i and .
|
|
skewhermitian, antihermitian
|
|
The Matrix must be square and for all i and j, .
|
|
This shape may be given with the indices upper or lower. If no index is given, it defaults to triangular[upper]. A matrix is upper (lower) triangular if all the non-zero entries appear in the upper (lower) triangle. If the optional second index unit is given, all entries on the main diagonal must be 1 as well.
|
|
This shape may be given with the indices upper or lower. If no index is given, it defaults to Hessenberg[upper]. A matrix is upper (lower) Hessenberg if all the non-zero entries appear in the upper (lower) triangle and first subdiagonal (superdiagonal).
|
|
Users can make additional shapes known to this routine by defining a Maple procedure. If the procedure `IsMatrixShape/myshape` is defined then the function call IsMatrixShape(M, myshape) will invoke `IsMatrixShape/myshape`(M).
|
|
If shape is not a recognized built-in or user-defined shape, this routine returns false.
|
|
If either or both of the row and column dimension of A is zero, IsMatrixShape returns true (regardless of shape).
|
•
|
The IsVectorShape(V, shape) function determines whether V has the specified shape. A Vector has one of the following built-in shapes if it satisfies the listed condition:
|
|
V must have exactly one non-zero entry which contains 1. This shape can also be indexed, in which case the index specifies the position where the one appears.
|
|
V must have exactly one non-zero entry. This shape can also be indexed using two values j and x, in which case the jth entry of V must contain x.
|
|
All entries have the same value. This shape can also be indexed, in which case all entries have the value specified by the index.
|
|
Users can make additional shapes known to this routine by defining a Maple procedure. If the procedure `IsVectorShape/myshape` is defined, then the function call IsVectorShape(V, myshape) will invoke .
|
|
If shape is not a recognized built-in or user-defined shape, this routine returns false.
|
|
If the dimension of V is 0, IsVectorShape returns true (regardless of shape).
|
•
|
For information regarding permissible options in Matrices and Vectors, see the Matrix and Vector constructor pages.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
A Matrix M is idempotent if M . M = M
>
|
`IsMatrixShape/idempotent` := proc(M)
evalb( type(M, 'Matrix'(square)) and Equal(M . M, M) );
end proc:
|
>
|
|
| (8) |
>
|
|
| (9) |
|
|