# Revision history [back]

### 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,-z2,-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, and both methods seem to deliver different results...

Here's the respective worksheet: http://www.sagenb.org/home/pub/4890 - which should be self-explanatory. I've taken the transpose of d0, d1, d2 since I'm used working with leftmultiplication (i.e. d0(x) = d0*x), but sage seems to use rightmultiplication to determine the kernel resp. image of a matrix.

### 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,-z2,-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, 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...

Here's the respective worksheet: http://www.sagenb.org/home/pub/4890 - which should be self-explanatory. I've taken the transpose of d0, d1, d2 since I'm used working with leftmultiplication (i.e. d0(x) = d0*x), but sage seems to use rightmultiplication to determine the kernel resp. image of a matrix.

### 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,-z2,-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...

Here's the respective worksheet: http://www.sagenb.org/home/pub/4890 - which should be self-explanatory. 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 of d0, d1, d2 since I'm used working with leftmultiplication (i.e. d0(x) = d0*x), but to write linear maps as d(x) = Dx, whereas sage seems to use rightmultiplication to determine the kernel resp. image d(x) = xD, 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 matrix.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.

### 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,-z2,-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) = Dx, whereas sage seems to use d(x) = xD, 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) 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.

### 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,-z2,-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) = Dx, whereas sage seems to use d(x) = xD, 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.