up previous next
4.7.1 Introduction to Matrices
An m x n matrix is represented in CoCoA by the list of its rows
  Mat(R_1,...,R_m)
where each R_i is of type LIST and has length n. A matrix has type MAT. The (A,B)-th entry of a matrix M is given by M[A][B] or M[A,B].

Example
  Use R ::= QQ[x,y,z];
  M := Mat([[x,y,xy^2],[y,z^2,2+x]]);
  M;
Mat([
  [x, y, xy^2],
  [y, z^2, x + 2]
])
-------------------------------
  M[1][3];
xy^2
-------------------------------
  M[1,3];
xy^2
-------------------------------
The following operations are defined as one would expect for matrices
  M^A, +M, -N, M+N, M-N, M*N, F*M, M*F
where M, N are matrices, A is a non-negative integer, and F is a polynomial or rational function, with the obvious restrictions on the dimensions of the matrices involved.

Example
  Use R ::= QQ[x,y];
  N := Mat([[1,2],[3,4]]);
  N^2;
Mat([
  [7, 10],
  [15, 22]
])
-------------------------------
  x/y * N;
Mat([
  [x/y, 2x/y],
  [3x/y, 4x/y]
])
-------------------------------
  N + Mat([[x,x],[y,y]]);
Mat([
  [x + 1, x + 2],
  [y + 3, y + 4]
])
-------------------------------