Quantcast
Channel: Planet Sage
Viewing all articles
Browse latest Browse all 414

Sébastien Labbé: Définition d'une série formelle en Sage

$
0
0

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...


Viewing all articles
Browse latest Browse all 414

Trending Articles