aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/exmatrix.ht
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/exmatrix.ht
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/hyper/pages/exmatrix.ht')
-rw-r--r--src/hyper/pages/exmatrix.ht98
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}
+