CCP Modélisation de systèmes physiques ou chimiques PC 2015

Thème de l'épreuve Simulation numérique du transfert thermique dans un mur en régime transitoire
Principaux outils utilisés diffusion thermique, méthode des différences finies
Mots clefs équation de la chaleur, discrétisation, schémas numériques, équations différentielles, systèmes linéaires, algorithme de Thomas

Corrigé

(c'est payant, sauf le début): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Extrait gratuit du corrigé

(télécharger le PDF)
           

Énoncé complet

(télécharger le PDF)
                                   

Rapport du jury

(télécharger le PDF)
           

Énoncé obtenu par reconnaissance optique des caractères


SESSION 2015 PCMS006

_:â=_ CONCOURS COMMUNS
- - POLYTECHNIQUES

EPREUVE SPECIFIQUE - FILIERE PC

MODELISATION DE SYSTEMES PHYSIQUES OU CHIMIQUES

Durée : 4 heures

N.B. : le candidat attachera la plus grande importance à la clarté, & la 
précision et à la concision de
la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être 
une erreur d 'énoncé, il le
signalera sur sa copie et devra poursuivre sa composition en expliquant les 
raisons des initiatives
qu 'il a été amené à prendre.

Les calculatrices sont interdites \

Le sujet comporte deux parties indépendantes. Le candidat précisera au début de 
sa copie le langage
de programmation (Python ou Scilab) qu'il a choisi et toutes les questions 
seront traitées dans le
même langage. Un bonus sera accordé aux copies soignées avec des programmes 
bien commentés.
Plusieurs fonctions du langage Scilab sont rappelées en annexe A. Les candidats 
choisissant le
langage Python pourront utiliser les bibliothèques numpy et matplotlib.pyplot. 
Une documentation
simplifiée de plusieurs fonctions de ces bibliothèques est présente en annexes 
B et C.

1/12

SIMULATION NUMERIQUE DU TRANSFERT THERMIQUE DANS UN
MUR EN REGIME TRANSITOIRE

On étudie les transferts thermiques dans le mur d'une maison, figure l(a). La 
température à
l'intérieur de la maison est constante dans le temps et égale à Tint = 20 °C. 
Aux temps négatifs

(t < 0), la température extérieure est égale à Text1 = 10 °C. A t = 0, elle 
chute brusquement à

Text2 = --10 °C et elle reste égale à cette valeur aux temps positifs (t > 0), 
figure l(b). On
souhaite étudier l'évolution du profil de température dans le mur au cours du 
temps.

Text
Tint ' ur Text T Ëxt
z 0 V e x 0
Lx Tâ..
% 0 t
(a) (b)

Figures 1 (a) - Schéma du mur étudié. (b) - Evolution de la température 
extérieure au cours du temps.

Le mur a une épaisseur 6 = 40 cm. Les propriétés physiques du mur sont 
constantes : conductivité

thermique À = 1,65 W. m'1. K"1, capacité thermique massique cp = 1 000 
].kg'1.K_1, masse

volumique p = 2 150 kg. m'3.

PARTIE I : ETUDE PRELIMINAIRE

Dans cette partie, on établit l'équation gouvernant les variations de la 
température et on la résout en
régime permanent.

I.A. Equation gouvernant la température
On suppose que la température dans le mur T ne dépend que du temps t et de la 
coordonnée x.
I.A.1. A quelle condition peut-on supposer que la température ne dépend pas des 
coordonnées )! et z ?

I.A.2. Donner l'équation générale qui décrit le transport de chaleur dans un 
solide en l'absence de

source d'énergie. Comment cette équation se simplifie-t-elle sous les 
hypothèses de la question
I.A.l ?

I.B. Conditions aux limites
On envisage plusieurs types de conditions aux limites.

(i) La température est imposée aux limites du système.
(ii) La paroi extérieure est isolée par un matériau de très faible conductivité.

I.B.1. Traduire chacune de ces conditions aux limites sur la fonction T(x, t) 
et/ou sa dérivée.

2/12

Dans toute la suite, on adoptera des conditions aux limites de type température 
imposée.
I.C. Solutions en régime permanent

I.C.1. Résoudre l'équation obtenue à la question I.A.2. en régime permanent, 
avec les conditions
aux limites de type températures imposées (question I.B.(i)) :
- pour un instant particulier négatif t1 < 0,

