ASKSAGE: Sage Q&A Forum - Latest question feedhttp://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Wed, 18 Jul 2012 02:30:25 -0500Homology of chain complexeshttp://ask.sagemath.org/question/9159/homology-of-chain-complexes/I've got the following chain complex:
0->ZZ^2->ZZ^4->ZZ^3->0
With the boundarymaps given by
d0:(z1,z2,z3) |-> 0
d1:(z1,z2,z3,z4) |-> (-2(z1+z3+z4), 2(z1-z2), z2+z3+z4)
d2:(z1,z2)|-> (z1+z2, z1+z2,-z1,-z2)
Now I tried to compute the homology groups (e.g. H0 = ker d0 / im d1) using sage. One time manually via taking the quotients of the respective modules, one time using the ChainComplex() module. However, I don't really understand the output using the first method (e.g. what means: "Finitely generated module V/W over Integer Ring with invariants (2, 0)"), and both methods seem to deliver different results...
I've defined my boundary maps as matrices:
d0 = matrix(ZZ, 1,3,[[0,0,0]]).transpose()
d1 = matrix(ZZ, 3,4,[[-2,0,-2,-2],[2,-2,0,0],[0,1,1,1]]).transpose()
d2 = matrix(ZZ,4,2,[[1,1],[1,1],[-1,0],[0,-1]]).transpose()
Where I've taken the transpose since I'm used to write linear maps as d(x) = D*x, whereas sage seems to use d(x) = x*D, where D is the corresponding matrix.
Calculating the homology groups via
H0 = d0.kernel()/d1.image()
H1 = d1.kernel()/d2.image()
H2 = d2.kernel()
gives the following results:
H0: Finitely generated module V/W over Integer Ring with invariants (2, 0)
H1: Finitely generated module V/W over Integer Ring with invariants ()
H2: Free module of degree 2 and rank 0 over Integer Ring
whereas
ChainComplex([d0,d1,d2]).homology()
yields a different strucure.
{0: Z, 1: Z, 2: C2, 3: 0}
To maximize confusion, calculation by hand gives me H0=C2^2 x ZZ, H1=0, H2=0. I'd might have made some mistakes there, though. So I don't really konw how to interpret the results from Sage.romanWed, 18 Jul 2012 02:30:25 -0500http://ask.sagemath.org/question/9159/