2016-05-25 8 views
1

Lassen Sie d1 und d2 Matrizen über die ganzen Zahlen sein Z. Wie kann ich den Gruppenquotienten ker d1/im d2 in Sage berechnen?Abelscher Gruppenquotient in Salbei

Bisher habe ich in der Lage gewesen, eine Grundlage für den Kernel und Bild wie folgt zu berechnen:

M24 = MatrixSpace(IntegerRing(),2,4) 
d1 = M24([-1,1, 1,-1, -1,1, 1,-1]) 
kerd1 = d1.right_kernel().basis() 

M43 = MatrixSpace(IntegerRing(),4,3) 
d2 = M43([1,1,-1, 1,-1,-1, 1,-1,1, 1,1,1]) 
imd2 = d2.column_space().basis() 

die Ausgabe gibt:

kerd1 = [ 
    (1, 0, 0, -1), 
    (0, 1, 0, 1), 
    (0, 0, 1, 1) 
] 

imd2 = [ 
    (1, 1, 1, 1), 
    (0, 2, 0, -2), 
    (0, 0, 2, 2) 
] 

ich so versucht zu berechnen, den Quotienten:

Z4.<a,b,c,d> = AbelianGroup(4, [0,0,0,0]) 
G = Z4.subgroup([a/d, b*d, c*d]) 
H = Z4.subgroup([a*b*c*d, b^2/d^2, c^2*d^2]) 
G.quotient(H) 

Aber ich habe eine NotImplementedError.

Antwort

0

fand ich zwei Möglichkeiten, dies zu tun:

d1 = matrix(ZZ,4,2, [-1,1, 1,-1, -1,1, 1,-1]).transpose() 
d2 = matrix(ZZ,4,3, [1,1,-1, 1,-1,-1, 1,-1,1, 1,1,1]) 
(d1.right_kernel()/(d2.column_space())).invariants() 
# OUTPUT: (2, 2) 

ChainComplex([d2, d1]).homology()[1] 
# OUTPUT: C2 x C2 
Verwandte Themen