Numerical Recipes

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Numerical Recipes
Image illustrative de l'article Numerical Recipes
Couverture de Numerical Recipes: The Art of Scientific Computing (3e édition), en C++

Auteur William H. Press, Saul Teukolsky, William Vetterling et Brian Flannery
Genre Manuel mathématique
Version originale
Titre original Numerical Recipes
Éditeur original Cambridge University Press
Langue originale Anglais
Lieu de parution original Drapeau : États-Unis États-Unis
Date de parution originale 1986 (1re édition)
Version française

Numerical Recipes est le titre générique d'une série d'ouvrages sur les algorithmes et l'analyse numérique par William H. Press, Saul Teukolsky, William Vetterling et Brian Flannery. Édité dans de nombreuses éditions, les livres sont imprimés depuis 1986, la dernière édition datant de 2007.

Contenu[modifier | modifier le code]

Les livres Numerical Recipes couvrent des sujets de l'analyse numérique (interpolation numérique, intégration, algèbre linéaire, équations différentielles, etc), traitement du signal (transformée de Fourier, filtre), traitement des données statistique, ainsi que quelques points sur in machine learning (modèles de Markov cachés, machine à vecteurs de support). Le style d'écriture se veut accessible et sur un ton informel. L'accent est mis sur la compréhension des bases sous-jacentes des techniques, pas sur les raffinements qui peuvent, en pratique, être nécessaires pour atteindre des performances et une fiabilité optimale. Peu de résultats sont prouvés avec une réelle rigueur, même si les idées derrière les preuves sont souvent esquissées, et les références sont données.

Pratiquement toutes les méthodes qui sont présentées sont également rédigées en code, qui est imprimé dans le livre.

Selon l'éditeur, Cambridge University Press, les livres Numerical Recipes sont les ouvrages sur les méthodes de programmation les plus vendus de tous les temps. Selon ISI Web of Knowledge, ces dernières années, les livres Numerical Recipes ont été cités plus de 3000 fois par an dans la littérature scientifique (par exemple, 3962 fois dans les années 2008)[1].

Histoire[modifier | modifier le code]

Édité pour la première fois en 1986 avec des codes en Fortran (rapidement suivi par des éditions en Pascal, BASIC et C), Numerical Recipes a pris, dès le départ, une position éditoriale en désaccord avec la sagesse conventionnelle de la communauté d'analyse numérique :

« If there is a single dominant theme in this book, it is that practical methods of numerical computation can be simultaneously efficient, clever, and — important — clear. The alternative viewpoint, that efficient computational methods must necessarily be so arcane and complex as to be useful only in « black box » form, we firmly reject[2] »

Toutefois, comme il s'est avéré que les années 1980 ont été fertiles pour le côté « boîte noire », ce qui donne des environnements intégrés importants tels que MATLAB et Mathematica qui restent des standards aujourd'hui. Au début des années 1990, lorsque les deuxièmes éditions de Numerical Recipes (avec des codes en C, Fortran 77 et Fortran 90) ont été publiées, il était clair que les utilisateurs de Numerical Recipes ne représentaient plus la majorité des scientifiques faisant de la programmation, mais a provoqué la scission entre ceux qui étaient plus orientés analystes numériques mathématiques et la plus grande communauté utilisant des environnements intégrés. Les deuxièmes éditions ont occupé un rôle stable dans cet environnement de niche[3].

Au milieu des années 2000, la pratique du calcul scientifique a été radicalement modifiée par l'usage régulier d'Internet et du Web. Reconnaissant que leurs livres Numerical Recipes ont été plus appréciés pour leurs textes explicatifs que pour leurs exemples de code, les auteurs ont considérablement élargi la portée de l'ouvrage, et considérablement réécrit une grande partie du texte. Ils ont continué d'inclure du code, toujours imprimé dans le livre, maintenant en C ++, pour chaque méthode discutée[4]. La Third Edition a également été édité en version électronique[5], et rendue par la suite accessible sur le Web gratuitement (avec une quantité de lecture limitée) ou par paiement ou abonnement (avec une quantité de lecture illimitée).

