Equation de la chaleur : Simulation numérique

La simulation numérique de l’équation de la chaleur pose parfois quelques problèmes, et pas seulement de capacité de calcul. Nous allons voir en effet que tous les algorithmes ne sont pas équivalents, loin de là…

Nous vous proposons ci-dessous des illustrations des phénomènes décrits dans ce texte, ainsi que les programmes qui ont servi à sa réalisations. Ceux-ci sont commentés, afin que vous puissiez si vous le voulez les modifier sans trop de difficulté, et tester ainsi les méthodes mises en jeu avec vos propres paramètres.

Table des matières

  • Résumé, position du problème
  • Méthode explicite
  • Méthode implicite

Résumé, position du problème

Nous nous intéressons ici au traitement numérique de l’équation de la chaleur :

Nous considérons ce problème sur un domaine borné en espace (0 < x < 1), et pour des temps positifs (t > 0). Nous imposons également les conditions initales et de bord suivantes :


et

Rappelons que la solution exacte du problème est alors la fonction :

Connaissant cette solution exacte, il nous est possible d’apprécier la qualité des différentes méthodes numériques, de calcul approché de cette solution. Dans tous les cas, nn se donne donc un pas spatial h, c’est-à-dire que l’on cherche à calculer les valeurs de notre solution u aux points d’abscisse 0, h, 2h,…, 1. On doit aussi se restreindre à un ensemble discret d’instants auxquels on prétend calculer ces valeurs, on fixe donc un pas temporel ket l’on cherchera à calculer les valeurs de u aux instants k, 2k, 3k, …
uin désignera la valeur calculée (approchée) de la solution à l’instant nk et au point d’abscisse i h.
Voici des animations illustrant les différences entre deux méthodes de résolution numérique.

 

Un premier essai : méthode explicite

Pour cette méthode, on approche la dérivée temporelle par le rapport (uin+1 – uin)/k ; et la dérivée seconde par rapport à la variable d’espace par le rapport (ui+1n + ui-1n -2 uin)/h2.
L’équation de la chaleur discrétisée est ici :C’est le modèle utilisé dans l’illustration ci-contre. Disponible également, le programme chaleurexpl, version matlab ou scilab.

Code source de l’applet.

N.B. Les plus patient observerons que la méthode semble marcher pour les deux plus petites valeurs de k. C’est normal : elles sont en dessous du seuil déterminé dans le texte !

 

Deuxième essai : méthode implicite

La seule différence par rapport à la méthode précédente est que cette fois, on approche la dérivée temporelle par le rapport (uin – uin-1)/k.
Après décalage d’indices, l’équation de la chaleur discrétisée est cette fois :Là aussi, ce modèle est illustré ci-contre. Disponible également, le programme chaleurimpl, version matlab ou scilab.

Code source de l’applet.

N.B. La courbe semble un peu moins régulière pour les petites valeurs de k, ce qui est troublant, puisque l’on s’attend à ce que la méthode soit plus précise lorsque le pas temporel est petit. En réalité, il n’en est rien : il y a un peu de « bruit » dû à des problèmes d’arrondis (nécessaires dans tout calcul numérique) quel que soit le pas temporel, mais lorsque celui-ci est plus grand, la courbe bouge plus à chaque étape de calcul et de ce fait on perçoit moins ce phénomène.

Pour les explications de ces phénomènes, nous renvoyons une fois de plus au texte…
Source : Thomas Chomette, version ps ou pdf.