Opened 14 years ago
Closed 13 years ago
#168 closed bug (fixed)
problems with command 'division'
Reported by: | seelisch | Owned by: | somebody |
---|---|---|---|
Priority: | minor | Milestone: | 3-1-1 |
Component: | dontKnow | Version: | 3-1-0 |
Keywords: | division | Cc: |
Description
(This trac ticket is based on two emails from markus.lange.hegermann@… received Sept 23, 2009.) unexpected zero entries in U (see attachment); unexpected mismatching matrix dimensions (see attachment)
Change History (2)
comment:1 Changed 14 years ago by
comment:2 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
2 problems: - size of result matrices in reduce and division: fixed
- shall U be filled with 1 in unused places ? yes (according to the manual)
Note: See
TracTickets for help on using
tickets.
example with polynomial entries: ========================================= ring RR = 0,(x,y,z),ds;
matrix M[5][6]=[0,x*y-x3*y,0,x4-x6,x3*y-x5*y,x3*z-x5*z, 0,y*z-x2*y*z,0,x3*z-x5*z,x2*y*z-x4*y*z,x2*z2-x4*z2, 0,z-x2*z,x2-x2*y+x*y2-x4-x*y3+x4*y,-x2*y*z,x2*y*z-x*y2*z+x*y3*z-x4*y*z,-x*y*z2, 0,0,-x*y+x*y2-y3+x3*y+y4-x3*y2,x2*z+x*y2*z-x4*z,x*y*z-x*y2*z+y3*z-x3*y*z-y4*z+x3*y2*z,x*z2+y2*z2-x3*z2, 0,0,0,0,0,0 ];
matrix N[5][5]=[0,x*y,0,x4,x3*y,x3*z, 0,y*z,0,x3*z,x2*y*z,x2*z2, -x*y,z,x2-x2*y+x*y2,-x2*y*z,x2*y*z-x*y2*z,-x*y*z2, y2,0,-x*y+x*y2-y3,x2*z+x*y2*z,x*y*z-x*y2*z+y3*z,x*z2+y2*z2, 1-x2,0,-y2+x2*y,-x3*z,y2*z-x2*y*z,-x2*z2 ];
list l=division(M,N);
matrix T=l[1]; matrix R=l[2]; matrix U=l[3];
U should be a diagonal matrix of units print(U);
but the first column of M is zero print(M);
=========================================== example with number entries: =========================================== ring RR = 0,(x),ds;
matrix M[2][2]=[1,0,0,0];
matrix NN[2][1]=[1,0]; module N=std(NN);
list l=division(M,N);
matrix T=l[1]; matrix R=l[2]; matrix U=l[3];
print("matrix(M)*U"); print(matrix(M)*U); print("matrix(N)*T+matrix(R)"); print(matrix(N)*T+matrix(R));
print("M"); print(M); print("N"); print(N); print("T"); print(T); R should have the same dimension as M print("R"); print(R); here again a zero is given instead of a unit print("U"); print(U);
matrix R2=reduce(M,N); R2 should have the same dimension as M print("R2"); print(R2);