Calcul formel : Mode d'emploi - Exemples en Maple

Claude Gomez, Bruno Salvy, Paul Zimmermann

Masson, 1995

Chapitre IX, section 3.3, exercice 8, page 254.

Philippe.Dumas@inria.fr
http://algo.inria.fr/dumas/Maple/

Page du Projet Algorithmes | Page de Philippe Dumas | Page Maple de Philippe Dumas

Retour en page principale
Table des matières
Index
Maple V.3 worksheet
Maple V.4 worksheet
Maple V.5 worksheet


L'intégrale proposée se calcule sans problème à partir de la version V.4.

> J:=Int(1/(sqrt(1+x)+sqrt(1-x)+2),x=-1..1);

[Maple Math]

> value(J);

[Maple Math]

Par contre en Maple V.3, le calcul provoque une erreur.

> int(1/(sqrt(1+x)+sqrt(1-x)+2),x=-1..1);


Error, (in int/elliptic) 
invalid cancellation of FAIL or infinity

Comme nous ne sommes pas chiens, nous essayons tout de même de répondre à la question. Le point crucial est l'existence d'un paramétrage rationnel pour une certaine courbe algébrique. La fonction définie par l'expression suivante est algébrique. Nous le vérifions.

> f:=sqrt(1+x)+sqrt(1-x);

[Maple Math]

> expand(f^2);

[Maple Math]

> expand((f^2-2)^2);

[Maple Math]

Nous avons trouvé un polynôme qui s'annule sur la fonction.

> P:=y^4-4*y^2+4*x^2;

[Maple Math]

> simplify(subs(y=f,P),radical);

[Maple Math]

La courbe algébrique à laquelle nous faisions allusion est la quartique (courbe du quatrième degré) d'équation P(x,y)=0. La voie naturelle pour calculer l'intégrale proposée est de trouver un paramétrage rationnel de cette courbe (son existence n'est pas garantie, mais si on pose l'exercice c'est bien parce que ce paramétrage existe). Il existe des méthodes de recherche de tels paramétrages, mais nous allons nous contenter de notre intuition.

> K:=student[changevar](sqrt((1+x)/(1-x))=t,J,t);

[Maple Math]

> L:=simplify(K,radical,symbolic);

[Maple Math]

Nous avons une intégrale qui comporte encore un radical, mais la courbe sous-jacente est une hyperbole d'équation y^2=1+t^2. Nous savons en trouver un paramétrage rationnel. Il suffit de couper l'hyperbole par une parallèle à l'une des asymptotes. Nous employons par exemple la famille de droites d'équation y=t+u (les coordonnées sont t et y, le paramètre est u).

> solve((t+u)^2=1+t^2,t);

[Maple Math]

> M:=student[changevar](t=-1/2*(-1+u^2)/u,L);

[Maple Math]

> N:=simplify(M,radical,symbolic);

[Maple Math]

Nous sommes parvenus à une intégrale de fonction rationnelle. Du point de vue théorique, la question est terminée. On pourrait poursuivre en envisageant la décomposition en éléments simples.

> r:=op(1,N);

[Maple Math]

> s:=convert(r,fullparfrac,u);

[Maple Math] [Maple Math]

Précisons qu'à ce stade, Maple V.3 fournit la valeur de l'intégrale.

> v:=value(N);

[Maple Math]

> radnormal(v,rationalized);

[Maple Math]

Revenons sur le paramétrage de la quartique dont nous avons parlé plus haut. Nous l'obtenons en mettant bout à bout les deux changements de variables que nous avons utilisés.

> solve(sqrt((1+x)/(1-x))=t,x);

[Maple Math]

> X:=normal(subs(t=1/2*(-1+u^2)/u,%));

[Maple Math]

> Y:=simplify(subs(x=X,f),radical,symbolic);

[Maple Math]

Vérifions que ce paramétrage est correct.

> normal(subs(x=X,y=Y,P));

[Maple Math]

Un autre changement de variables, d'aspect peut-être plus simple, permettrait d'arriver au résultat, mais il aurait été dommage de ne pas voir un peu de pays.

> Int(1/(sqrt(1+x)+sqrt(1-x)+2),x=-1..1);
student[changevar](u=sqrt(1+x),%,u);

[Maple Math]

[Maple Math]

> value(%);

[Maple Math]

> expand(readlib(rationalize)(%));

[Maple Math]

Retour en page principale