Critiques[modifier | modifier le code]

Étant donné le style de rédaction des livres, il n'est pas surprenant qu'ils étaient (et restent dans une certaine mesure) controversés au sein de la communauté de l'analyse numérique. Les premières critiques étaient centrées sur le « manque supposé de fiabilité » (la première édition contenait en effet quelques erreurs), l'exclusion de certains algorithmes, et l'affirmation des auteurs, pas toujours correcte, selon laquelle leurs programmes sont aussi efficaces et fiables que ceux des bibliothèques de type « boîte noire », comme les NAG Numerical Libraries. Bien qu'il ne mentionne pas Numerical Recipes nommément, Whaley et al.[6] démontrent que LAPACK avec une librairie BLAS hautement optimisé peut être d'un ordre de grandeur plus rapide qu'une routine simple directement inspirée de Numerical Recipes. Comme autre exemple, Frigo et Johnson[7] pointent le fait que le code de transformée de Fourier rapide (FFT) de Numerical Recipes est de 5 à 40 fois plus lent que les programmes hautement optimisés sur des architectures numériques modernes.

Un deuxième point de critiques notent le fait que, bien qu'imprimé dans des livres, les auteurs des ouvrages détiennent les droits d'auteur sur le code, et non disponible à l'usage sous une licence publique générale GNU ou similaire. En effet, une des premières motivations de la GNU Scientific Library était qu'une bibliothèque libre était en partie nécessaire comme à Numerical Recipes. Sur ce point, rien n'a été épargné aux auteurs de Numerical Recipes. Ils tirent leurs revenus de la vente de licences individuelles et d'entreprise pour le code, et gèrent clairement la marque Numerical Recipes comme une entreprise[8].

Un troisième point critiqué est le style de code utilisé dans les livres, que certains lecteurs modernes trouvent « fortranisé », même quand le langage du livre est plus orienté objet. Certaines de ces critiques sont justifiés, et en raison de l'héritage historique des parties du code. Cependant, les auteurs ont défendu leur style comme nécessaire pour le format des livres, ce qui nécessite un style très laconique de codage en raison des limitations d'espace et du souci de lisibilité[3].

Liste partielle des différentes éditions[modifier | modifier le code]

Les livres diffèrent par leur version d'édition (1st, 2nd et 3rd) et par le langage informatique utilisé dans les codes donnés.

Les livres sont édités par Cambridge University Press.

Références[modifier | modifier le code]

  1. Thomson Reuters, Web of Knowledge, Cited Reference Search.
  2. WH Press, SA Teukolsky, WT Vetterling et BP Flannery, Numerical Recipes: The Art of Scientific Computing, Cambridge University Press,‎ 1986 (ISBN 0521308119), « Preface », xi.
  3. a et b W.H. Press and S.A. Teukolsky, « Numerical Recipes: Does This Paradigm Have a Future? », Computers in Physics, 11, 416 (1997). Preprint.
  4. WH Press, SA Teukolsky, WT Vetterling et BP Flannery, Numerical Recipes: The Art of Scientific Computing, Cambridge University Press,‎ 2007 (ISBN 978-0-521-88068-8), « Preface to the Third Edition », xi.
  5. WH Press, SA Teukolsky, WT Vetterling et BP Flannery, Numerical Recipes: The Art of Scientific Computing, Cambridge University Press,‎ 2007 (ISBN 978-0-521-88068-8, lire en ligne).
  6. R. Clint Whaley, Antoine Petitet et Jack J. Dongarra, « Automated empirical optimization of software and the ATLAS project », Parallel Computing 27, 3-35 (2001).
  7. S. G. Johnson and M. Frigo, "Implementing FFTs in practice in Fast Fourier Transforms (C. S. Burrus, ed.), ch. 11, Rice University, Houston TX: Connexions, septembre 2008.
  8. Site Internet de Numerical Recipes, Numerical Recipes Code

Liens externes[modifier | modifier le code]