Calcul formel : Mode d'emploi - Exemples en Maple
Claude Gomez, Bruno Salvy, Paul Zimmermann
Masson, 1995
Chapitre VIII, section 1.4, exercice 6, page 204.
Philippe.Dumas@inria.fr
http://algo.inria.fr/dumas/Maple/
|
|
Nous employons Maple V.3. Les résultats sont les mêmes avec Maple V.4 et V.5.
1. Pour le premier produit on peut employer la méthode classique qui consiste à considérer la série des logarithmes. Ceci est licite car le terme général tend vers 1, que x soit réel ou complexe et le logarithme est défini pour n assez grand.
> t:=(1-1/n)^x*(1+x/n);
> asympt(ln(t),n);
Le terme général de la série des logarithmes est un O(n^(-2)) dont la série converge absolument. Le produit converge donc absolument.
On aurait pu procéder autrement. En effet le logiciel peut évaluer le produit indéfini.
> P:=product(t,n);
> simplify(P,GAMMA);
Il suffit donc d'étudier le comportement de ce produit indéfini pour n tendant vers l'infini.
> asympt(GAMMA(n+x)/GAMMA(n)/(n-1)^x,n);
Error, (in asympt) unable to compute series
Le logiciel échoue. Pourtant il est clair que la formule de Stirling doit donner un développement asymptotique. Nous aidons donc le logiciel.
> Stirling:=asympt(ln(GAMMA(z)),z);
> subs(z=n+x,Stirling)-subs(z=n,Stirling)-x*ln(n-1);
> asympt(",n);
On pourrait s'étonner que le premier terme ne soit pas simplifié. Cela est dû au fait que le logiciel voit le développement précédent comme un développement suivant les puissances de n. En particulier les coefficients de développement ne sont pas traités du point de vue asymptotique.
> map(expand,");
Le produit indéfini a pour limite 0 à l'infini, donc le produit cherché est donné par la valeur du produit indéfini à la borne inférieure.
> p:=1/eval(subs(n=2,P));
2. Passons au second produit. Il se traite sans processeur et seulement à l'aide d'un cerveau humain.
Si x a un module strictement plus petit que 1, le terme général tend vers x et non vers 1, donc le produit est divergent. Si x vaut 1 le terme général est constant de valeur 1, donc le produit converge vers 1.
Si x a un module strictement plus grand que 1, le terme général tend vers 1. Il est commode de poser x=1/u. Nous employons le logiciel, mais cela est loin d'être indispensable. Nous pourrions définir le terme général comme suit.
> t:=(1+u^(2*n-1))/(1+u^(2*n));
Ce n'est pas une bonne idée, car n est une indéterminée et l'expression n'est pas rationnelle en u. De plus le comportement asymptotique de ce terme ne s'exprime pas suivant les puissantces de u, mais suivant les puissances de v=u^n. Nous employons donc v.
> t:=(1+v^2/u)/(1+v^2);
> series(t,v,3);
Nous revenons aux notations de départ.
> subs(u=1/x,v=1/x^n,");
> map(combine,",power);
La série des logarithmes a un terme général qui est O(x^(-2n)). Elle converge donc absolument et le produit converge absolument.
Il reste le cas où x est de module 1 (et différent de 1). Il s'écrit alors x=exp(i theta). Si theta est de la forme (2k+1)Pi/(2n), alors un des dénominateurs (et même une infinité) est nul et la question n'a pas de sens. Si theta est de la forme (2k+1)Pi/(2n-1), alors une infinité de numérateurs sont nuls et le produit est divergent. Il ne reste donc plus que le cas où theta est incommensurable à Pi. Le terme général s'écrit alors exp(i theta/2)[cos(theta/2)+sin(theta/2)tg(n theta)]. La série des arguments est clairement divergente ; les produits partiels sont équirépartis modulo Pi. Le produit est divergent.