### 4.11.4 matrix operations

`+`
  addition with matrix or poly; the polynomial is converted into a diagonal matrix

`-`
  negation or subtraction with matrix or poly (the first operand is expected to be a matrix); the polynomial is converted into a diagonal matrix

`*`
  multiplication with matrix or poly; the polynomial is converted into a diagonal matrix

`/`
  division by poly

`==`, `<>`, `!=`
  comparators

matrix_expression `[` int_expression`,` int_expression `]`
  is a matrix entry, where the first index indicates the row and the second the column

Example:

      ring r=32003,x,dp;
      matrix A[3][3] = 1,3,2,5,0,3,2,4,5; // define a matrix
      print(A); // nice printing of small matrices
    ==> 1,3,2,
    ==> 5,0,3,
    ==> 2,4,5
      A[2,3];   // matrix entry
    ==> 3
      A[2,3] = A[2,3] + 1; // change entry
      A[2,1..3] = 1,2,3;   // change 2nd row
      print(A);
    ==> 1,3,2,
    ==> 1,2,3,
    ==> 2,4,5
      matrix E[3][3]; E = E + 1;  // the unit matrix
      matrix B =x*E - A;
      print(B);
    ==> x-1,-3, -2,
    ==> -1, x-2,-3,
    ==> -2, -4, x-5
      // the same (but x-A does not work):
      B = -A+x;
      print(B);
    ==> x-1,-3, -2,
    ==> -1, x-2,-3,
    ==> -2, -4, x-5
      det(B);        // the characteristic polynomial of A
    ==> x3-8x2-2x-1
      A*A*A - 8 * A*A - 2*A == E;  // Cayley-Hamilton
    ==> 1
      vector v =[x,-1,x2];
      A*v; // multiplication of matrix and vector
    ==> _[1,1]=2x2+x-3
    ==> _[2,1]=3x2+x-2
    ==> _[3,1]=5x2+2x-4
      matrix m[2][2]=1,2,3;
      print(m-transpose(m));
    ==> 0,-1,
    ==> 1,0

User manual for Singular version 4-0-3, 2016, generated by texi2html.