This is the type of a matrix over a noncommutative ring. These represent homomorphisms between two free modules in chosen bases (whether you think of it as a map of left or right modules is up you). Modules themselves are not implemented yet in the NCAlgebra package, but are slated for a later release.
This is the type of a matrix with entries in an NCRing. Many of the basic operations one can perform on a Matrix are also allowed with an NCMatrix, and the behavior of the functions should be similar to the corresponding 'usual' command. Some examples of creating and using NCMatrices are given below.
i1 : A = QQ{a,b,c,d}
o1 = A
o1 : NCPolynomialRing
|
i2 : M = ncMatrix {{a,b,c,d}}
o2 = | a b c d |
o2 : NCMatrix
|
i3 : N = ncMatrix {{M,2*M,3*M},{4*M,5*M,6*M}}
o3 = | a b c d 2*a 2*b 2*c 2*d 3*a 3*b 3*c 3*d |
| 4*a 4*b 4*c 4*d 5*a 5*b 5*c 5*d 6*a 6*b 6*c 6*d |
o3 : NCMatrix
|
i4 : B = QQ{x,y,z}
o4 = B
o4 : NCPolynomialRing
|
i5 : f = y*z + z*y - x^2
2
o5 = zy+yz-x
o5 : B
|
i6 : g = x*z + z*x - y^2
2
o6 = zx-y +xz
o6 : B
|
i7 : h = z^2 - x*y - y*x
2
o7 = z -yx-xy
o7 : B
|
i8 : I = ncIdeal {f,g,h}
2 2 2
o8 = Two-sided ideal {zy+yz-x , zx-y +xz, z -yx-xy}
o8 : NCIdeal
|
i9 : Igb = ncGroebnerBasis I
--Calling Bergman for NCGB calculation.
Complete!
2 2 2
o9 = y x-xy ; Lead Term = (y x, 1)
2 2 2
yx -x y; Lead Term = (yx , 1)
2
zx-y +xz; Lead Term = (zx, 1)
2
zy+yz-x ; Lead Term = (zy, 1)
2 2
z -yx-xy; Lead Term = (z , 1)
o9 : NCGroebnerBasis
|
i10 : M = ncMatrix {{x, y, z}}
o10 = | x y z |
o10 : NCMatrix
|
i11 : sigma = ncMap(B,B,{y,z,x})
o11 = NCRingMap B <--- B
o11 : NCRingMap
|
i12 : N = ncMatrix {{M},{sigma M}, {sigma sigma M}}
o12 = | x y z |
| y z x |
| z x y |
o12 : NCMatrix
|
i13 : Nred = N^3 % Igb
o13 = | -y^2*z+y^3+y*x*z-y*x*y+x*y*z+x*y^2+2*x*y*x+x^2*z+3*x^2*y y^2*z+y*x*z+2*y*x*y+x*y*z+3*x*y^2-x*y*x-x^2*z+x^2*y+x^3 2*y^2*z+y^3+y*x*y+x*y*x+2*x^2*z+x^3 |
| y^2*z+y*x*z+2*y*x*y+x*y*z+3*x*y^2-x*y*x-x^2*z+x^2*y+x^3 2*y^2*z+y^3+y*x*y+x*y*x+2*x^2*z+x^3 -y^2*z+y^3+y*x*z-y*x*y+x*y*z+x*y^2+2*x*y*x+x^2*z+3*x^2*y |
| 2*y^2*z+y^3+y*x*y+x*y*x+2*x^2*z+x^3 -y^2*z+y^3+y*x*z-y*x*y+x*y*z+x*y^2+2*x*y*x+x^2*z+3*x^2*y y^2*z+y*x*z+2*y*x*y+x*y*z+3*x*y^2-x*y*x-x^2*z+x^2*y+x^3 |
o13 : NCMatrix
|
i14 : C = B/I
o14 = C
o14 : NCQuotientRing
|
i15 : phi = ncMap(C,B,gens C)
o15 = NCRingMap C <--- B
o15 : NCRingMap
|
i16 : NC = phi N
o16 = | x y z |
| y z x |
| z x y |
o16 : NCMatrix
|
i17 : N3C = NC^3
o17 = | -y^2*z+y^3+y*x*z-y*x*y+x*y*z+x*y^2+2*x*y*x+x^2*z+3*x^2*y y^2*z+y*x*z+2*y*x*y+x*y*z+3*x*y^2-x*y*x-x^2*z+x^2*y+x^3 2*y^2*z+y^3+y*x*y+x*y*x+2*x^2*z+x^3 |
| y^2*z+y*x*z+2*y*x*y+x*y*z+3*x*y^2-x*y*x-x^2*z+x^2*y+x^3 2*y^2*z+y^3+y*x*y+x*y*x+2*x^2*z+x^3 -y^2*z+y^3+y*x*z-y*x*y+x*y*z+x*y^2+2*x*y*x+x^2*z+3*x^2*y |
| 2*y^2*z+y^3+y*x*y+x*y*x+2*x^2*z+x^3 -y^2*z+y^3+y*x*z-y*x*y+x*y*z+x*y^2+2*x*y*x+x^2*z+3*x^2*y y^2*z+y*x*z+2*y*x*y+x*y*z+3*x*y^2-x*y*x-x^2*z+x^2*y+x^3 |
o17 : NCMatrix
|
i18 : X = NC + 3*NC
o18 = | 4*x 4*y 4*z |
| 4*y 4*z 4*x |
| 4*z 4*x 4*y |
o18 : NCMatrix
|
i19 : Y = NC | 2*NC
o19 = | x y z 2*x 2*y 2*z |
| y z x 2*y 2*z 2*x |
| z x y 2*z 2*x 2*y |
o19 : NCMatrix
|
i20 : Z = X || NC
o20 = | 4*x 4*y 4*z |
| 4*y 4*z 4*x |
| 4*z 4*x 4*y |
| x y z |
| y z x |
| z x y |
o20 : NCMatrix
|