This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The copyright holder grants you permission to redistribute this document freely as a verbatim copy. Furthermore, the copyright holder permits you to develop any derived work from this document provided that the following conditions are met. a) The derived work acknowledges the fact that it is derived from this document, and maintains a prominent reference in the work to the original source. b) The fact that the derived work is not the original OpenMath document is stated prominently in the derived work. Moreover if both this document and the derived work are Content Dictionaries then the derived work must include a different CDName element, chosen so that it cannot be confused with any works adopted by the OpenMath Society. In particular, if there is a Content Dictionary Group whose name is, for example, `math' containing Content Dictionaries named `math1', `math2' etc., then you should not name a derived Content Dictionary `mathN' where N is an integer. However you are free to name it `private_mathN' or some such. This is because the names `mathN' may be used by the OpenMath Society for future extensions. c) The derived work is distributed under terms that allow the compilation of derived works, but keep paragraphs a) and b) intact. The simplest way to do this is to distribute the derived work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. linalg1 http://www.openmath.org/cd http://www.openmath.org/cd/linalg1.ocd 2006-03-30 2004-03-30 3 0 official Operations on Matrices (independent of the matrix representation). vectorproduct application This symbol represents the vector product function. It takes two three dimensional vector arguments and returns a three dimensional vector. It is defined as follows: if we write a as [a_1,a_2,a_3] and b as [b_1,b_2,b_3] then the vector product denoted a x b = [a_2b_3 - a_3b_2 , a_3b_1 - a_1b_3 , a_1b_2 - a_2b_1]. Note that the vector product is often referred to as the cross product. if we write a as [a_1,a_2,a_3] and b as [b_1,b_2,b_3] then the vector product denoted a x b = [a_2b_3 - a_3b_2 , a_3b_1 - a_1b_3 , a_1b_2 - a_2b_1] 2 3 3 2 3 1 1 3 1 2 2 1 scalarproduct application This symbol represents the scalar product function. It takes two vector arguments and returns a scalar value. The scalar product of two vectors a, b is defined as |a| * |b| * cos(\theta), where \theta is the angle between the two vectors and |.| is a euclidean size function. Note that the scalar product is often referred to as the dot product. a.b = |a| * |b| * cos(\theta), where \theta is the angle between the two vectors that is |atan(a_2/a_1)-atan(b_2/b_1)|. N.B. The FMP displays the two dimensional case only. 1 2 2 2 2 1 2 2 2 2 2 1 2 1 outerproduct application This symbol represents the outer product function. It takes two vector arguments and returns a matrix. It is defined as follows: if we write the {i,j}'th element of the matrix to be returned as m_{i,j}, then: m_{i,j}=a_i * b_j where a_i,b_j are the i'th and j'th elements of a, b respectively. outerproduct(a,b)_{i,j} = a_i * b_j transpose application This symbol represents a unary function that denotes the transpose of the given matrix or vector A representation of the equation transpose matrix([0,1],[2,3]) = matrix([0,2],[1,3]) N.B. in this example the row oriented view of matrix construction is being assumed. 0 1 2 3 0 2 1 3 determinant application This symbol denotes the unary function which returns the determinant of its argument, the argument should be a square matrix. The determinant of an identity matrix is 1 vector_selector application This symbol represents the function which allows individual entries to be selected from a vector, or a matrixrow. It takes two arguments. The first argument is the position in the vector (or matrixrow) of the required entry, the second argument is the vector (or matrixrow) in question. The indexing is one based, i.e. the first element is indexed by one. Representation of a specification of selection of the second element of the specific vector [3,6,9]. N.B. in this example the row oriented view of vector construction is being assumed 2 3 6 9 Representation of a specification of selection of the second element of the specific matrixrow [0,1,0]. N.B. in this example the row oriented view of matrixrow construction is being assumed 2 0 1 0 matrix_selector application This symbol represents the function which allows individual entries to be selected from a matrix. It takes three arguments, the first is the index of the row and the second is the index of the column of the required element, the third argument is the matrix in question. The indexing is one based, i.e. the element in the top left hand corner is indexed by (1,1). Representation of a specification of selection of the top left hand entry to the matrix M. 1 1