Algorithme de Risch
Lâalgorithme de Risch, dĂ» Ă Robert Risch (de), est un algorithme destinĂ© aux systĂšmes de calcul formel, permettant de calculer des primitives, c'est-Ă -dire de dĂ©terminer une fonction, connaissant sa dĂ©rivĂ©e. Lâalgorithme transforme ce problĂšme en un problĂšme d'algĂšbre (ou plus prĂ©cisĂ©ment d'algĂšbre diffĂ©rentielle (en)). Il est basĂ© sur la forme de la fonction Ă intĂ©grer et sur des mĂ©thodes pour intĂ©grer les fonctions rationnelles, les radicaux, les logarithmes, et les exponentielles. Risch, qui dĂ©veloppa l'algorithme en 1968, l'a appelĂ© une procĂ©dure de dĂ©cision, parce qu'il est capable de dĂ©terminer si une fonction admet une primitive exprimable Ă l'aide des fonctions Ă©lĂ©mentaires (et, si c'est le cas, de la dĂ©terminer explicitement). Lâalgorithme de Risch est rĂ©sumĂ© (en plus de cent pages) dans Algorithms for Computer Algebra, de Keith Geddes (en), Stephen Czapor et George Labahn. L'algorithme de RischâNorman, plus rapide mais moins gĂ©nĂ©ral, fut dĂ©veloppĂ© en 1976.
Description
L'algorithme de Risch a pour but d'intĂ©grer des fonctions Ă©lĂ©mentaires, c'est-Ă -dire des fonctions obtenues par composition d'exponentielles, de logarithmes, de radicaux, des fonctions trigonomĂ©triques[1], et des quatre opĂ©rations arithmĂ©tiques (+ â Ă Ă·). Laplace rĂ©solut ce problĂšme pour le cas des fonctions rationnelles, en montrant que la primitive d'une telle fonction est somme d'une fraction rationnelle et de multiples de logarithmes de fractions rationnelles. L'algorithme suggĂ©rĂ© par Laplace est gĂ©nĂ©ralement dĂ©crit dans les manuels de calcul intĂ©gral[2] ; en tant que programme informatique, il fut finalement implĂ©mentĂ© dans les annĂ©es 1960.
Entre 1833 et 1841, Liouville formula rigoureusement le problĂšme que rĂ©sout l'algorithme de Risch. Il montra (par des mĂ©thodes analytiques) que s'il existe une solution Ă©lĂ©mentaire g Ă l'Ă©quation g âČ = f, alors il y a des constantes αi et des fonctions Ă©lĂ©mentaires[3] ui et v telles que la solution soit de la forme
(c'est le théorÚme de Liouville-Rosenlicht). Risch développa une méthode permettant de ne considérer qu'un ensemble fini de fonctions élémentaires ayant la forme donnée par Liouville.
L'intuition amenant à l'algorithme de Risch vient du comportement de la dérivée des exponentielles et des logarithmes. Ainsi, pour f eg, on a
donc si eg apparaĂźt dans une primitive, eg devrait dĂ©jĂ figurer dans la fonction initiale. De mĂȘme, comme
- ,
si lnng apparaĂźt, seules les puissances infĂ©rieures du logarithme devraient ĂȘtre dans la fonction initiale.
Exemple
L'existence (ou non) d'une primitive Ă©lĂ©mentaire est extrĂȘmement sensible aux dĂ©tails exacts de la fonction Ă intĂ©grer. Ainsi, la fonction suivante a une primitive Ă©lĂ©mentaire :
Mais ce n'est plus le cas si 71 est remplacé par 72. La raison profonde en est que le groupe de Galois de
est D(4), c'est-Ă -dire qu'il est engendrĂ© par les permutations (1 2 3 4) et (1 3), et contient huit Ă©lĂ©ments (comme celui de x4 â 2), alors que le groupe de Galois de
est S(4), engendré par les permutations (1 2), (1 3), (1 4), et contient 24 éléments.
Implémentation
Transformer la procĂ©dure de dĂ©cision de Risch en un algorithme pouvant ĂȘtre exĂ©cutĂ© par un ordinateur, et ce de maniĂšre efficace, est une tĂąche complexe demandant l'utilisation d'heuristiques, et de nombreuses amĂ©liorations. De fait, en 2008, on ne connaissait aucun logiciel exĂ©cutant l'algorithme complet, quoique plusieurs systĂšmes de calcul formel utilisent une implĂ©mentation partielle. Le systĂšme Axiom est le seul annonçant avoir complĂštement implĂ©mentĂ© la partie nĂ©gative de l'algorithme, c'est-Ă -dire que si Axiom rĂ©pond « non », la primitive demandĂ©e ne peut s'exprimer Ă l'aide des fonctions Ă©lĂ©mentaires, mais dans de nombreux cas, Axiom refuse de se prononcer.
Par exemple, Axiom (voir l'illustration ci-dessus) peut trouver une primitive élémentaire pour la fonction de l'exemple précédent :
La solution renvoyée est:
Beaucoup d'autres programmes ne peuvent trouver une primitive pour cette fonction qu'à l'aide d'intégrales elliptiques, des fonctions spéciales que l'algorithme de Risch ne sait pas traiter.
La fonction suivante[4] est un exemple plus complexe, que la plupart des logiciels n'arrivent pas à intégrer en se limitant aux fonctions élémentaires :
Pourtant, la primitive de cette fonction a une forme assez simple :
Décidabilité
L'algorithme de Risch appliquĂ© Ă des fonctions Ă©lĂ©mentaires quelconques n'est en fait qu'un semi-algorithme, parce qu'il doit vĂ©rifier Ă certaines Ă©tapes si des coefficients d'expressions partielles obtenues sont nuls ou non. MĂȘme pour des expressions assez simples, on sait que cette question est indĂ©cidable : c'est le thĂ©orĂšme de Richardson.
Il faut remarquer que cette difficulté se présente également pour de nombreux algorithmes apparemment sans problÚme, tel que l'algorithme de division des polynÎmes[5]. C'est pourquoi, en pratique, on utilise des heuristiques pour déterminer (avec un risque d'erreur) si ces simplifications ont lieu ou non.
Généralisations
On a pu étendre l'algorithme de Risch (tout comme le théorÚme de Liouville) à certaines classes de fonctions non élémentaires ; on consultera en particulier à ce sujet Bronstein 2005.
Notes
- Ces deux derniers cas sont en fait combinaisons d'exponentielles et de logarithmes complexes
- On le trouvera par exemple en ligne « sur le site de les-mathematiques.net »(Archive.org ⹠Wikiwix ⹠Archive.is ⹠Google ⹠Que faire ?) (consulté en )
- Les u et les v sont "plus élémentaires" que g ; voir l'article théorÚme de Liouville-Rosenlicht pour plus de détails
- Cet exemple vient de Bronstein 1998.
- Pour une analyse détaillée de cette question, voir (en) « Mathematica 7 Documentation: PolynomialQuotient », Section: Possible Issues (consulté le )
Références
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Risch algorithm » (voir la liste des auteurs).
- (en) R. H. Risch, « The solution of the problem of integration in finite terms », Bulletin of the American Mathematical Society, vol. 76, no 3,â , p. 605â608 (lire en ligne, consultĂ© le )
- (en) Maxwell Rosenlicht, « Integration in finite terms », American Mathematical Monthly, Mathematical Association of America, vol. 79, no 9,â , p. 963â972 (lire en ligne)
- (en) Geddes, Czapor, Labahn, Algorithms for Computer Algebra, Boston, Kluwer Academic Publishers, , 6e Ă©d., 586 p. (ISBN 978-0-7923-9259-0)
- (en) Manuel Bronstein, Symbolic Integration I : Transcendental Functions, Springer, , 2e Ă©d., 325 p. (ISBN 978-3-540-21493-9, LCCN 2004110974)
- (en) Manuel Bronstein, Symbolic Integration Tutorial, (lire en ligne)
- (en) Bhatt, Bhuvanesh, « Risch Algorithm », sur MathWorld