diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/exmatrix.ht | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/hyper/pages/exmatrix.ht')
-rw-r--r-- | src/hyper/pages/exmatrix.ht | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/hyper/pages/exmatrix.ht b/src/hyper/pages/exmatrix.ht new file mode 100644 index 00000000..de7ff9ce --- /dev/null +++ b/src/hyper/pages/exmatrix.ht @@ -0,0 +1,98 @@ +% Copyright The Numerical Algorithms Group Limited 1991. +% Certain derivative-work portions Copyright (C) 1988 by Leslie Lamport. +% All rights reserved + +% Title: Matrices + +\begin{page}{ExMatrixBasicFunction}{Basic Arithmetic Operations on Matrices} +\beginscroll +You can create a matrix using the function \spadfun{matrix}. +The function takes a list of lists of elements of the ring and produces a +matrix whose \spad{i}th row contains the elements of the \spad{i}th list. +For example: +\spadpaste{m1 := matrix([[1,-2,1],[4,2,-4]]) \bound{m1}} +\spadpaste{m2 := matrix([[1,0,2],[20,30,10],[0,200,100]]) \bound{m2}} +\spadpaste{m3 := matrix([[1,2,3],[2,4,6]]) \bound{m3}} +Some of the basic arithmetic operations on matrices are: +\spadpaste{m1 + m3 \free{m1} \free{m3}} +\spadpaste{100 * m1 \free{m1}} +\spadpaste{m1 * m2 \free{m1} \free{m2}} +\spadpaste{-m1 + m3 * m2 \free{m1} \free{m2} \free{m3}} +You can also multiply a matrix and a vector provided +that the matrix and vector have compatible dimensions. +\spadpaste{m3 *vector([1,0,1]) \free{m3}} +However, the dimensions of the matrices must be compatible in order for +\Language{} to perform an operation - otherwise an error message will occur. +\endscroll +\autobuttons\end{page} + + +\begin{page}{ExConstructMatrix}{Constructing new Matrices} +\beginscroll +A number of functions exist for constructing new matrices from existing ones. + +If you want to create a matrix whose entries are 0 except on the main +diagonal you can use \spadfun{diagonalMatrix}. +This function takes a list of ring elements as an argument and returns a +square matrix which has these elements on the main diagonal. +Consider the following example: +\spadpaste{diagonalMatrix([1,2,3,2,1])} + +The function \spadfun{subMatrix}(\spad{a},\spad{i},\spad{j},\spad{k},\spad{l}) +constructs a new matrix +consisting of rows \spad{i} through \spad{j} and columns \spad{k} through +\spad{l} of \spad{a} , inclusive. +\spadpaste{subMatrix(matrix([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]), 1,3,2,4)} + + +The functions \spadfun{horizConcat} and \spadfun{vertConcat} +concatenate matrices +horizontally and vertically, respectively. +\spadpaste{horizConcat(matrix([[1,2,3],[6,7,8]]),matrix([[11,12,13],[55,77,88]])) } +\spadpaste{vertConcat(matrix([[1,2,3],[6,7,8]]),matrix([[11,12,13],[55,77,88]])) } + + +The function \spadfunX{setsubMatrix}(\spad{a},\spad{i},\spad{k},\spad{b}) +replaces the submatrix of \spad{a} +starting at row \spad{i} and column \spad{k} with the elements of the matrix i\spad{b}. +\spadpaste{b:=matrix([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]) \bound{b}} +\spadpaste{setsubMatrix!(b,1,1,transpose(subMatrix(b,1,3,1,3)))\free{b}} +changes the submatrix of \spad{b} consisting of the first 3 rows and columns +to its transpose. +\endscroll +\autobuttons\end{page} + + +\begin{page}{ExTraceMatrix}{Trace of a Matrix} +\beginscroll +If you have a square matrix, then you can compute its `trace'. +The function \spadfun{trace} computes the sum of all elements on the diagonal +of a matrix. +For example `trace' for a four by four Vandermonde matrix. +\spadpaste{trace( matrix([[1,x,x**2,x**3],[1,y,y**2,y**3],[1,z,z**2,z**3],[1,u,u**2,u**3]]) )} +\endscroll +\autobuttons\end{page} + +\begin{page}{ExDeterminantMatrix}{Determinant of a Matrix} +\beginscroll +The function \spadfun{determinant} computes the determinant of a matrix over a +commutative ring, that is a ring whose multiplication is commutative. +\spadpaste{determinant(matrix([[1,2,3,4],[2,3,2,5],[3,4,5,6],[4,1,6,7]]))} +\endscroll +\autobuttons\end{page} + +\begin{page}{ExInverseMatrix}{Inverse of a Matrix} +\beginscroll +The function \spadfun{inverse} computes the inverse of a square matrix. +\spadpaste{inverse(matrix([[1,2,1],[-2,3,4],[-1,5,6]])) } +(If the inverse doesn't exist, then \Language{} returns `failed'.) +\endscroll +\autobuttons\end{page} + +\begin{page}{ExRankMatrix}{Rank of a Matrix} +\beginscroll +The function \spadfun{rank} gives you the rank of a matrix: +\spadpaste{rank(matrix([[0,4,1],[5,3,-7],[-5,5,9]]))} +\endscroll +\autobuttons\end{page} + |