|
Créneau
| Sem 2/Sem 4 Sem 4 |
|
Prérequis
| Cours d'analyse de 1ère année, et pratique de la programmation. Ce cours est indépendant du cours d'algorithmique. |
|
Enseignant responsable
|
Urbain VAES
|
|
Equipe enseignante
| Urbain VAES |
|
Objectifs du module
| Le calcul scientifique est une discipline transverse, à l'intersection des mathématiques, de la physique et de l'informatique. Étant donnée une modélisation mathématique d'un problème (équation différentielle, système d'équations, problème d'optimisation...), comment le résoudre de façon robuste, précise et rapide ? Ses nombreuses applications (physique, biologie, matériaux, énergie, environnement...) ont permis de grands succès scientifiques et techniques, et le calcul scientifique fait aujourd'hui partie de la boîte à outils de l'ingénieur. Cependant, la complexité des problèmes rend la validation difficile, et un grand nombre de facteurs peut faire échouer un calcul (mauvais modèle, mauvaise méthode, mauvais paramètres, mauvais code), avec parfois des conséquences catastrophiques (lancement d'Ariane 5, échec du système anti-missile Patriot...). Face à cette complexité, le risque est l'excès de confiance ("mon code est forcément bon, j'ai vérifié toutes les formules trois fois") ou la mauvaise identification des causes d'erreur ("le résultat est faux, ça doit être l'erreur machine"). Comment, dans ce contexte, avoir confiance en un calcul ? L'objectif du cours est que les étudiants qui le suivent acquièrent une expérience pratique du calcul scientifique, au travers de cas concrets, qui leur permette de comprendre le chemin méthodologique qui sous-tend le travail dans cette discipline, et d'avoir identifié clairement les succès et limites de cette approche. Il applique et illustre les compétences en mathématiques et en informatique acquises au 1er semestre. Le cours aura pour objet des problèmes de simulation numérique, mais les compétences transverses visées sont utiles à tous les domaines des sciences numériques quantitatives (machine learning, vision, économétrie...) A l'issue de ce module les étudiants : - Seront familiers avec les outils informatiques de base en calcul scientifique - Auront appris les bonnes pratiques à suivre en programmation, et seront capables d'implémenter et de tester des méthodes numériques de manière autonome - Seront capables de choisir les méthodes numériques les plus adaptées pour un problème donné, et d'évaluer de manière critique les résultats produits par une simulation numérique |
|
Programme du module
| - Calcul en virgule flottante et intégration numérique - Algèbre matricielle - résolution de systèmes linéaires - Algèbre matricielle - résolution de problèmes au valeurs propres - Résolution d'équations non-linéaires - Résolution d'équations différentielles ordinaires - Résolution d´équations aux dérivées partielles par différences finies. |
|
Modalités
| Le cours sera composé de TD/TP réalisés en séance, complétés par des points théoriques. L'accent sera mis sur l'exploration du comportement des algorithmes dans et en dehors de leur régime de fonctionnement normal, avec une large part laissée à l'expérimentation. L'objectif est de mettre les étudiants en situation de faire des erreurs pour apprendre à les diagnostiquer et à les corriger. |
|
Contrôle des connaissances - Règles de validation du module
| L'évalutation sera basée sur trois travaux à réaliser individuellement dans le langage de programmation Julia (30%), et sur un examen pratique à réaliser sur machine (70%), sans accès à internet autre qu'à la documentation Julia. Chacun des travaux pratiques portera sur la résolution numérique d'un problème concret. |
|
Documents pédagogiques - Bibliographie
| BIBLIOGRAPHIE Numerical Recipes, W. Press, S. Teukolsky, W. Vetterling, B. Flannery https://swcarpentry.github.io/good-enough-practices-in-scientific-computing/ |
|
Effectif maximal
| Effectif illimité |
|
Département de rattachement
| Département de 1ère année |
|
Nombre de crédits ECTS
| 2 crédits ECTS |
|
Code
| 1CASC |