Question :
Comment fait-on en sage pour avoir le terme général d'une serie formelle en \(x\) comme \(1/(1-q^2x)\) par exemple, où \(q\) est un paramètre (il faudrait obtenir \(q^{2k} x^k\) ) ?
Quelques exemples se trouvent dans la documentation sur les espèces en Sage, mais il faut faire quand même quelques essais et combiner quelques idées pour y parvenir. Une façon de procéder est définir une espèce récursive en assignant un poids pour le paramètre (voir Weighted Species).
Sous une forme récursive, la série s'écrit :
\[ L = 1 + q^2 \cdot x \cdot L \]
Alors, en sage, on écrira:
sage:q=QQ['q'].gen()sage:E=species.EmptySetSpecies()sage:X=species.SingletonSpecies(weight=q^2)sage:L=CombinatorialSpecies()sage:L.define(E+X*L)sage:L.generating_series().coefficients(10)[1,q^2,q^4,q^6,q^8,q^10,q^12,q^14,q^16,q^18]
Aussi:
sage:X.generating_series().coefficients(5)[0,q^2,0,0,0]sage:E.generating_series().coefficients(5)[1,0,0,0,0]
On peut faire le produit de deux espèces:
sage:A=X*Xsage:A.generating_series().coefficients(5)[0,0,q^4,0,0]
On peut faire la somme de deux espèces:
sage:B=X+Xsage:B.generating_series().coefficients(5)[0,2*q^2,0,0,0]
mais pas la différence:
sage:E-XTraceback(mostrecentcalllast):...TypeError:unsupportedoperandtype(s)for-:'EmptySetSpecies_class'and'SingletonSpecies_class'
ni le quotient:
sage:E/XTraceback(mostrecentcalllast):...TypeError:unsupportedoperandtype(s)for/:'EmptySetSpecies_class'and'SingletonSpecies_class'
Encore moins une combinaison des deux:
sage:E/(E-X)Traceback(mostrecentcalllast):...TypeError:unsupportedoperandtype(s)for-:'EmptySetSpecies_class'and'SingletonSpecies_class'
et je ne sais pas pourquoi...