| 1 | initial version |
There is a problem with your approach because the $c_i$ commute while $D_i$ anticommute.
After your definition of D, you can use noncommutative polynomials instead:
A = FreeAlgebra(SR, 2, names='c_')
c = A.gens()
exp = 0
for i in range(q):
for j in range(q):
exp = exp + c[i]*c[j]
print exp
print exp.subs({c[i] : D[i] for i in range(q)}).display(eU)
Output:
c_0^2 + c_0*c_1 + c_1*c_0 + c_1^2
[0] + [0] + [0] + [0] + [0]
The result is zero due to anticommutativity.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.