About Data Structures - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


About Data Structures in the LinearAlgebra Package

  

LinearAlgebra routines operate on three principal data structures: Matrices, Vectors, and scalars. The implementation of Matrices and Vectors is based on Maple's rtable data structure. As a result, table-based arrays, matrices and vectors are not interchangeable with LinearAlgebra Matrices and Vectors.

  

Note:  The documentation regarding the LinearAlgebra package uses the convention that "matrix" (lowercase "m") refers to a table-based matrix used by routines in the linalg package, and "Matrix" (uppercase "M") refers to an rtable-based Matrix used by routines in the LinearAlgebra package. The convention is similar for vectors and Vectors.

 

Matrices

Vectors

Scalars

Compatibility with Other Maple Objects

Matrices

• 

A Matrix is implemented as an rtable with subtype option Matrix.

• 

Matrices are created by using the Matrix(..) constructor command, or by using the shortcut notation (<a,b,c>).

• 

The mathematical Matrix types supported in the LinearAlgebra package are: rectangular, triangular, Hessenberg, band, and diagonal. Each of these Matrix types can be created in dense or sparse format, and the first three also come in several varieties.

  

i.  rectangular:

 

 

 

 

symmetric,

skew-symmetric,

hermitian,

skew-hermitian

  

ii.  triangular:

 

 

upper,

upper unit,

lower,

lower unit

  

iii.  Hessenberg (triangular plus one extra diagonal):

 

 

upper,

lower

  

 

  

There is no special Matrix type for block forms of the above Matrix types. That is, while the facility exists for the construction of block Matrices of various types (e.g., block diagonal, block triangular, etc.), the blocks are flattened during the construction process, and the resulting Matrix does not preserve the block form.

• 

A number of special Matrices are provided in the LinearAlgebra package (e.g., the Identity Matrix, the Zero Matrix, and the Constant Matrix). In addition, the LinearAlgebra package includes many Matrix operations. See Details of the LinearAlgebra Package for more information.

• 

The type recognizer for a Matrix is type/Matrix.

• 

The i, jth entry of the Matrix A is accessed, extracted, and assigned to by using the notation A[i, j]. For more information see Matrix Entry Extraction and Matrix Entry Assignment.

• 

Matrix algebra expressions such as A+B, A-B, and A.B are evaluated directly.  For more information on performing Matrix algebra and using the Matrix multiplication operator, see rtable_algebra and dot, respectively.

• 

The map, Map, map2, and Map2 commands can be used to apply a function to each entry in a Matrix.

Vectors

• 

A Vector is implemented as an rtable with subtype option Vector[column] or Vector[row].

• 

Vectors are created by using the Vector(..) constructor command, or by using the available shortcut notation (<a,b,c>).

• 

A number of special Vectors are provided in the LinearAlgebra package (e.g., the Unit Vector, the Zero Vector, and the Constant Vector). In addition, the LinearAlgebra package includes many Vector operations. See Details of the LinearAlgebra Package for more information.

• 

The type recognizer for a Vector is type/Vector.

• 

The ith entry of the Vector V is accessed, extracted, and assigned to by using the notation V[i]. For more information see Vector Entry Extraction and Vector Entry Assignment.

• 

The map, Map, map2, and Map2 commands can be used to apply a function to each entry in a Vector.

Scalars

• 

A scalar is a Maple object of type algebraic which neither is nor includes a Matrix or a Vector.

Compatibility with Other Maple Objects

  

The following objects are not recognized as Matrices, Vectors or scalars.

• 

lists

• 

lists of lists

• 

tables

• 

table-based arrays

• 

linalg matrices

• 

linalg vectors

• 

rtable-based Arrays (rtables with subtype option Array)

See Also

Details of the LinearAlgebra Package

Linear Algebra Computations in Maple

Matrix

Matrix and Vector Entry Assignment

Matrix and Vector Entry Extraction

rtable

table

Vector