CCINP Modélisation PC 2015Sujet, corrigé et rapport du jury
- Équation de la diffusion thermique (équation de la chaleur)
- Conditions aux limites
- Méthode des différences finies
- Schémas numériques explicite et implicite
- Programmation scientifique en Python ou Scilab
Téléchargements
Présentation du sujet
Difficulté moyenneSimulation numérique du transfert thermique dans un mur en régime transitoireAfficher ou masquer la section
Présentation du sujet
Difficulté moyenneLe sujet porte sur la résolution de l'équation de la chaleur par des méthodes numériques. Une première partie physique établit l'équation et les conditions aux limites, puis une seconde partie programme deux schémas de résolution par différences finies, un schéma explicite et un schéma implicite, en Python ou Scilab.
- 1Partie I : étude préliminaireÉtablissement de l'équation de la chaleur, des conditions aux limites et des solutions en régime permanent.
- 2Partie II : résolution numériqueDiscrétisation par différences finies et programmation d'un schéma explicite puis d'un schéma implicite, avec analyse des résultats.
Difficulté moyenne. Le rapport qualifie le sujet de difficulté moyenne, alliant des questions de physique, de mathématiques et de programmation, avec un niveau de difficulté varié permettant de classer les candidats.
Ce qu'a observé le jury
5 erreurs relevéesDéveloppement limité mal maîtrisé · Erreurs d'indices dans les boucles · Confusion entre « or » et « and » dans la boucle whileAfficher ou masquer la section
Ce qu'a observé le jury
5 erreurs relevéesL'énoncé était jugé suffisamment clair, découpé en parties indépendantes avec des résultats intermédiaires donnés pour ne pas bloquer les candidats. Le jury relève surtout des difficultés de programmation récurrentes : erreurs d'indices, matrices non initialisées, confusion entre les opérateurs « == » et « = », et méconnaissance de certaines commandes de base.
Les erreurs les plus sanctionnées
- 1Développement limité mal maîtriséII.B.2.a
Les coefficients du développement limité étaient souvent faux ou l'ordre du développement était incorrect.
« Beaucoup d’erreurs dans le développement limité DL : les coefficients étaient faux, le DL était fait au mauvais ordre, oubli du o(Dx3). »
- 2Erreurs d'indices dans les bouclesI.B.3.e.(iv)
Les bornes des boucles et les définitions des éléments aux bords de la matrice sont fréquemment fausses.
« Beaucoup d’erreur d’indice dans les boucles et mauvaises définitions des éléments aux bords de la matrice. »
- 3Confusion entre « or » et « and » dans la boucle whileII.B.2.j.(vii)
La condition d'arrêt de la boucle itérative est souvent mal traduite en langage de programmation.
« Des erreurs dans la boucle « while » (utilisation de « or » au lieu de « and », erreurs dans les signes d’inégalité). »
- 4Tracé de la mauvaise grandeurII.C.3.a
De nombreux candidats ont tracé la température en fonction du temps alors que le tracé demandé était en fonction de la position.
« trop nombreux candidats ont voulu tracer T(t) alors que T(x) était demandé. »
- 5Commande print peu maîtriséeII.B.2.j.(ii), II.C.3.b
Une partie des candidats ne sait pas afficher un message d'avertissement ou un résultat avec la commande print.
« Tous les candidats ne connaissent pas la commande « print ». »
Ce qui a été bien réussi
- L'équation de la diffusion thermique et l'expression du coefficient de diffusion sont connues des candidats.
- La résolution en régime permanent et le tracé des profils de température sont dans l'ensemble très bien traités.
- Plusieurs questions du schéma explicite portant sur le développement limité en temps et sur l'écriture de la fonction schema_explicite ont été bien réussies.
Conseils du jury
- Utiliser les tableaux numpy plutôt que les listes pour manipuler des vecteurs et matrices.
- Commenter le code pour expliciter la démarche, surtout quand plusieurs solutions sont envisageables.
- Écrire la condition d'arrêt d'une boucle while sous forme de négation mathématique pour éviter les confusions de signes.
- Bien distinguer l'écriture mathématique d'une expression de son écriture en langage de programmation.
Synthèse rédigée par WikiPrépa à partir du rapport officiel du jury (à télécharger en PDF). Les citations sont extraites du rapport.
Ces sujets peuvent vous intéresser
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.Afficher ou masquer la section
Lecture du sujet en ligne
EPREUVE SPECIFIQUE - FILIERE PC
MODELISATION DE SYSTEMES PHYSIQUES OU CHIMIQUES
Abstract
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
SIMULATION NUMERIQUE DU TRANSFERT THERMIQUE DANS UN MUR EN REGIME TRANSITOIRE

