Proposition de stage Titre du stage : Approximation de racines complexes de polynômes via les algorithmes de Durand-Kerner et Aberth-Ehrlich Thématique : algorithmique et calcul formel Laboratoire : INRIA/LORIA, Nancy (www.loria.fr) Équipe : CARAMEL (http://caramel.loria.fr/) Directeur de stage : Paul Zimmermann, [email protected] Directeur de laboratoire : Sylvain Petitjean, [email protected] Présentation générale du domaine : En calcul formel, l’objet le plus simple que l’on puisse construire avec une variable symbolique est le polynôme. Les opérations sur les polynômes sont donc des briques de base du calcul formel, et il est crucial qu’elles soient effectuées efficacement. L’une de ces opérations est l’approximation des racines (réelles ou complexes) d’un polynôme. On distingue deux classes d’algorithmes pour résoudre ce problème : ceux qui fournissent une borne rigoureuse sur la qualité de l’approximation renvoyée, et les autres... On s’intéresse ici à la première classes d’algorithmes. Un exemple de « borne rigoureuse » consiste à isoler les racines du polynôme, dans des intervalles pour les racines réelles, ou dans des « boîtes » pour les racines complexes. En 2012, Benjamin Dadoun (ÉNS Cachan) a amélioré et implanté efficacement l’algorithme CEVAL proposé par Sagraloff et Yap [5, 6]. Malheureusement cet algorithme s’est révélé d’une complexité trop élevée pour pouvoir traiter des polynômes de grand degré (1000 voire plus). Objectifs du stage : L’objectif du stage est d’étudier les algorithmes de Durand-Kerner et d’Aberth-Ehrlich et d’en obtenir une implantation efficace et prouvée numériquement. Ces deux algorithmes sont des variantes de la méthode de Weierstrass qui approche toutes les racines simultanément. La principale différence est que l’algorithme de Durand-Kerner se contente d’évaluer le polynôme donné p(x) en les n approximations des racines : x0i = xi − p(xi ) , an (xi − x1 ) · · · (xi − xi−1 )(xi − xi+1 ) · · · (xi − xn ) alors que l’algorithme d’Aberth-Ehrlich évalue aussi sa dérivée p0 (x) en ces mêmes approximations [1] : x0i = xi − 1 1 − p(xi )/p0 (xi )( xi −x 1 p(xi )/p0 (xi ) + · · · + xi −x1 i−1 + 1 xi −xi+1 1 + · · · xi −x ) n . Il faudra en particulier faire une analyse d’erreur rigoureuse de ces algorithmes (à la fois l’erreur mathématique et l’erreur d’arrondi) pour fournir une borne d’erreur garantie sur les approximations calculées. L’implantation sera faite à l’aide des bibliothèques GNU MP [3] et GNU MPFR [2] de calcul en précision arbitraire, et sera intégrée à GNU MPFR. On validera l’implantation en la comparant (à la fois en précision et en efficacité) aux implantations concurrentes (Maple, Mathematica, Sage, PARI/GP), et à l’implantation faite par Dini et Fiorentino dans le logiciel MPSolve. Compétences requises : ce stage nécessite de bonnes connaissances du langage C, et un goût pour les mathématiques et l’algorithmique. Références [1] Bini, D. A. Numerical computation of polynomial zeros by means of Aberth’s method. Numerical Algorithms 13 (1996), 179–200. [2] Fousse, L., Hanrot, G., Lefèvre, V., Pélissier, P., and Zimmermann, P. MPFR : A multiple-precision binary floating-point library with correct rounding. ACM Trans. Math. Softw. 33, 2 (2007), article 13. [3] GNU MP : The GNU Multiple Precision Arithmetic Library, 5.0.1 ed., 2010. http: //gmplib.org/. [4] Gourdon, X. Algorithmique du théorème fondamental de l’algèbre. Tech. Rep. 1852, Institut National de Recherche en Informatique et en Automatique, Feb. 1993. [5] Sagraloff, M., and Yap, C. K. An efficient and exact subdivision algorithm for isolating complex roots of a polynomial and its complexity analysis. http://www.mpi-inf. mpg.de/~msagralo/ceval.pdf, 2010. 43 pages. [6] Sagraloff, M., and Yap, C. K. A simple but exact and efficient algorithm for complex root isolation. In Proceedings of ISSAC’2011 (2011), pp. 353–360. 2