Description
Multiplication of matrices corresponds to composition of maps, and when the target
Q of
g equals the source
P of
f, the product
f*g is defined, its source is the source of
g, and its target is the target of
f.
i1 : R = QQ[a,b,c,x,y,z];
|
i2 : f = matrix{{x},{y},{z}}
o2 = | x |
| y |
| z |
3 1
o2 : Matrix R <-- R
|
i3 : g = matrix{{a,b,c}}
o3 = | a b c |
1 3
o3 : Matrix R <-- R
|
i4 : f*g
o4 = | ax bx cx |
| ay by cy |
| az bz cz |
3 3
o4 : Matrix R <-- R
|
The degree of
f*g is the sum of the degrees of
f and of
g.
The product is also defined when
P !=
Q, provided only that
P and
Q are free modules of the same rank. If the degrees of
P differ from the corresponding degrees of
Q by the same degree
d, then the degree of
f*g is adjusted by
d so it will have a good chance to be homogeneous, and the target and source of
f*g are as before.
i5 : target (f*g) == target f
o5 = true
|
i6 : source (f*g) == source g
o6 = true
|
i7 : isHomogeneous (f*g)
o7 = true
|
i8 : degree(f*g)
o8 = {1}
o8 : List
|
Sometimes, it is useful to make this a map of degree zero. Use
map(Matrix) for this purpose.
i9 : h = map(f*g,Degree=>0)
o9 = | ax bx cx |
| ay by cy |
| az bz cz |
3 3
o9 : Matrix R <-- R
|
i10 : degree h
o10 = {0}
o10 : List
|
i11 : degrees source h
o11 = {{2}, {2}, {2}}
o11 : List
|