SymPy et coefficient d'un série

Bonjour,

Je fais de la combinatoire avec la librairie python SymPy et je voudrais extraire automatiquement un coefficient d'une série génératrice. Quand c'est un polynôme ça marche très bien, mais pas quand l'objet est une "vraie" série (infinie) :

Code :
x=symbols('x')
f= Function('f')
g= Function('g')
f=(x+1)**6
g=(1/(-x+1))

print(f.expand().coeff(x**2))
print(g.coeff(x**2))
Sortie :
15
0

Quelqu'un a une idée de comment faire? Je ne trouve rien sur google. Merci d'avance!

Réponses

  • Si tu veux bien passer sur Sage, tu peux utiliser l'anneau des séries de Laurent.
    sage: R.<x> = LaurentSeriesRing(QQ,1)
    sage: g = 1/(1-x)^2
    sage: g.coefficients()[2]
    3
    sage: g.coefficients()
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    sage: g
    1 + 2*x + 3*x^2 + 4*x^3 + 5*x^4 + 6*x^5 + 7*x^6 + 8*x^7 + 9*x^8 + 10*x^9 + 11*x^10 + 12*x^11 + 13*x^12 + 14*x^13 + 15*x^14 + 16*x^15 + 17*x^16 + 18*x^17 + 19*x^18 + 20*x^19 + O(x^20)
    sage: R.<x> = LaurentSeriesRing(QQ, 1, default_prec = 12)
    sage: g = 1/(1-x)^2
    sage: g
    1 + 2*x + 3*x^2 + 4*x^3 + 5*x^4 + 6*x^5 + 7*x^6 + 8*x^7 + 9*x^8 + 10*x^9 + 11*x^10 + 12*x^11 + O(x^12)
    
  • Ah merci beaucoup mais malheureusement je dois rester en python (c'est pour un TP pour des étudiants).
  • Bon, tant pis pour eux.
    g.series(x,0,3).coeff(x**2)
    g.series(x,3,3).coeff((x-3)**2)
    
  • Aaaaaah, merci MathCross tu es mon héros de la journée!
Connectez-vous ou Inscrivez-vous pour répondre.