PARTIE I : ETUDE PRELIMINAIRE
I.A. Equation gouvernant la température
I.A.1. A quelle condition peut-on supposer que la température ne dépend pas des coordonnées
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. 1 ?
I.B. 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
I.C. Solutions en régime permanent
- pour un instant particulier négatif
t_1 < 0 , - pour un instant particulier positif
t_2 > 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 profilsT(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 = 0 ) et l'instantt_2 où le régime est de nouveau permanent.
PARTIE II : RESOLUTION NUMERIQUE
II.A. Equation à résoudre
II.A.2. Exprimer
II.B. Méthode des différences finies

II.B.1.b. Donner l'abscisse
- 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.b. En déduire une expression approchée à l'ordre
II.B.2.c. Déduire de la question précédente une expression approchée de
II.B.2.d. A l'aide d'un développement limité de la fonction
II.B.2.e. En déduire une valeur approchée de
II.B.2.f. Donner une expression de
II.B.2.g. Ecrire la forme approchée de cette équation au point
II.B.2.h. Montrer que l'équation obtenue à la question II.B.2.g peut s'écrire sous la forme :
L'équation (2) est appelée schéma numérique explicite. Si on connaît la température en tous les points
II.B.2.i. L'équation (2) est-elle valable dans tout le domaine, c'est-à-dire pour toute valeur de
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 TO de dimension
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.(ii) Le schéma numérique (2) permet d'approcher avec succès la solution à la condition
II.B.2.j.(iii) Affecter la valeur 2000 à ItMax. Créer la matrice T_tous_k de dimensions
II.B.2.j. (iv) Remplacer la première colonne de T_tous_k par le vecteur des valeurs initiales T0.
II.B.2.j.(v) Calculer le profil de température à l'instant
II.B.2.j.(vi) Ecrire une fonction calc_norme qui calcule la norme 2 d'un vecteur. On rappelle que la norme 2 d'un vecteur
II.B.2.j.(viii) Ecrire la fin de la fonction afin de renvoyer tous les arguments de sortie définis au début de la question II.B.2.j.
II.B.3. Méthode utilisant un schéma implicite
II.B.3.b. Montrer que l'équation obtenue à la question II.B.3.a. peut être mise sous la forme
II.B.3.c. Préciser l'expression de la matrice
II.B.3.d. Le but de cette question est d'écrire une fonction CalcTkp1 qui permet de résoudre un système matriciel tridiagonal en utilisant l'algorithme de Thomas présenté ci-dessous.
Algorithme de Thomas :
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 II.B.2.j.) et qui utilise les mêmes critères d'arrêt (définis à la question II.B.2.j. (vii)).
II.B.3.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.(ii) Affecter la valeur 2000 à ItMax. Créer la matrice T_tous_k dont les dimensions sont
II.B.3.e.(iii) Remplacer la
II.B.3.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
II.B.3.e.(vi) Ecrire une boucle permettant de calculer itérativement le profil de température aux instants ultérieurs
II.B.3.e.(vii) Ecrire la fin de la fonction afin de renvoyer tous les arguments de sortie définis au début de la question II.B.2.j.
II.C. Programme principal
II.C.1. Début du programme
(température extérieure pour les instants
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
II.C.1.d. Calculer le vecteur des températures initiales T0.
II.C.1.e. Calculer alpha selon la formule trouvée à la question II.A.1. Calculer
II.C.2. Calcul des températures
II.C.3. Analyse du résultat
II.C.3.b. Faire afficher le temps en heures au bout duquel le régime permanent est établi.
Fin de l'énoncé
ANNEXE A : COMMANDES ET FONCTIONS USUELLES DE SCILAB
A = [abcd; efgh; ijkl]
Exemple:
A(i,j)
Argument de sortie : l'élément (
Description: fonction qui retourne l'élément (
Exemple:
A(2,4)
A(:,3)
11.
0.
x = [x1 : Dx : x2]
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:
2.5
3.
3.5
4.
4.5
5.
5.5
6.
zeros(n,m)
Argument de sortie : un tableau (matrice) d'éléments nuls.
Description: fonction créant une matrice (tableau) de dimensions
plot(x,y)
Description : fonction permettant de tracer sur un graphique
Exemple:
plot(x,y)
ANNEXE B : BIBLIOTHEQUE NUMPY DE PYTHON
np.array(liste)
Description : fonction permettant de créer une matrice (de type tableau) à partir d'une liste.
Exemple : np.array([4,3,2])
np.array([[5],[7],[1]])
[7]
[1]]
np.array([[3,4,10],[1,8,7]])
[118 7]]
Arguments d'entrée : un tuple contenant les coordonnées de l'élément dans le tableau
Argument de sortie : l'élément (i
Description: fonction qui retourne l'élément (
ATTENTION: en langage Python, les lignes d'un
Exemple :
A[0,2]
A[:,2]
A[1,:]
np.zeros((n,m))
Argument de sortie : un tableau (matrice) d'éléments nuls.
Description: fonction créant une matrice (tableau) de dimensions
Exemple: np.zeros((3,4))
[llll]
[llll]
np.linspace(Min,Max,nbElements)
Argument de sortie : un tableau (vecteur).
Description: fonction créant un vecteur (tableau) de nbElements nombres espacés régulièrement entre
Exemple: np.linspace(3,25,5)
ANNEXE C : BIBLIOTHEQUE MATPLOTLIB.PYPLOT DE PYTHON
import matplotlib.pyplot as plt
plt.plot(x,y)
Description : fonction permettant de tracer sur un graphique de
Exemple :
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
plt.xlabel(nom)
Argument d'entrée : une chaîne 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 chaîne de caractères.
Description : fonction permettant d'afficher le contenu de nom en ordonnée d'un graphique.
plt.show()
Questions fréquentes
4 questionsSur quoi porte le sujet de Modélisation CCINP PC 2015 ?Afficher ou masquer la section
Questions fréquentes
4 questionsSur quoi porte le sujet de Modélisation CCINP PC 2015 ?
Le sujet porte sur la résolution numérique de l'équation de la chaleur dans un mur, en Python ou Scilab, à l'aide de schémas aux différences finies explicite et implicite.
Le sujet CCINP Modélisation PC 2015 est-il difficile ?
Le rapport le qualifie de difficulté moyenne, avec des questions de niveau varié permettant de classer les candidats.
Quelles erreurs de programmation sont les plus fréquentes sur ce sujet CCINP PC 2015 ?
Le jury relève surtout des erreurs d'indices dans les boucles, des matrices non initialisées, des confusions entre « == » et « = », et une méconnaissance de commandes comme print.
Faut-il connaître Python et Scilab pour ce sujet de modélisation CCINP PC 2015 ?
Le sujet propose une annexe avec les principales fonctions de Python et Scilab, et une immense majorité des candidats a traité l'épreuve en Python.
Pas de description pour le moment
