TP 6 d’informatique
Lycée Buffon 1 / 3 PC*
Equations de la chaleur :
Propagation thermique dans une poutre
I. Mise en équation du problème On considère une tige métallique homogène, connectée à ses deux extrémités à un thermostat qui impose une température constante Te. Une fois le problème adimensionné, on assimilera la tige au segment [0,1], on mesurera donc la position spatiale d'un point sur la tige par une abscisse x appartenant à ce segment. On choisira aussi une échelle de température qui permettra de poser Te = 0. On notera T (x; t ) la température observée à l'instant t au point d'abscisse x . Une fois adimensionnée, l'équation de diffusion de la chaleur dans la tige peut se mettre sous la forme :
𝑬 : 𝜕𝑇𝜕𝑡
=𝜕!𝑇𝜕𝑥!
La présence du thermostat impose donc les conditions aux limites (spatiales) :
𝑪𝑳 ∶ ∀𝑡 ∈ ℝ! 𝑇 0, 𝑡 = 𝑇 1, 𝑡 = 0 On suppose par ailleurs qu'à l'instant t = 0, la répartition de la température sur la tige est donnée par les conditions initiales (temporelles) :
𝑪𝑰 ∶ ∀𝑥 ∈ [0,1] 𝑇 𝑥, 0 = sin (𝜋𝑥) Ce choix, un peu artificiel et parachuté, est fait afin de pouvoir comparer la solution théorique et la solution approchée obtenue par le calcul. En effet, le lecteur curieux pourra vérifier que la fonction 𝑇 𝑥, 𝑡 = sin (𝜋𝑥)𝑒!!!! est solution de l'équation aux dérivées partielles (E), avec les conditions (CL) et (CI), nous admettrons que c'est dans ce cas la solution du problème.
II. Discrétisation spatiale et temporelle Pour envisager une résolution approchée, nous allons subdiviser les intervalles d'espace [0,1] et de temps [0,tmax], où tmax représente la durée de la simulation. L'intervalle d'espace [0,1] sera découpé en Ns intervalles, donc à l'aide de Ns + 1 points de subdivision 𝑥! (0 ≤𝑖 ≤ 𝑁!) régulièrement espacés tels que 𝑥! = 0 et 𝑥!! = 1. On notera Δ𝑥 le pas spatial de cette subdivision. Pour tout 𝑡 ∈ [0,tmax ], on appellera profil de température à l'instant t le vecteur :𝑈(𝑡) ∈ ℝ!!!! dont les coordonnées sont les températures observées à l'instant t aux différents points 𝑥! , soit
Question 1. Montrer, en précisant la méthode, que pour tout 𝑖 ∈ 1,𝑁! − 1 , on peut approcher la dérivée seconde :
𝜕!𝑇𝜕𝑥!
(𝑥! , 𝑡) ≈1Δ𝑥!
𝑇 𝑥!!!, 𝑡 − 2𝑇 𝑥! , 𝑡 + 𝑇 𝑥!!!, 𝑡
. Question 2. En tenant compte des conditions aux limites (CL), montrer que l'équation (E) peut être
approchée par l'équation :
Piles TP Informatique
Lycée Raspail Page 2 sur 3 PSI
Concernant la discrétisation temporelle, on appliquera le schéma d'Euler explicite : l'intervalle de temps [0,tmax ] est subdivisé en Nt sous-‐intervalles de même longueur (le pas temporel) Δ𝑡, on aura ainsi Nt +1 profils de température, observés aux instants 𝑘Δ𝑡 (0 ≤ 𝑘 ≤ 𝑁!) on posera alors 𝑈! = 𝑘Δ𝑡. Chaque Uk est un vecteur de ℝ!!!!.
Question 3. écrire l'équation de récurrence liant 𝑈!!! à 𝑈! ,𝐴 et Δ𝑡. Expliquer comment écrire la condition initiale.
III. Implémentation On utilisera la bibliothèque Numpy dont on rappelle en Annexe quelques commandes.
Question 4. Le script TP6eleve.py (que vous recopierez d'abord dans votre espace personnel) contient quelques lignes d'initialisation des variables: on choisit pour la simulation une durée tmax de 0.2s, on découpe l'intervalle d'espace [0,1] en Ns = 40 parties, et l'intervalle de temps [0,tmax] en Nt = 1000 parties. Construire une liste contenant les profils de température 𝑈!,𝑈!,𝑈!,… ,𝑈!""" calculés de proche en proche avec le schéma d'Euler explicite. Représenter alors, sur un même graphique, les profils de température aux instants 0, !!"#
!", !!"#
!, !!"#
!, 𝑡!"# . Lorsque vous exécuterez votre script, vous
verrez sur votre graphique se superposer la solution théorique en pointillés.
Question 5. Tester votre programme en augmentant la durée de la simulation. On essaiera notamment les valeurs suivantes: tmax = 0,318s, tmax = 0,319s et tmax = 0,320s.
IV. Schéma d’Euler Implicite
On observe que le schéma explicite devient instable à partir d'une certaine durée de la simulation. On choisit alors d'utiliser un schéma d'Euler implicite.
Question 6. écrire la nouvelle relation liant les profils de température Uk et Uk+1 , pour 𝑘 ∈ 0,𝑁! − 1 . Montrer que, si l'on connaît Uk , alors on peut déterminer Uk+1 en calculant l'inverse d'une matrice tridiagonale M (indépendante de k ) que l'on explicitera en fonction de la matrice A et du pas temporel Δ𝑡.
Question 7. Un début de script est fourni. La fonction dilateligne(A,i,lam) réalise sur une matrice A, l'opération élémentaire sur les lignes (dite de dilatation) 𝐿! ← 𝜆𝐿! , la fonction transvecligne(A,i,j,lam) réalise l'opération (dite de transvection) 𝐿! ← 𝐿! + 𝜆𝐿!. Le code de la fonction inversetridiag(M) n'est écrit que partiellement. Le compléter pour qu'elle retourne la matrice inverse de la matrice M passée en argument, en supposant celle-‐ci tridiagonale (et inversible, bien entendu!!).
Question 8. Même travail qu'à la Question 4. , mais en appliquant le schéma d'Euler implicite.
Piles TP Informatique
Lycée Raspail Page 3 sur 3 PSI
ANNEXE FORMULAIRE NUMPY