- pour un instant particulier positif t2 > 0, très longtemps après la variation 
de
température extérieure, quand le régime permanent est de nouveau établi dans le 
mur.

I.C.2. Quelle est la nature des profils T(x) obtenus (en régime permanent) à 
ces deux instants '?
Tracer à la main les deux profils sur un même graphique sur la copie.

I.C.3. Sur le même graphique, tracer à la main qualitativement les profils 
intermédiaires à

différents instants entre la variation brutale de la température extérieure (t 
= O) et l'instant t2 où le
régime est de nouveau permanent.

PARTIE II : RESOLUTION NUMERIQUE

II.A. Equation à résoudre

On cherche à résoudre numériquement l'équation aux dérivées partielles :

âT âZT
"a = @ ...

où a est une constante. A l'équation (1) sont associées les conditions :

T(O, t) = T,... pour tout t > 0
T(e, t) = Text2 pour tout t > 0
T(x, O) = ax + b pour tout x E [O, 6]

II.A.1. Quelle est l'expression de a en fonction des paramètres physiques du 
mur '?

II.A.2. Exprimer a et b en fonction de Tim, Text1 et EUR.

Pour effectuer la résolution de l'équation (1), nous utiliserons la méthode des 
différences finies
présentée dans la partie II.B.

II.B. Méthode des différences finies

II.B.1. Discrétisation dans l'espace et dans le temps

On divise l'intervalle [O, 6], représentant l'épaisseur du mur, en N + 2 
points, numérotés de 0 à
N + 1, régulièrement espacés de Ax (figure 2, page suivante). Cette division 
est appelée
<< discrétisation >>. La distance Ax est appelée le << pas d'espace >>. A 
l'intérieur du mur (frontières

intérieure et extérieure exclues) se trouvent donc N points. On cherche à 
obtenir la température en
ces points particuliers à chaque instant.

3/12

Figure 2 - Discrétisation spatiale dans la direction x.
II.B.1.a. Donner l'expression de Ax en fonction de N et de l'épaisseur du mur e.
II.B.1.b. Donner l'abscisse x,- du ie point en fonction de i et Ax, sachant que 
x0 = 0 et xN+1 = e.

Le temps est discrétisé en ItMax intervalles de durée At et on ne s'intéresse 
au profil de
température qu'aux instants particuliers tk = k. At. L'intervalle élémentaire 
de temps At est appelé
le << pas de temps >>.

Pour résoudre l'équation (1), deux méthodes sont proposées :
-- méthode utilisant un schéma explicite,

-- méthode utilisant un schéma implicite.

II.B.2. Méthode utilisant un schéma explicite

II.B.2.a. A l'aide d'un développement limité de la fonction x l--> T(x, t), 
donner une expression
de T(x + Ax, t) à l'ordre 3 (a (Ax3)) en fonction de T et de ses dérivées 
partielles par rapport à x
évaluées en (x, t). De même, donner une expression de T(x -- Ax, t) à l'ordre 3.

2
II.B.2.b. En déduire une expression approchée à l'ordre 1 (0(Ax)) de % (dérivée 
partielle
x,t
spatiale seconde de T évaluée au point x à l'instant t) en fonction de T(x + 
Ax, t), T(x -- Ax, t) et

T (x, t) et Ax.

On note Tik la température T(x,-, tk), évaluée au point d'abscisse x,- à 
l'instant tk. De même, on
note T,'fF1 = T(x,- + Ax, tk) et T,"_1 = T(x,- -- Ax, tk).

