Ici commence l'<<à peu près>>...
Quand on ne sait pas résoudre le problème analytiquement, comme
on l'a fait pour la membrane, il faut passer du problème continu à
un problème approché, qui n'est défini que sur un
nombre fini de points.
On parle alors de problème
discret. On peut résoudre numériquement un tel problème.
De très nombreuses méthodes existent pour formuler le problème discret.
Elles sont
techniques
et trop ardues pour être présentés dans le cadre
de cet article
. Néanmoins, l'idée de base est voisine de celle
que nous avons utilisée pour dessiner l'exponentielle de tout à l'heure.
On sent bien, en effet, qu'une telle démarche, qui consiste à
prendre la valeur locale de la dérivée
comme une approximation pour tout un interval est assez systématique
(on pourraît presque dire bête) pour être facilement programmable.
On retrouve d'ailleurs l'observation faite au début
sur notre modèle de membrane : plus les intervalles sont petits,
moins cette approximation est grossière.
Différentes approches permettent de passer d'une équation aux dérivées partielles à un problème numérique. Chacune a ses avantages et ses domaines d'application privilégiés. Pour qu'une méthode soit acceptable, il faut que lorsque l'on augmente le nombre de points de calcul, l'équation discrète se rapproche de plus en plus de l'équation aux dérivées partielles que l'on cherche à simuler, jusqu'à lui être identique pour un nombre de points infini. Une telle approximation est dite consistante. Bien sûr, on ne peut pas étudier numériquement cette propriété, puisque, comme on l'a dit, il est impossible d'utiliser une infinité de points dans un programme. C'est donc analytiquement (à la main) que cette propriété est étudiée.
Evidemment, bien que la résolution du problème discret ait le mérite de nécessiter un nombre fini de calculs, ce nombre est grand, très grand. La résolution numérique des équations discrètes est en général très lourde. Elle nécessite en pratique l'usage des ordinateurs, et même dans certains cas de ce que l'on appelle les <<super-ordinateurs>>, tant le volume de calculs est impressionnant !
Et pourtant, un précurseur de ces méthodes fut le météorologue anglais Lewis Richardson. Au début du siècle, alors qu'il ne disposait pas d'ordinateurs, il a envisagé d'utiliser des centaines de calculateurs humains pour effectuer les calculs numériques nécessaires à la prévision du temps.
Reste qu'en pratique, de nos jours, l'essor des ordinateurs a ôté à tout le monde l'idée de faire ces calculs à la main. L'utilisation de l'ordinateur est donc en général incontournable, mais elle apporte un nouveau problème : celui de la précision des calculs.
Les ordinateurs n'aiment pas l'infini... Vous connaissez sûrement le nombre pi, illustre représentant de ces nombres que l'on appelle <<réels>>. Si vous regardez pi (vous pouvez au moins en regarder un bout sur les murs de la salle du Palais qui porte son nom) vous constatez qu'il a une infinité de décimales (une infinité de nombres après la virgule). Une infinité... Notre ordinateur a déjà la migraine! La façon dont on note ce nombre en mémoire est très simple, on écrit un certain nombre de chiffres, et quand il n'y a plus la place on arrête. Ce qu'on mémorise n'est donc qu'une approximation de pi et chaque fois que l'on fera un calcul, le même type de troncation lui sera imputé. L'erreur qui en découle s'appelle erreur d'arrondi.
La résolution des équations aux dérivées partielles, qu'elles fassent ou non intervenir le temps, conduit à des calculs itératifs. La machine effectue un grand nombre d'opérations élémentaires (+,-,*,/) lors de la résolution, les erreurs d'arrondis de calculs peuvent s'accumuler et s'amplifier. Et, parce qu'on a négligé au cours du calcul des choses insignifiantes, le résultat peut devenir aberrant.
Un autre type d'erreur est encore plus important, il s'agit de l' erreur de troncature, c'est-à-dire l'erreur qui résulte de l'approximation de l'équation initiale par un problème discret. On l'a vu, si l'approximation utilisée est consistante, cette erreur tend vers zéro quand le nombre de points tend vers l'infini. Mais lors d'une simulation numérique avec un nombre fini de triangles cette erreur est non nulle (et en général plus importante que les erreurs d'arrondis). Le même problème se pose alors : ces erreurs vont elles être amplifiées ou non par le processus de calcul ?
Il faut noter que ces approximations deviennent redoutables si le problème est mal posé ; par exemple, si le phénomène observé est chaotique, la moindre erreur mène alors à un résultat faux. La difficulté est alors double, en effet nos calculs sont imprécis et n'ont donc que peu de sens, mais même s'ils étaient assez précis, il serait impossible de contrôler assez finement les paramètres d'une expérience physique pour qu'elle corresponde exactement aux simulations (ce qui complique la validation des expériences numériques dans ce cas).
Un processus de calcul est dit stable si les erreurs d'arrondis et de troncature ne s'amplifient pas au fur et à mesure que les calculs progressent. Cette propriété peut s'étudier numériquement (si le processus est instable la solution devient vite aberrante et très grande), ou bien analytiquement, comme la consistance.
Si toute ces conditions sont remplies et que le problème est bien posé alors la méthode est convergente, c'est-à-dire que la solution du problème discret va se rapprocher de celle de l'équation que l'on cherche à simuler quand le nombre de points utilisés augmente.
Document réalisé par Emmanuel Dormy