Calcul formel : Mode d'emploi - Exemples en Maple
Claude Gomez, Bruno Salvy, Paul Zimmermann
Masson, 1995
Chapitre VIII, section 1.4, exercice 5, page 203.
Philippe.Dumas@inria.fr
http://algo.inria.fr/dumas/Maple/
|
|
1. Maple V.3 échoue sur le premier produit, mais est capable de calculer le produit indéfini. Nous employons l'adjectif indéfini comme dans la locution intégrale indéfinie, au sens de primitive.
> product((n^3-1)/(n^3+1),n=2..infinity);
> P:=product((n^3-1)/(n^3+1),n);
Il suffit de calculer le quotient des valeurs aux deux bornes et de simplifier pour parvenir à un résultat qui n'est pas totalement satisfaisant. En effet on voit bien des quotients GAMMA(z)/GAMMA(1+z)=1/z, mais simplify/GAMMA n'est pas assez puissant pour s'en dépétrer.
> limit(P,n=infinity)/subs(n=2,P);
> simplify(",GAMMA);
À partir de V.4, on obtient directement le résultat. On constate aussi que simplify/GAMMA est devenu plus efficace.
> product((n^3-1)/(n^3+1),n=2..infinity);
> P:=product((n^3-1)/(n^3+1),n);
> limit(P,n=infinity)/subs(n=2,P);
> simplify(%,GAMMA);
> evalc(%);
2. Pour le deuxième produit, l'approche numérique n'est pas efficace.
> product(1+(1/2)^(2^n),n=0..infinity);
product: "Cannot show that 1+(1/2)^(2^n) has ICI
no zeros on [0,infinity]"
Une approche formelle est meilleure.
> mul(1+x^(2^n),n=0..6);
> series(%,x,2^7+1);
On a formellement product(1+x^(2^k),k=0..infinity)=sum(x^n,n=0..infinity)=1/(1-x) et cette égalité entre séries formelles est aussi valable pour les complexes x de module strictement plus petit que 1. Ici on prend x=1/2 et la valeur du produit est donc 2. Bien sûr la formule est due à Euler.
3. Le troisième produit se traite comme le premier. La dernière phase de calcul laisse cependant apparaître la fonction gamma.
> p:=product(1+(2*n+1)/(2*n-1)/(n+1)^2,n=2..infinity);
> p:=simplify(p,GAMMA);
Le système connaît certaines identités satisfaites par la fonction gamma, comme la formule des compléments
> simplify(GAMMA(z)*GAMMA(1-z),GAMMA);
et la formule de duplication
> simplify(GAMMA(z)*GAMMA(z+1/2),GAMMA);
Ici on emploie les nombres Z et 3/2-Z.
> Z:=3/4-1/4*I*sqrt(7);
1-Z;
1-Z+1/2;
On peut donc espérer quelques simplifications.
> simplify(1/GAMMA(z)/GAMMA(1-z+1/2),GAMMA);
> 4/7*sqrt(Pi)/GAMMA(z)*GAMMA(1-z)
*simplify(1/GAMMA(1-z)/GAMMA(1-z+1/2),GAMMA);
> 2/7*GAMMA(1-z)*2^(2-2*z)*GAMMA(2*z)/GAMMA(z)
*subs(zz=2*z,simplify(GAMMA(zz)/GAMMA(2-zz),GAMMA));
> simplify(%,GAMMA);
Il ne semble pas cependant que l'on puissse se débarasser de la fonction gamma dans le résultat.