Ask Your Question

Revision history [back]

You can do this by leaving the Symbolic Ring and play with genuine polynomials:

sage: var('x y')
(x, y)
sage: f(x,y)=(1/(1-x*y))*(1/(1-x*y^2))*(1/(1-x*y^3))*(1-x*y^4)
sage: T = f.taylor((x,0), (y,0), 30).polynomial(QQ) ; T
x^15*y^15 + 2*x^14*y^16 + 2*x^13*y^17 + 2*x^12*y^18 + 2*x^11*y^19 + 2*x^10*y^20 + x^14*y^15 + x^13*y^16 + x^12*y^17 + x^11*y^18 + x^10*y^19 - x^9*y^20 - x^8*y^21 - x^7*y^22 + x^14*y^14 + 2*x^13*y^15 + 2*x^12*y^16 + 2*x^11*y^17 + 2*x^10*y^18 + x^9*y^19 + x^13*y^14 + x^12*y^15 + x^11*y^16 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + x^13*y^13 + 2*x^12*y^14 + 2*x^11*y^15 + 2*x^10*y^16 + 2*x^9*y^17 + x^12*y^13 + x^11*y^14 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + x^12*y^12 + 2*x^11*y^13 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^11*y^12 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + x^11*y^11 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1
sage: T.truncate(x,11).truncate(y,21)
2*x^10*y^20 + x^10*y^19 - x^9*y^20 + 2*x^10*y^18 + x^9*y^19 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + 2*x^10*y^16 + 2*x^9*y^17 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1
sage: T.mod(x^11).mod(y^21)
2*x^10*y^20 + x^10*y^19 - x^9*y^20 + 2*x^10*y^18 + x^9*y^19 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + 2*x^10*y^16 + 2*x^9*y^17 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1

You can do this by leaving the Symbolic Ring and play with genuine polynomials:

sage: var('x y')
(x, y)
sage: f(x,y)=(1/(1-x*y))*(1/(1-x*y^2))*(1/(1-x*y^3))*(1-x*y^4)
sage: T = f.taylor((x,0), (y,0), 30).polynomial(QQ) ; T
x^15*y^15 + 2*x^14*y^16 + 2*x^13*y^17 + 2*x^12*y^18 + 2*x^11*y^19 + 2*x^10*y^20 + x^14*y^15 + x^13*y^16 + x^12*y^17 + x^11*y^18 + x^10*y^19 - x^9*y^20 - x^8*y^21 - x^7*y^22 + x^14*y^14 + 2*x^13*y^15 + 2*x^12*y^16 + 2*x^11*y^17 + 2*x^10*y^18 + x^9*y^19 + x^13*y^14 + x^12*y^15 + x^11*y^16 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + x^13*y^13 + 2*x^12*y^14 + 2*x^11*y^15 + 2*x^10*y^16 + 2*x^9*y^17 + x^12*y^13 + x^11*y^14 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + x^12*y^12 + 2*x^11*y^13 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^11*y^12 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + x^11*y^11 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1
sage: T.parent()
Multivariate Polynomial Ring in x, y over Rational Field
sage: T.truncate(x,11).truncate(y,21)
2*x^10*y^20 + x^10*y^19 - x^9*y^20 + 2*x^10*y^18 + x^9*y^19 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + 2*x^10*y^16 + 2*x^9*y^17 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1

or

sage: T.mod(x^11).mod(y^21)
2*x^10*y^20 + x^10*y^19 - x^9*y^20 + 2*x^10*y^18 + x^9*y^19 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + 2*x^10*y^16 + 2*x^9*y^17 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1
sage: T.truncate(x,11).truncate(y,21) == T.mod(x^11).mod(y^21)

True

You can do this by leaving the Symbolic Ring and play with genuine polynomials:

sage: var('x y')
(x, y)
sage: f(x,y)=(1/(1-x*y))*(1/(1-x*y^2))*(1/(1-x*y^3))*(1-x*y^4)
sage: T = f.taylor((x,0), (y,0), 30).polynomial(QQ) ; T
x^15*y^15 + 2*x^14*y^16 + 2*x^13*y^17 + 2*x^12*y^18 + 2*x^11*y^19 + 2*x^10*y^20 + x^14*y^15 + x^13*y^16 + x^12*y^17 + x^11*y^18 + x^10*y^19 - x^9*y^20 - x^8*y^21 - x^7*y^22 + x^14*y^14 + 2*x^13*y^15 + 2*x^12*y^16 + 2*x^11*y^17 + 2*x^10*y^18 + x^9*y^19 + x^13*y^14 + x^12*y^15 + x^11*y^16 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + x^13*y^13 + 2*x^12*y^14 + 2*x^11*y^15 + 2*x^10*y^16 + 2*x^9*y^17 + x^12*y^13 + x^11*y^14 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + x^12*y^12 + 2*x^11*y^13 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^11*y^12 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + x^11*y^11 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1
sage: T.parent()
Multivariate Polynomial Ring in x, y over Rational Field
sage: T.truncate(x,11).truncate(y,21)
2*x^10*y^20 + x^10*y^19 - x^9*y^20 + 2*x^10*y^18 + x^9*y^19 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + 2*x^10*y^16 + 2*x^9*y^17 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1

or

sage: T.mod(x^11).mod(y^21)
2*x^10*y^20 + x^10*y^19 - x^9*y^20 + 2*x^10*y^18 + x^9*y^19 + x^10*y^17 + x^9*y^18 - x^8*y^19 - x^7*y^20 + 2*x^10*y^16 + 2*x^9*y^17 + x^10*y^15 + x^9*y^16 - x^7*y^18 - x^6*y^19 + 2*x^10*y^14 + 2*x^9*y^15 + 2*x^8*y^16 + x^10*y^13 + x^9*y^14 + x^8*y^15 - x^7*y^16 - x^6*y^17 + 2*x^10*y^12 + 2*x^9*y^13 + 2*x^8*y^14 + x^7*y^15 + x^10*y^11 + x^9*y^12 + x^8*y^13 + x^7*y^14 - x^6*y^15 - x^5*y^16 + x^10*y^10 + 2*x^9*y^11 + 2*x^8*y^12 + 2*x^7*y^13 + x^9*y^10 + x^8*y^11 + x^7*y^12 - x^5*y^14 + x^9*y^9 + 2*x^8*y^10 + 2*x^7*y^11 + 2*x^6*y^12 + x^8*y^9 + x^7*y^10 + x^6*y^11 - x^5*y^12 - x^4*y^13 + x^8*y^8 + 2*x^7*y^9 + 2*x^6*y^10 + x^5*y^11 + x^7*y^8 + x^6*y^9 + x^5*y^10 - x^4*y^11 + x^7*y^7 + 2*x^6*y^8 + 2*x^5*y^9 + x^6*y^7 + x^5*y^8 - x^3*y^10 + x^6*y^6 + 2*x^5*y^7 + 2*x^4*y^8 + x^5*y^6 + x^4*y^7 - x^3*y^8 + x^5*y^5 + 2*x^4*y^6 + x^3*y^7 + x^4*y^5 + x^3*y^6 - x^2*y^7 + x^4*y^4 + 2*x^3*y^5 + x^3*y^4 + x^3*y^3 + 2*x^2*y^4 + x^2*y^3 - x*y^4 + x^2*y^2 + x*y^3 + x*y^2 + x*y + 1
sage: T.truncate(x,11).truncate(y,21) == T.mod(x^11).mod(y^21)
True

True