! ' ' r r - , 62T , . , .
II.B.2.c. Dedu1re de la question precedente une express1on approchee de $ 
(der1vee partielle
xi» tk
k

spatiale seconde de T évaluée en x,- à l'instant tk) en fonction de Tik, Ti+1 
et Tik_1 et Ax.

La dérivée partielle temporelle de l'équation (l) est maintenant approchée 
grâce à un
développement limité.

II.B.2.d. A l'aide d'un développement limité de la fonction t l--> T(x, t), 
donner une expression
de T(x,t + At) à l'ordre 1 (0(At)) en fonction de T et de sa dérivée partielle 
par rapport à t
évaluées en (x, t).

ôT

II.B.2.c. En déduire une valeur approchée de E (dérivée partielle par rapport 
au temps de T
x,t

évaluée au point x à l'instant t) à l'ordre 0 (0(1)) en fonction de T(x, t + 
At), T(x, t) et At.

4/12

ôT

11. B. 2. f. Donner une expression de-- (dérivée partielle par rapport au temps 
de T évaluée en

61: xi tk
xi à l'instant tk) en fonction de At, E" t T,k+1, avec Tik+1 = T(xi, tk + At).

L'équation (l) est valable en chaque point d'abscisse xi et à chaque instant tk.

II.B.2.g. Ecrire la forme approchée de cette équation au point i et à l'instant 
k en approchant

62 ôT
% avec la formule obtenue à la question H. B. 2. c. et en approchant-- âtx avec 
la formule
x,t

obtenue àla question ll.B.2.f.

II.B.2.h. Montrer que l'équation obtenue àla question II.B.2. g peut s'écrire 
sous la forme :
T"+1_ -- rT"_ , + (1 -- 2r)T" + rT"+1 (2)
en précisant la valeur du paramètre r en fonction de Ax, At et a.

L'équation (2) est appelée schéma numérique explicite. Si on connait la 
température en tous les
points x1,x2, ...,xN_1,xN à l'instant tk, on peut calculer grâce à elle la 
température en tous les
points à l'instant ultérieur tk+1.

II.B.2.i. L'équation (2) est-elle valable dans tout le domaine, c'est-à-dire 
pour toute valeur de
l, 0 S i S N+ 1 '?QuevalentTä'c etT]ÿ+1 ?

II.B.2.j. Dans cette question, on élabore une fonction schema_explicite 
permettant de
calculer la température en chaque point au cours du temps selon la formule (2). 
Parmi les variables

d'entrée se trouvera un vecteur T0 de dimension N, défini en dehors de la 
fonction, contenant les
valeurs de la température aux points de discrétisation à l'instant initial. Au 
sein de la fonction, un

algorithme calculera itérativement la température avec un nombre maximal 
d'itérations ItMax. En
sortie de la fonction, on récupérera le nombre d'itérations réellement 
effectuées, anter et une
matrice T_tous_k, de dimensions N >< ItMax. Chaque colonne de cette matrice 
contient le

vecteur Tk dont les éléments sont les valeurs de la température aux N points 
xl, , xN (points à
l'intérieur du mur) à l'instant k :
T11 T12 T1k ...T1k--1 T1k
T"--i/îl k\i { Tâ T2" T2" T2"--1 T2" \.
et T_tous_k= |
T--l\TN--1 ) \TA1I--1TAZI--l___Tliî--1mTliîîâTliî--1/
Tà Tâ T." Tir--1 Tl'

On souhaite arrêter le calcul lorsque la température ne varie presque plus dans 
le temps. Dans ce

but, on évaluera la norme 2 de Tk -- T"'1 à chaque itération. La définition de 
la norme 2 est
rappelée àla question II.B.2.j.(VÜ.

II.B.2.j.(i) Ecrire l'en-tête de la fonction en précisant bien les paramètres 
d'entrée et de sortie.

II.B.2.j.(iü Le schéma numérique (2) permet d'approcher avec succès la solution 
à la condition
r < 1/2. Programmer un test qui avertit l'utilisateur si cette condition n'est 
pas respectée.

II.B.2.j.(iü) Affecter la valeur 2 000 à ItMax. Créer la matrice T_tous_k de 
dimensions
N >< I tM ax en la remplissant de zéros.

5/12

II.B.2.j.(iv) Remplacer la première colonne de T_tous_k par le vecteur des 
valeurs initiales T O.

II.B.2.j.(v) Calculer le profil de température à l'instant k = 1 (t = At), en 
distinguant le cas
i= 1, le cas 2 S i S N -- 1 et le cas i= N. Affecter ces valeurs à la deuxième 
colonne de
T_tous_k.

II.B.2.j.(vü Ecrire une fonction calc_norme qui calcule la norme 2 d'un 
vecteur. On rappelle

que la norme 2 d'un vecteur V s'écrit :
V
1

II.B.2.j.(viÿ Elaborer une boucle permettant de calculer itérativement le 
profil de température aux
instants tk = k.At avec k 2 2. Cette boucle sera interrompue lorsque la norme 2 
du vecteur

T" -- T""1 deviendra inférieure à 10"2 ou lorsque le nombre d'itérations 
atteindra la valeur I tM ax

(prévoir les deux cas). Utiliser, pour cela, la fonction calc_norme définie à 
la question
II.B.2.j.(VÜ.

II.B.2.j.(viü) Ecrire la fm de la fonction afin de renvoyer tous les arguments 
de sortie définis au
début de la question ll.B.2.j.

II.B.3. Méthode utilisant un schéma implicite

Le schéma explicite (2) ne converge que si le pas de temps At est suffisamment 
faible par rapport
au pas d'espace Ax. Si l'on souhaite effectuer un calcul pour un temps physique 
long, beaucoup
d'itérations seront nécessaires et le temps de calcul sera très long. C'est 
pourquoi on préfère
d'autres types de schémas appelés schémas implicites.

Dans cette partie, la dérivée partielle seconde par rapport à x de la 
température apparaissant dans
l'équation (l) est évaluée au point d'abscisse xi et à l'instant k + 1 :
62T 62T
6x2 6x2

N
N

x,t xirtk+1

et la dérivée partielle par rapport à t est évaluée au point d'abscisse xi et à 
l'instant k :
âT âT

ä,...ÿ"ä

xfik'
II.B.S.a. Donner la nouvelle expression approchée de l'équation (l) définie en 
page 3.

II.B.3.b. Montrer que l'équation obtenue àla question ll.B.3.a. peut être mise 
sous la forme
Tik = --rTik_Ë1 + (1 + 2r)Tik+1 -- r {fifi . (3)

L'équation (3) est appelée schéma implicite car la température à l'instant tk 
est exprimée en
fonction de la température à l'instant ultérieur tk+1.

6/12

Le système d'équations ainsi obtenu peut être écrit sous la forme :
MTk+1 = Tk + r v (4)

où M est une matrice carrée N >< N et Tk et T"'+1 sont les vecteurs de 
dimension N définis par :

T1k T1k+1
T2k T2k+1
Tk = et T"+1 =
TIG--1} Tl'îä/
T]Ç,' T,(ÿ+1

et v est un vecteur de taille N faisant intervenir les conditions aux limites.

II.B.3.c. Préciser l'expression de la matrice M et l'expression du vecteur |).

A chaque pas de temps, il faut inverser le système matriciel :
MTk+1 = T" + r |)
pour obtenir Tk+1à partir de Tk.

II.B.3.d. Le but de cette question est d'écrire une fonction Calchpl qui permet 
de résoudre un
système matriciel tridiagonal en utilisant l'algorithme de Thomas présenté 
ci-dessous.

Algorithme de Thomas :
On cherche à résoudre un système matriciel tridiagonal de la forme :

Mu=d 6)

où M est une matrice de dimensions N >< N tridiagonale, c'est-à-dire une 
matrice dont tous les
éléments sont nuls, sauf sur la diagonale principale, la diagonale supérieure 
et la diagonale
inférieure

bl (:1
012 152 C2 0
(13 333 C3

aN bN
et où les vecteurs u et d, de dimension N, s'écrivent :

"»1 d1

".3 d,3
' |
' |
u = : et d = :
' |
' |
' |

uN--1 dN--1
uN dN

7/12

Dans cet algorithme, on calcule d'abord les coefficients suivants :

, C1
C1:--
b
' 1 C' ' 23 N 1
C' = 0 r = ; ; ; _
' b,--a,-c£ 1 p u l
et
, d1
d1=b_1
d---a-dL
d£='--'fl pour i=2,3,...,N.
bi_aici 1

Les inconnues ul, u2, , uN sont alors obtenues par les formules :

uN=div
ui=d£--c£ui+l pour i=N--1,N--2,...,2,1.

II.B.3.d.(i) En utilisant l'algorithme de Thomas, écrire une fonction Calchpl 
qui permet de
calculer le vecteur u, solution du système matriciel (5), à partir de la 
matrice M et du vecteur d.

II.B.3.e. Dans cette question, une fonction schema_implicite est élaborée avec 
les mêmes

arguments d'entrée et de sortie que la fonction schema_explicite (définis à la 
question
ll.B.2.j.) et qui utilise les mêmes critères d'arrêt (définis àla question 
ll.B.2.j.(viü).

II.B.S.e.(i) Ecrire l'en-tête de la fonction en précisant les paramètres 
d'entrée et de sortie.

II.B.3.e.(ü) Affecter la valeur 2 000 à ItMax. Créer la matrice T_t ou s_k dont 
les dimensions
sont N >< I tM ax en la remplissant de zéros.

II.B.S.e.(üü Remplacer la 1re colonne de T_t ou s_k par le vecteur des valeurs 
initiales T O.

II.B.S.e.(iv) Définir la matrice M et le vecteur V qui interviennent dans 
l'équation (4).

II.B.3.e.(v) Calculer le profil de température à l'instant k = 1 (t = At). 
Affecter ces valeurs à la
deuxième colonne de T_tous_k.

II.B.S.e.(vü Ecrire une boucle permettant de calculer itérativement le profil 
de température aux
instants ultérieurs tk = k >< At avec k 2 2, en prévoyant un arrêt lorsque la 
norme 2 du vecteur

T" -- T"'1 devient inférieure à 10"2 ou lorsque le nombre d'itérations atteint 
la valeur ItMax

(prévoir les deux cas). Utiliser pour cela la fonction calc_norme définie à la 
question
ll.B.2.j.(vü.

II.B.S.e.(vü) Ecrire la fin de la fonction afin de renvoyer tous les arguments 
de sortie définis au
début de la question ll.B.2.j.

II.C. Programme principal

II.C.1. Début du programme

II.C.1.a. Définir les variables epais (épaisseur du mur), conclue (conductivité 
thermique), rho
(masse volumique), Cp (capacité thermique massique), Tint (température 
intérieure), Textl

8/12

(température extérieure pour les instants t < 0), Text2 (température extérieure 
pour les instants

t > O), N (nombre de points de calcul à l'intérieur du mur) et Dt (intervalle 
de temps élémentaire)
et leur affecter les valeurs correspondant au problème physique défini au début 
de l'énoncé. On
prendra un nombre de points de discrétisation N = 60 et un pas de temps At de 
25 secondes.

II.C.1.b. Calculer les coefficients a et b avec la formule trouvée àla question 
II.A.2.
II.C.1.c. Créer un vecteur X dont les éléments xl, x2, , xN sont définis àla 
question ll.B.l.b.

II.C.1.d. Calculer le vecteur des températures initiales T O.

II.C.1.e. Calculer alpha selon la formule trouvée à la question ll.A.l. 
Calculer r en utilisant la
formule calculée àla question ll.B.2.h.

II.C.2. Calcul des températures

II.C.2.a. Ecrire un morceau de programme qui demande à l'utilisateur quel 
schéma (explicite ou
implicite) il souhaite utiliser et qui appelle la fonction correspondante.

II.C.3. Analyse du résultat

II.C.3.a. Ecrire un morceau de programme permettant de tracer sur un même 
graphique le profil
de température en fonction de X tous les 100 pas de temps.

II.C.S.b. Faire afficher le temps en heures au bout duquel le régime permanent 
est établi.

Fin de l'énoncé

9/12

ANNEXE A : COMMANDES ET FONCTIONS USUELLES DE SCILAB

A=[ab cd;e fg h;ij kl]
Description : commande permettant de créer une matrice dont la première ligne 
contient les
éléments a, b, c, d, la seconde ligne contient les éléments e, f, g, h et la 
troisième, les

éléments i, j, k, l.
Exemple : A=[12 3 4 5;31011 12 20;010 0 2]

® 1. 2. 3. 4. 5.
3. 10. 11. 12. 20.
0. 1. 0. 0. 2.

A(i,j)
Arguments d'entrée : les coordonnées de l'élément dans le tableau A.
Argument de sortie : l'élément (i, j) de la matrice A.
Description : fonction qui retourne l'élément (i, j) de la matrice A. Pour 
obtenir toute la
colonne j de la matrice A, on utilise la syntaxe A(: , j). De même, pour 
accéder à l'intégralité

de la ligne L' de la matrice A, on écrit A(i, : ).
Exemple: A=[12 3 4 5;31011 12 20;010 0 2]

A(2,4)
© 12
A(:,3)
® 3.
11.
0.
A(2,:)
® 3. 10. 11. 12. 20.

x=[x1szzx2]
Description : commande permettant de créer un vecteur dont les éléments sont 
espacés de
Dx et dont le premier élément est 361 et le dernier élément est le plus grand 
multiple de Dx
inférieur ou égal à 362.
ATTENTION: le vecteur ainsi créé est un vecteur ligne. Pour convertir un vecteur
ligne en un vecteur colonne, on le transpose en utilisant l'apostrophe « ' » : 
x_trans=x'.
Exemple : x=[2:0.5:6.3]

® 2. 2.5 3. 3.5 4. 4.5 5. 5.5 6.
x_trans=x'
® 2.
2.5
3.
3.5
4.
4.5
5.
5.5
6.
zeros(n,m)
Arguments d'entrée : deux entiers n et m correspondant aux dimensions de la 
matrice à
créer.
Argument de sortie : un tableau (matrice) d'éléments nuls.

Description : fonction créant une matrice (tableau) de dimensions n >< m dont 
tous les
éléments sont nuls.

10/12

Exemple : zeros(3,4)

plot(x,y)
Arguments d'entrée : un vecteur d'abscisses x (tableau de dimension n) et un 
vecteur
d'ordonnées )! (tableau de dimension n).
Description : fonction permettant de tracer sur un graphique n points dont les 
abscisses sont
contenues dans le vecteur x et les ordonnées dans le vecteur y.
Exemple : x= [3:0.1:5]
y=sin(x)
plot(X,y)

ANNEXE B : BIBLIOTHEQUE NUMPY DE PYTHON

Dans les exemples ci-dessous, la bibliothèque numpy a préalablement été 
importée à l'aide de la
commande : import numpy as np

On peut alors utiliser les fonctions de la bibliothèque, dont voici quelques 
exemples :

np.array(liste)

Argument d'entrée : une liste définissant un tableau à 1 dimension (vecteur) ou 
2
dimensions (matrice).

Argument de sortie : un tableau (matrice).
Description : fonction permettant de créer une matrice (de type tableau) à 
partir d'une liste.

EXÆpl_EUR : np.array([4,3,2])

® [4 3 2]
np-âïfäY(ll5lal7lallll)
@ [[5]

[7]

...]
np.array([[3,4,lO],[l,8,7]])
® [[3 4 10]

[l 8 7]]

A[i,j].

Arguments d'entrée : un tuple contenant les coordonnées de l'élément dans le 
tableau A.
Argument de sortie : l'élément (i + 1, j + 1) de la matrice A.
Description : fonction qui retourne l'élément (i + 1, j + 1) de la matrice A. 
Pour obtenir
toute la colonne j+l de la matrice A, on utilise la syntaxe A[: , j]. De même, 
pour accéder à
l'intégralité de la ligne i+l de la matrice A, on écrit A[i, : ].
ATTENTION : en langage Python, les lignes d'un A de dimension n X 111 sont
numérotées de 0 à n -- 1 et les colonnes sont numérotées de 0 à m -- 1
Exemple : A=np.array([[3,4,lO],[l,8,7]])

A[O,2]

© 10

A[:,2]

© [10 7]

A[l,:]

® [1 8 7]

11/12

np.zeros((n,m))
Arguments d'entrée : un tuple de deux entiers correspondant aux dimensions de 
la matrice à
créer.
Argument de sortie : un tableau (matrice) d'éléments nuls.
Description : fonction créant une matrice (tableau) de dimensions n >< m dont 
tous les
éléments sont nuls.

Exemple : np.zeros((3,4))

© uooooe
[000OE
mooon

np.linspace(Min,Max,nbElements)
Arguments d'entrée : un tuple de 3 entiers.
Argument de sortie : un tableau (vecteur).
Description : fonction créant un vecteur (tableau) de nbElements nombres espacés
régulièrement entre Min et Max. Le 1er élément est égal à M in, le dernier est 
égal à Max et
les éléments sont espacés de (Max -- M in) / (nbE lements -- 1) :
Exemple : np.linspace(3,25,5)

c>[385141952fl

ANNEXE C : BIBLIOTHEQUE MATPLOTLIB.PYPLOT DE PYTHON

Cette bibliothèque permet de tracer des graphiques. Dans les exemples 
ci-dessous, la bibliothèque
matplotlib.pyplot a préalablement été importée à l'aide de la commande :
import matplotlib.pyplot as plt

On peut alors utiliser les fonctions de la bibliothèque, dont voici quelques 
exemples :

plt.plot(x,y)
Arguments d'entrée : un vecteur d'abscisses x (tableau de dimension n) et un 
vecteur

d'ordonnées )! (tableau de dimension n).
Description : fonction permettant de tracer sur un graphique de n points dont 
les abscisses
sont contenues dans le vecteur x et les ordonnées dans le vecteur y. Cette 
fonction doit être
suivie de la fonction plt.show() pour que le graphique soit affiché.
Exemple : x= np.linspace(3,25,5)

y=sin(x)

plt.plot(x,y)

plt.xlabel('x')

plt.ylabel('y')

plt.show()

plt.xlabel(nom)
Argument d'entrée : une chaine de caractères.
Description : fonction permettant d'afficher le contenu de nom en abscisse d'un 
graphique.

plt.ylabel(nom)
Argument d'entrée : une chaine de caractères.
Description : fonction permettant d'afficher le contenu de nom en ordonnée d'un 
graphique.

plt.show()
Description : fonction réalisant l'affichage d'un graphe préalablement créé par 
la commande
plt.plot(x,y). Elle doit être appelée après la fonction plt.plot et après les 
fonctions plt.xlabel
et plt.ylabel.

12/12

IMPRIMERIE NATIONALE -- 151318 -- D'aprèsdocumentsf0urnis

Extrait du corrigé obtenu par reconnaissance optique des caractères



CCP Modélisation de systèmes physiques ou
chimiques PC 2015 -- Corrigé
Ce corrigé est proposé par Virgile Andreani (ENS Ulm) ; il a été relu par 
Olivier
Frantz (Professeur agrégé en école d'ingénieurs) et Julien Dumont (Professeur en
CPGE).

Ce sujet de modélisation est une nouveauté de cette année. Il a pour but 
d'évaluer
les capacités des candidats à formaliser un problème physique, puis à 
implémenter
plusieurs algorithmes décrits dans le sujet et relatifs à la simulation du 
système en
question. Ici, il s'agit de résoudre numériquement l'équation de la chaleur à 
une dimension avec les conditions aux limites de Dirichlet (température fixée 
aux frontières
du domaine). Il s'agit d'un problème classique souvent utilisé pour tester des 
solveurs
et schémas numériques car il est relativement simple (équation linéaire, 
restriction
facile à une seule dimension) mais peut s'étendre à la résolution de problèmes 
plus
complexes (plusieurs dimensions, différents types de conditions aux limites, 
schémas
numériques d'ordre supérieur...).
· Dans une courte première partie, le sujet pose les bases du problème du point
de vue physique et amène à le résoudre analytiquement en régime stationnaire.
· La deuxième partie mène à l'implémentation de deux schémas numériques, et
du programme principal qui appelle l'un ou l'autre d'entre eux. On discrétise
tout d'abord le problème en temps et en espace, ce qui conduit à réécrire les
équations sous une forme adaptée à la simulation numérique. Puis on écrit la
fonction de simulation utilisant l'un des schémas.
Le schéma concerné divergeant dans certains cas, on en développe un deuxième
qui nécessite la résolution d'un système linéaire à chaque pas de la simulation.
La matrice associée à ce système possède une structure particulière que l'on
exploite grâce à un algorithme, fourni par le sujet, dont on ne demande que
l'implémentation.
Enfin, les dernières questions guident l'élaboration du programme principal.
Celui-ci demande à l'utilisateur de choisir l'une ou l'autre des fonction de 
simulation et trace les graphes correspondants.
La difficulté de ce sujet ne réside ni dans l'étude préliminaire du problème, 
très
proche du cours, ni dans la conception d'algorithmes puisque ceux-ci sont 
élémentaires et fournis. Elle consiste plutôt à écrire des programmes corrects 
sur papier.
Dans le cadre de révisions, on peut s'autoriser l'aide d'un ordinateur à partir 
de la
question II.B.2.j. Ce sujet constitue également une bonne introduction à la 
résolution
numérique d'équations différentielles.

Indications
Partie I
I.C.3 Les profils doivent être intermédiaires entre les deux régimes permanents,
pour trouver leur allure se demander dans quel sens se propage la variation de 
température.
Partie II
II.B.2.j.(i) D'autres paramètres que ceux mentionnés par l'énoncé peuvent être 
pertinents, en particulier ceux concernant les conditions aux limites ainsi
que la taille des vecteurs.
II.B.2.j.(ii) On pourrait utiliser par exemple le système d'exceptions de 
Python pour
interrompre le programme.
II.B.2.j.(v) Il serait pertinent de ne pas avoir à réécrire le même code ici 
qu'à la la
question II.B.2.j.(vii) et donc de dès maintenant définir une fonction que
l'on appellera aux deux endroits.
II.B.3.e.(v) S'aider de l'équation établie par l'énoncé avant la question 
II.B.3.d.

simulation numérique du transfert thermique dans un
mur en régime transitoire
I.A.1 On peut considérer que la température à l'intérieur du mur est uniforme 
selon
les coordonnées y et z si les dimensions caractéristiques sur ces axes sont très
grandes devant l'épaisseur e du mur.
I.A.2 Calculons de deux manières différentes la variation d'énergie interne dU 
d'un
volume dV du mur pendant une durée dt. D'une part,
dU =  cp dT dV
et d'autre part,

dU =  T dt dV
T

=
T
t
 cp

d'où
Or, par définition,
Comme

T =

T
T
=
= 0,
y
z

2T 2T 2T
+
+
x2
y 2
z 2

T
  2T
=
t
 cp x2

()

I.B.1 Dans le premier cas, la température est imposée en x = 0 et x = e, aux
valeurs respectives Tint et Text , soit
T(0, t) = Tint

et

T(e, t) = Text

Dans le second cas, on peut considérer que l'équation de la question précédente
s'applique toujours en x = e, mais avec une conductivité beaucoup plus faible 
que
dans le reste du mur, c'est-à-dire avec une valeur de  quasiment nulle. Par 
conséquent, la dérivée temporelle de la température à la limite extérieure du 
mur est nulle :
T(0, t) = Tint

et

T
t

=0
e,t

I.C.1 En régime permanent, la dérivée temporelle de T est nulle, et l'équation 
()
se simplifie par suite en
2T
=0
x2
La température du mur en un point donné de celui-ci est donc constante dans le
temps et suit une fonction de x dont la dérivée seconde est nulle : c'est une 
fonction
affine. Par conséquent,
T(x, t) = ax + b
Pour toute valeur de t, on a T(t, 0) = Tint , soit b = Tint . La température en 
e
valant Text1 ou Text2 selon le signe de t, on a finalement
Text - Tint
a=
e
soit

T(x, t1 ) =

Text1 - Tint
x + Tint
e

et T(x, t2 ) =

Text2 - Tint
x + Tint
e

où t1 et t2 , définis dans l'énoncé, sont deux instants respectivement 
antérieur à t = 0
et très éloigné dans le futur.

I.C.2 Ces deux profils sont ceux de fonctions affines.
T
20 C

t1 < 0

10 C
t2 > 0
e

0

x

-10 C

I.C.3 Entre ces deux régimes permanents, le changement de température se propage
de la paroi extérieure du mur vers l'intérieur de la maison, ce qui est 
représenté sur
le graphe par les courbes pointillées.
II.A.1 D'après le résultat de la question I.A.2,
=

cp 

II.A.2 On détermine b en utilisant T(0, 0) = Tint , puis l'on déduit la valeur 
de a
de l'équation T(e, 0) = Text1 , d'où
a=

Text1 - Tint
e

et

b = Tint

II.B.1.a On compte N + 1 intervalles x dans l'épaisseur e du mur, d'où
x =

e
N+1

II.B.1.b Le ie point se situe en xi = i x.

II.B.2.a Le développement de Taylor à l'ordre 3 de la fonction T(x, t) en x 
s'écrit

T(x + x, t) = T(x, t) + x

T
x

+
x,t

x2  2 T
2 x2

+
x,t

x3  3 T
3! x3

+ o x3

+ o x3

x,t

Similairement, en remplaçant x par -x,
T(x - x, t) = T(x, t) - x

T
x

+
x,t

x2  2 T
2 x2

-
x,t

x3  3 T
3! x3

x,t