Introduction à l'analyse numérique
Le modèle mathématique, son approximation
L'analyse numérique est une discipline carrefour, ce qui en fait l'intérêt et la difficulté. L'étude et la résolution d'un problème d'analyse numérique en vraie grandeur passe par plusieurs phases :
- Le problème provient tout d'abord en général, de la mécanique, de la physique, des sciences de l'ingénieur. Il y a ainsi un travail de modélisation, se traduisant par une mise en équations. Le plus souvent cette modélisation est non triviale. Elle est faite, ou du moins engagée par celui qui pose le problème (physicien, mécanicien, ingénieur).
- L'étape précédente conduit à un modèle. C'est alors le travail du mathématicien d'étudier ce modèle, afin de voir s'il est cohérent. Le mathématicien propose un cadre fonctionnel adéquat et s'efforce de montrer que le problème posé, ou du moins la traduction mathématique qui en a été construite, admet une solution unique. Malheureusement, dans de nombreuses situations réelles, cette étude ne peut être menée à son terme, soit du fait de la difficulté mathématique soit du fait du manque de temps ou de moyens. Ainsi, l'étude mathématique de certaines équations de la mécanique des fluides connues depuis plusieurs siècles, est loin d'être achevée.
- Le pas suivant consiste à définir une approximation du modèle, afin de permettre une résolution numérique du problème posé. Là commence le travail proprement dit de l'analyste numéricien. Il lui faut construire un algorithme de calcul et, lorsque faire se peut, démontrer que l'algorithme définit bien une solution approchée du problème. Il convient également d'étudier mathématiquement les erreurs commises dans la résolution approchée qui est opérée.
- Enfin, il reste à écrire un logiciel implantant l'algorithme et à valider les résultats fournis en bout de chaîne par la machine.
Les différentes erreurs et leur contrôle
Tout au long de ce processus, les sources d'erreur sont multiples :
- Le modèle construit a-t-il pris en compte les phénomènes physiques essentiels, ne négligeant que ce qui est négligeable ? Sinon, on commet des erreurs de modélisation importantes.
- Le modèle construit est-il mathématiquement cohérent ? Définit-il une seule solution ? En admet-il au moins une ? Sinon, on risque de ne pas avoir de solution du tout, ou de calculer une "mauvaise" solution.
- L'approximation est-elle bonne ? La solution approchée est-elle proche de la solution exacte ? Sinon, on commet des erreurs d'approximation importantes.
- Quelle est la sensibilité du modèle aux perturbations des données ? Quand une petite perturbation des données d'entrée peuvent provoquer de grandes variations dans la solution, cela peut réduire notablement la confiance dans la solution obtenue. En général, des méthodes de résolution spécifiques doivent être mises en place dans ce cas.
- Le logiciel d'implantation est-il correct ? Dans un logiciel de plusieurs dizaines, voire centaines, de milliers d'instructions, il y a (presque) toujours des erreurs de programmation. Il faut éviter les erreurs de programmation.
- Enfin, chaque opération arithmétique flottante est effectuée avec une erreur d'arrondi. Quand un super calculateur, qui effectue des milliards d'opérations à la seconde, tourne pendant plusieurs heures, voire plusieurs jours, on peut légitimement craindre que cela donne lieu à une accumulation catastrophique, suffisante à elle seule à enlever toute validité aux résultats.
On voit ainsi l'intérêt essentiel d'une validation des résultats. On voit aussi que l'on n'aura jamais de certitudes, mais seulement au mieux un faisceau de présomptions de validité. L'oeil critique, l'expertise et l'intelligence de l'ingénieur sont indispensables pour savoir si le résultat d'un calcul a des chances d'être correct ou pas (et avec quelles précisions). Les mathématiques et les sciences physiques sont incontournables.
Quelques méthodes pour analyser un résultat de calcul
Les méthodes à utiliser peuvent se classer sommairement de la manière suivante :
- Étude des propriétés qualitatives de la solution calculée et de sa vraisemblance physique. Ici intervient de manière essentielle le physicien qui saura à quoi doit ressembler la solution cherchée (on sait par exemple que les contraintes mécaniques dans un solide deviennent très grandes près des arêtes).
- Calcul de solutions analytiques, dans des cas particuliers. Avant que les ordinateurs ne deviennent disponibles, tout un arsenal de fonctions spéciales (fonctions de Bessel, harmoniques sphériques, polynômes orthogonaux) avait été construit pour exprimer les solutions de problèmes aux limites dans le cas de géométries simples. Cet arsenal est précieux et doit être utilisé chaque fois que possible.
- Pour éviter les erreurs de programmation, ou certaines erreurs d'arrondis ou d'approximation, des techniques avancées de preuve de programme peuvent être employées.
- On peut souvent se donner une solution arbitraire, construire un jeu de données, puis lancer le logiciel sur ce jeu de données et voir si l'on retrouve la solution de départ.
- On peut enfin comparer ses résultats à ceux fournis par d'autres logiciels, la littérature, ou encore d'autres équipes.