next up previous
Next: Nonlinear equations and Gröbner Up: Commands Previous: Rational functions integration

Symbolic matrix manipulation

ALG48 represent tex2html_wrap_inline1720 symbolic matrices by lists of the form

displaymath1716

where each element tex2html_wrap_inline1722 is either a real number, a variable or a symbolic expression. Similarly, symbolic vectors [ tex2html_wrap_inline1724 matrices] are represented by lists of the form tex2html_wrap_inline1726 .

All the symbolic matrix commands of ALG48 check that their arguments are valid symbolic matrices and will produce a "Bad Argument Type" error otherwise. In addition, the commands that accept non-square matrices as arguments will also accept symbolic vectors and will return symbolic vectors when appropriate.

ALG48 provides the following symbolic matrix commands [below, ``scalar'' denotes a real number, a variable or a symbolic expression, and I is the identity matrix]:

The Crout LU decomposition computed by the command MLU combines the lower triangular matrix L and the upper triangular matrix U in a single square matrix. The command also returns the number of ``pivots'' (iterations) completed, which is a lower bound on the rank of the matrix. If the matrix is invertible then the number is equal to the dimension of the matrix. Both AINV and ADIV produce a "Infinite Result" error if applied to a non-invertible (singular) matrix.

The result of the basic operation AADD, ASUB, AMUL, and APOW is simplified or not depending on whether the automatic simplification flag is set (see 4.5), whereas the result of ADIV, AINV, MDET, and MLU is always simplified. In addition, RSIM, FCTR, and ASIM can be used to simplify all the elements of a symbolic matrix or vector.

In general the time taken by the matrix manipulation commands increases quickly with the dimensions of the matrices involved. Specifically, for square tex2html_wrap_inline1754 matrices, the time taken by the commands AINV, ADIV, AMUL, APOW, MDET, and MLU is proportional to tex2html_wrap_inline1756 , and the time taken by the other commands is proportional to tex2html_wrap_inline1758 . ALG48 version 4.0 can nevertheless handle relatively large matrices in a reasonable amount of time. For instance, ALG48 takes only 3.5s to invert exactly the following tex2html_wrap_inline1760 matrix, and about 18s to invert it back.

displaymath1717

Note also that the time taken by these commands largely depends on whether the elements of the symbolic matrices are numbers or symbolic expressions, and on the number of variables involved in the symbolic expressions.


next up previous
Next: Nonlinear equations and Gröbner Up: Commands Previous: Rational functions integration

Claude-Nicolas Fiechter (fiechter@cs.pitt.edu), 12 May 1998