Changeset 02c3fb in git
- Timestamp:
- Mar 2, 2010, 7:41:21 PM (13 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- e1cb99e6603e14230e36591822670ccc7436520a
- Parents:
- de96671c5a8df105dc395a07cd6af4e9df75af2c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/jacobson.lib
rde96671 r02c3fb 19 19 @* invertible) square matrices U and V, such that U*M*V=D is a diagonal matrix. 20 20 @* Depending on the ring, the diagonal entries of D have certain properties. 21 @* 22 @* We call a square matrix D as before 'a weak Jacobson normal form of M'. 23 @* It is known, that over the first rational Weyl algebra K(x)<d>, D can be further 24 @* transformed into a diagonal matrix (1,1,...,1,f,0,..,0), where f is in K(x)<d>. We call 25 @* such a form of D the strong Jacobson normal form. The existence of strong form 26 @* in not guaranteed if one works with algebra, which is not rational Weyl algebra. 27 21 28 22 29 REFERENCES: 23 @* (1)N. Jacobson, 'The theory of rings', AMS, 1943.24 @* (2)Manuel Avelino Insua Hermo, 'Varias perspectives sobre las bases de Groebner :30 @* [1] N. Jacobson, 'The theory of rings', AMS, 1943. 31 @* [2] Manuel Avelino Insua Hermo, 'Varias perspectives sobre las bases de Groebner : 25 32 @* Forma normal de Smith, Algorithme de Berlekamp y algebras de Leibniz'. 26 33 @* PhD thesis, Universidad de Santiago de Compostela, 2005. 27 34 @* [3] V. Levandovskyy, K. Schindelar 'Computing Jacobson normal form using Groebner bases', 35 @* to appear in Journal of Symbolic Computation, 2010. 28 36 29 37 PROCEDURES: … … 124 132 ASSUME: Basering is a commutative polynomial ring in one variable 125 133 PURPOSE: compute the Smith Normal Form of M with (optionally) transformation matrices 126 THEORY: Groebner bases are used for the Smith form like in (2).134 THEORY: Groebner bases are used for the Smith form like in [2] and [3]. 127 135 NOTE: By default, just the Smith normal form of M is returned. 128 136 @* If the optional integer @code{eng1} is non-zero, the list {U,D,V} is returned … … 671 679 ASSUME: Basering is a (non-commutative) ring in two variables. 672 680 PURPOSE: compute a weak Jacobson Normal Form of M over the basering 673 THEORY: Groebner bases and involutions are used, generalizing an idea of (2)681 THEORY: Groebner bases and involutions are used, following [3] 674 682 NOTE: A list L of matrices {U,D,V} is returned. That is L[1]*M*L[3]=L[2], where 675 683 @* L[2] is a diagonal matrix and L[1], L[3] square invertible (unimodular) matrices. … … 1129 1137 matrix m[3][4] = s,x^2*s,x^3*s,s*x^2,s*x+1,(x+1)^3, (x+s)^2, x*s,x,x^2,x^3,s; 1130 1138 1139 // example from the paper: 1140 ring w = 0,(x,d),Dp; 1141 def W=nc_algebra(1,1); 1142 setring W; 1143 matrix m[2][2]=d^2-1,d+1,d^2+1,d-x; 1144 list J=jacobson(m,0); 1145 print(J[1]*m*J[3]); print(J[2]); print(J[1]); print(J[3]); 1146 print(J[1]*m*J[3]-J[2]); 1147 1148 ring w2 = 0,(x,s),Dp; 1149 def W2=nc_algebra(1,s); 1150 setring W2; 1151 poly d = s; 1152 matrix m[2][2]=d^2-1,d+1,d^2+1,d-x; 1153 list J=jacobson(m,0); 1154 print(J[1]*m*J[3]); print(J[2]); print(J[1]); print(J[3]); 1155 print(J[1]*m*J[3]-J[2]); 1156 // here, both JNFs are cyclic 1157 1158 // another example from the paper: 1159 ring w = 0,(x,d),Dp; 1160 def W=nc_algebra(1,1); 1161 setring W; 1162 matrix m[2][2]=-x*d+1, x^2*d, -d, x*d+1; 1163 list J=jacobson(m,0); 1164 print(J[1]*m*J[3]); print(J[2]); print(J[1]); print(J[3]); 1165 print(J[1]*m*J[3]-J[2]); 1166 1167 ring w2 = 0,(x,s),Dp; 1168 def W2=nc_algebra(1,s); 1169 setring W2; 1170 poly d = s; 1171 matrix m[2][2]=-x*d+1, x^2*d, -d, x*d+1; 1172 list J=jacobson(m,0); 1173 print(J[1]*m*J[3]); print(J[2]); print(J[1]); print(J[3]); 1174 print(J[1]*m*J[3]-J[2]); 1175 1131 1176 */ 1132
Note: See TracChangeset
for help on using the changeset viewer.