Introduction à l'analyse numérique & programmation [Fiche ECTS : math, phys]
Notes de cours
Quelques notes de cours (545K, 2011-10-08 10:13) démontrent certains des théorèmes vus au cours. Des transparents sont sur e-learning. Ces quelques présentations peuvent également vous intéresser : les ordinateurs calculent-ils juste ? (209K, 2006-09-13 18:33), méthode d'Horner (214K, 2006-09-13 18:33) pour évaluer un polynôme et un algorithme rapide pour le calcul de (x,n) → xn (243K, 2006-09-13 18:33).
Nous vous recommandons l'usage d'un lecteur PDF libre pour visionner les documents de cette page.
Travaux pratiques
The way to be good at programming is to work (a) a lot (b) on hard problems.
— Paul Graham
Divers travaux de programmation vous seront proposés durant l'année avec des mise en situation d'examen. Ces travaux peuvent être réalisés en groupes de deux ou trois personnes. L'examen, lui, est bien entendu strictement personnel. Les documents utiles aux TPs se trouvent sur e-learning.
En ce qui concerne le langage de programmation, nous vous proposons les trois choix principaux suivants :
- Python : un des langages vus en BAC 1. Pour les graphiques, nous utiliserons matplotlib.
OCaml est un langage fonctionnel de haut niveau qui allie une bonne performance à une expressivité particulièrement appropriée [biblio] au développement d'algorithmes numériques. Un « language designed for smart people » selon les mots de Mike Vanier.
Vous veillerez à suivre ces recommandations lors de l'écriture de vos programmes.
Pour de plus amples informations sur OCaml, veuillez consulter cette page.
- Java : c'est un langage que vous avez vu en BAC 1. Pour les
graphiques, nous
utiliserons JPlot et pour guider la compilation, nous prendrons
l'outil de-facto standard
qu'est ant.
Lisez cet article relatant
des problèmes avec la programmation orientée objet (OOP)
— et
« Bad
engineering properties of object-oriented languages ».
Robert Fischer a écrit des articles
sur Some final Patterns
et Yet Another Reason final is Your Friend.
Nous vous conseillons Emacs comme éditeur. Configurez le de manière à travailler confortablement grâce aux packages/informations suivantes :- JDEE (Java Development Environment for Emacs) ;
- Emacs, JDEE, Ant, and the Eclipse Java Compiler ;
- nXML (inclus dans Emacs 23) est un mode utile pour
éditer
build.xml.
Examen
Si l’on réduit la science à n’être qu’un ensemble de recettes qui marchent, on n’est pas intellectuellement dans une situation supérieure à celle du rat qui sait que, lorsqu’il appuie sur un levier, la nourriture va tomber dans son écuelle.
— René THOM (Médaille Fields 1958)
L'examen se déroule sur ordinateur. Il est vivement conseillé de venir avec le code des travaux pratiques (et de savoir l'utiliser !). Vous pouvez également apporter tout document électronique ou papier que vous jugez utile. Toute communication (e.g. par email, GSM,...) est sanctionnée par un échec. Des exemples de questions et des exercices supplémentaires avec corrections sont disponibles sur e-learning.
Quelques références
- Méthodes numériques pour le calcul scientifique, Alfio QUARTERONI, Riccardo SACCO et Fausto SALERI.
- Introduction to numerical analysis, Josef STOER et Roland BULIRSCH.
- A First course in numerical analysis, Anthony RALSTON et Philip RABINOWITZ.
- Theoretical numerical analysis : a functional analysis framework, Kendall ATKINSON et Weimin HAN.
- Introduction aux méthodes numériques de Franck JEDRZEJEWSKI.
- Numerical Analysis : an introduction, Walter GAUTSCHI, Birkhäuser, 1997, ISBN 3-7643-3895-4.
- Numerical Methods for Ordinary Differential Equations Initial Value Problems, David F. Griffiths and Desmond J. Higham, Springer Undergraduate Mathematics Series.
- Handbook of floating-point arithmetic, Jean-Michel Muller, Nicolas Brisebarre, Florent de Dinechin & al., Birkhäuser, 2010.
Pour parfaire vos connaissances en algorithmique et programmation:
- Introduction to algorithms, Thomas H. CORMEN, Charles E. LEISERSON, Ronald L. RIVEST, Cambridge: The MIT Press, 1990.
Textes plus avancés en rapport avec le cours.
- John Hubbard, Dierk Schleicher and Scott Sutherland: How to Find All Roots of Complex Polynomials With Newton's Method, Inventiones Mathematicae 146 (2001), 1–33.
Quelques liens
Quelques liens pour approfondir ou aller plus loin...
- NumaWWW : methods from numerical computing and optimization interactively.
- Algorithmes pour le calcul scientifique (Polytech Lille).
- Guide to Available Mathematical Software (NIST) et Math Software (dmoz).
- Netlib Repository (qui contient par exemple Lapack).
- Numerical Recipes et Alternatives to Numerical Recipes.
- Linux for science (SEUL/sci).
- Mathematics in the computer.




