+
To add two matrices, use the
+ operator.
i1 : ff = matrix{{1,2,3},{4,5,6}}
o1 = | 1 2 3 |
| 4 5 6 |
2 3
o1 : Matrix ZZ <-- ZZ
|
i2 : gg = matrix{{4,5,6},{1,2,3}}
o2 = | 4 5 6 |
| 1 2 3 |
2 3
o2 : Matrix ZZ <-- ZZ
|
i3 : ff+gg
o3 = | 5 7 9 |
| 5 7 9 |
2 3
o3 : Matrix ZZ <-- ZZ
|
The matrices in question must have the same number of rows and columns and also must have the same ring.
-
To subtract two matrices, use the
- operator.
i4 : ff-gg
o4 = | -3 -3 -3 |
| 3 3 3 |
2 3
o4 : Matrix ZZ <-- ZZ
|
The matrices in question must have the same number of rows and columns and also must have the same ring.
*
To multiply two matrices use the
* operator.
i5 : R = ZZ/17[a..l];
|
i6 : ff = matrix {{a,b,c},{d,e,f}}
o6 = | a b c |
| d e f |
2 3
o6 : Matrix R <-- R
|
i7 : gg = matrix {{g,h},{i,j},{k,l}}
o7 = | g h |
| i j |
| k l |
3 2
o7 : Matrix R <-- R
|
i8 : ff * gg
o8 = | ag+bi+ck ah+bj+cl |
| dg+ei+fk dh+ej+fl |
2 2
o8 : Matrix R <-- R
|
^
To raise a square matrix to a power, use the
^ operator.
i9 : ff = matrix{{1,2,3},{4,5,6},{7,8,9}}
o9 = | 1 2 3 |
| 4 5 6 |
| 7 8 9 |
3 3
o9 : Matrix ZZ <-- ZZ
|
i10 : ff^4
o10 = | 7560 9288 11016 |
| 17118 21033 24948 |
| 26676 32778 38880 |
3 3
o10 : Matrix ZZ <-- ZZ
|
inverse of a matrix
If a matrix
f is invertible, then
f^-1 will work.
==
To check whether two matrices are equal, one can use
==.
i11 : ff == gg
o11 = false
|
i12 : ff == ff
o12 = true
|
However, given two matrices
ff and
gg, it can be the case that
ff - gg == 0 returns
true but
ff == gg returns
false.
i13 : M = R^{1,2,3}
3
o13 = R
o13 : R-module, free, degrees {-1, -2, -3}
|
i14 : N = R^3
3
o14 = R
o14 : R-module, free
|
i15 : ff = id_M
o15 = {-1} | 1 0 0 |
{-2} | 0 1 0 |
{-3} | 0 0 1 |
3 3
o15 : Matrix R <-- R
|
i16 : gg = id_N
o16 = | 1 0 0 |
| 0 1 0 |
| 0 0 1 |
3 3
o16 : Matrix R <-- R
|
i17 : ff - gg == 0
o17 = true
|
i18 : ff == gg
o18 = false
|
Since the degrees attached to the matrices were different,
== returned the value
false.
!=
To check whether two matrices are not equal, one can use
!=:
i19 : ff != gg
o19 = true
|
From the definition above of
ff and
gg we see that
!= will return a value of
true if the degrees attached to the matrices are different, even if the entries are the same.
**
Since tensor product (also known as Kronecker product and outer product) is a functor of two variables, we may compute the tensor product of two matrices. Recalling that a matrix is a map between modules, we may write:
ff : K ---> L
gg : M ---> N
ff ** gg : K ** M ---> L ** N
i20 : ff = matrix {{a,b,c},{d,e,f}}
o20 = | a b c |
| d e f |
2 3
o20 : Matrix R <-- R
|
i21 : gg = matrix {{g,h},{i,j},{k,l}}
o21 = | g h |
| i j |
| k l |
3 2
o21 : Matrix R <-- R
|
i22 : ff ** gg
o22 = | ag ah bg bh cg ch |
| ai aj bi bj ci cj |
| ak al bk bl ck cl |
| dg dh eg eh fg fh |
| di dj ei ej fi fj |
| dk dl ek el fk fl |
6 6
o22 : Matrix R <-- R
|