télécharger le texte du TP
Transcription
télécharger le texte du TP
Journées de formation « Modélisation numérique de phénomènes physiques » les 2 et 3 octobre 2008 F ICHE DE TRAVAUX PRATIQUES But du TP L’objectif de la séance de travaux pratiques est double : faire découvrir un logiciel libre Présentation de calcul scientifique et manipuler les méthodes numériques de résolution d’équations différentielles ordinaires. Au travers d’une démarche de modélisation, il s’agit d’observer Deux journées de formation, les 2 et 3 octobre 2008, spécifiquement conçues pour les Inspecteurs de l’efficacité des différents algorithmes et leurs limitations dans l’étude numérique d’un mathématiques de l’Éducation nationale sont organisées par l’antenne de Bretagne de l’École normale problème concret. supérieure de Cachan, sur le thème : Modélisation numérique de phénomènes physiques : Environnement informatique Les enjeux actuels du calcul scientifique pour la modélisation, la recherche mathématique, l’enseignement. La séance a lieu dans la salle libre-service linux ; des comptes « invités » ont été créés : login : mot de passeet : leur approximation. Les aspects quantitatifs Ces journées s’articuleront autour des équations différentielles et qualitatifs aux de méthodes numériques seront présentés au travers>de mini-courscréer s’appuyant Auliés début la séance, ouvrir un terminal (menu Applications Accessoires), un dos-sur des exemples issus detravail la physique. Des travaux pratiques sous le logiciel Scilab permettront aux participants sier de et lancer scilab à l’aide des commandes de mettre en œuvre ces méthodes et d’en apprécier les apports et les limitations. Par ailleurs, Claude # mkdir TP_IPR Gomez, responsable de l’équipe-projet Scilab, présentera l’utilisation au lycée de ce logiciel scientifique # cd TP_IPR libre, notamment dans le cadre de la nouvelle épreuve pratique de mathématiques au baccalauréat. # scilab illustreront les problématiques de la recherche actuelle en termes de modélisations Enfin, des conférences mathématique et numérique dans divers domaines applicatifs. Détail activités Cette formation se des déroule pour la troisième année consécutive sur le campus de Ker Lann. En 2006, elle était organisée par le département d’informatique et télécommunications de l’ENS Cachan - Bretagne Il s’agit programme à lasur carte, oùthéorie chacun de peut approfondir et les les thèmes de son choix. ». En 2007, le (organisateur : Lucd’un Bougé) et portait « la l’information communications département de Mathématiques de l’ENS Cachan - Bretagne et l’ENSAI (organisateurs : François Coquet, prise en main du logiciel Scilab, ENSAI et Michel Pierre, ENS Cachan - Bretagne) se sont associés pour proposer la formation sur le thème « Statistiques et applications multi-disciplinaires ». numérique d’EDO, utilisation des méthodes de résolution comparaison des vitesses de convergence des différents schémas, étude de stabilité – étoiles d’ordre. P RISE EN MAIN DE Scilab L’essentiel Vecteurs et matrices Les objets de base de Scilab sont les matrices : un vecteur est une matrice à une ligne ou une colonne ; un scalaire est une matrice 1 × 1. --> --> --> --> --> --> --> --> x=[1,4,-5]; y=[1;4;-5] length(y) norm(y,’inf’) z=1:2:10 t=linspace(0,10,100); t(6) A=zeros(3,3) --> --> --> --> --> --> --> --> A(1,3)=3 B=[A,y] C=[A;x] size(B) D=eye(3,3)+0.1*A; D(3,:) solution=D\y D*solution Fonctions Voici comment définir ses propres fonctions dans Scilab : on crée le fichier suivant dans un éditeur de texte (menu Applications>Accessoires) et le sauvegarde dans fct.sci (attention : ce fichier doit se trouver dans le répartoire où Scilab a été lancé) function y=f(t) y=t.^3-t.*(1-t)-2; endfunction Il faut ensuite charger la fonction dans Scilab : --> getf fct.sci La fonction f peut alors être utilisée comme toute autre fonction prédéfinie. --> f(9) --> f([1,2,3]) Graphiques Pour tracer un graphe dans Scilab, il faut créer les vecteurs des abscisses et des ordonnées. --> --> --> --> --> t=linspace(0,1,100); plot(t,sin(t)) plot(t,f(t)) clf plot(t,cos(t),’r’) 1 Pour aller plus loin Programmation Il est possible de rassembler dans un fichier texte une séquence de commandes Scilab. La commande exec permet alors de les exécuter. Exemple : le fichier script.sce contient les instructions suivantes N = 10; x = zeros(1, N); for i = 1 : N x(i) = log(i); end i = 1; while(i < 5 & x(i) < 2) i = i + 1; end [i, x(i)] L’exécution dans Scilab s’effectue comme suit --> exec script.sce Régression linéaire Parmi les nombreuses fonctions prédéfinies dans Scilab, on utilise fréquemment la commande reglin qui permet de calculer les coefficients de la droite des moindres carrés d’un nuage de points. Pour une description détaillée, voir l’aide : --> help reglin 2 M ÉTHODES NUM ÉRIQUES DE R ÉSOLUTION D ’ EDO L’essentiel On considère l’équation différentielle avec condition initiale suivante : ( 0 y (t) = f (t, y(t)), 0 ≤ t ≤ T, y (0) = y0 , où f : [0, T ] × Rd → Rd est une fonction régulière et y0 ∈ Rd . Pour l’approximation numérique, on note h le pas de la subdivision uniforme (tn )nN=0 de l’intervalle [0, T ] : tn = nh et yn est une approximation de y(tn ) pour 0 ≤ n ≤ N. On rappelle ci-dessous quelques méthodes classiques. Euler explicite y n +1 = y n + h f ( t n , y n ) Heun y n +1 = y n + Runge-Kutta (RK4) h 2 h f (tn , yn ) + f (tn+1 , yn + h f (tn , yn )) kn1 = f (tn , yn ) kn2 kn3 kn4 = f (tn + 2h , yn + 2h kn1 ) = f (tn + 2h , yn + 2h kn2 ) i f (tn+1 , yn + hkn3 ) = yn + 6h kn1 + 2kn2 + 2kn3 + kn4 = y n +1 Pour aller plus loin y n +1 = y n + h f ( t n +1 , y n +1 ) Euler implicite Soulignons que la méthode d’Euler implicite nécessite la résolution d’une équation (généralement non-linéaire) à chaque pas de temps. On peut utiliser la méthode de Newton initialisée avec l’itéré précédent. Précisément, yn étant connu, il s’agit de trouver z, racine de l’équation ϕ(z) = 0 avec ϕ ( z ) = z − y n − h f ( t n +1 , z ). La méthode de Newton construit la suite (zk ) à l’aide de la relation de récurrence z0 = y n et z k +1 = z k − ϕ 0 ( z k ) −1 ϕ ( z k ) . On arrête l’algorithme quand l’incrément |zk+1 − zk | est inférieur à un certain seuil (un nombre maximal d’itération est aussi imposé). 3 Mise en œuvre sur un exemple issu d’une modélisation On se base sur un texte de préparation à l’épreuve de modélisation (option calcul scientifique) de l’agrégation externe de mathématiques, voir pages suivantes. Le système différentiel étudié modélise la cinétique d’une réaction auto-catalytique. Il est reproduit cidessous 0 y a (t) = − k1 y a (t) + k3 yb (t)yc (t) y0b (t) = k1 y a (t) − k3 yb (t)yc (t) − k2 [yb (t)]2 0 yc (t) = k2 [yb (t)]2 avec y (0) = 1, a yb (0) = 0, y (0) = 0. c Les constantes valent k1 = 0.04, k2 = 3 · 107 et k3 = 104 . Les différences d’ordres de grandeur des constantes rendent la résolution numérique délicate. Pistes de travail P ROGRAMMATION DE LA FONCTION D ÉFINISSANT L’ EDO Le système différentiel s’écrit sous la forme Y 0 = F (t, Y ). Dans Scilab, il est représenté par la fonction vectorielle function Yprime=F(t,Y) U TILISATION DE LA COMMANDE ode D ÉJ À PROGRAMM ÉE DANS Scilab --> Y0=[1;0;0]; --> t=linspace(0,0.2,100); --> Y=ode(Y0,0,t,F); --> plot(t,Y(2,:)) P ROGRAMMATION ET COMPARAISON DE M ÉTHODES NUM ÉRIQUES On peut programmer, sur le modèle de la commande ode, les méthodes précédentes. Il est alors intéressant de comparer leur performance pour différentes valeurs du pas h. C OMPARAISON DES VITESSES DE CONVERGENCE Pour comparer les ordres de convergence des différentes méthodes, on se place dans le cas modèle y0 (t) = −y(t) avec y(0) = 1 pour lequel la solution exacte est connue. En faisant varier le pas h, on peut obtenir les courbes d’erreur pour chaque méthode : E (h) = max |y(tn ) − yn |. n=0,··· ,N É TOILES D ’ ORDRE Il est possible d’observer les domaines de A-stabilité des méthodes numériquement. Rappel. Pour λ ∈ C de partie réelle négative, on considère l’approximation (yλn ) de l’équation y0 (t) = λy(t) avec y (0) = y0 . Le domaine de stabilité d’une méthode donnée est l’ensemble des complexes λ pour lesquels la suite (yλn )n∈N est bornée. 4 Cinétique de l’oxydation du sulfite de cuivre Grégory Vial∗ 10 mars 2008 Résumé On s’intéresse à l’oxydation du sulfite de cuivre : il s’agit d’une réaction d’autocatalyse dont l’étude cinétique conduit à un problème différentiel raide. On étudie différentes méthodes numériques pour en approcher la solution. Cette présentation est inspirée de [1]. Mots-clés : Système d’équations différentielles, problème raide, approximation numérique. 1 Le modèle La cinétique chimique s’intéresse aux aspects temporels liés aux réactions chimiques. Les problèmes les plus intéressants sont ceux dans lesquels plusieurs réactions ont lieu simultanément ou successivement, avec des vitesses de différents ordres de grandeur. C’est souvent le cas lors de réactions d’autocatalyse. Le phénomène d’oxydation du sulfite de cuivre est un exemple d’autocatalyse. En effet, le sulfite de cuivre ne réagit pas directement avec le dioxygène, mais produit luimême la catalyseur qui va permettre la réaction. L’équation bilan s’écrit Cu SO3 + 21 O2 −→ Cu SO4 . En réalité le mécanisme chimique est beaucoup plus complexe, voir [2] ; un modèle simplifié est le suivant : Cu2+ + SO23− − + −−⇀ ↽−− Cu + SO3 Cu+ + SO3− + 12 O2 −−→ Cu+ + SO4− La première réaction favorise fortement le sens de droite à gauche car le sulfite de cuivre est un composé stable. D’autre part, la seconde est très rapide, ce qui permet l’oxydation même si le catalyseur est en très faible quantité. Le prototype de ce genre d’équations est donné par le problème de Robertson (1966) : les quantités chimiques en jeu sont appelées A, B, C pour plus de simplicité ; le bilan global de la réaction est A → C. On décompose le mécanisme chimique complexe en trois réactions élémentaires dont les lois cinétiques sont supposées d’ordre 1 : −→ B (lente : k1 = 0.04), B + B −→ C + B (très rapide : k2 = 3 · 107 ), B + C −→ A + C (rapide : k3 = 104 ). A ∗ Département (1) de Mathématiques, ENS Cachan antenne de Bretagne, Campus de Ker-Lann, 35170 Bruz. [email protected] 1 2 Agrégation externe de mathématiques – ENS Cachan Bretagne La première réaction est nommée amorçage, il s’agit de la formation lente du catalyseur B. Le deuxième réaction produit le composé C très rapidement, et la troisième traduit la recomposition du catalyseur B (rupture) ; cette dernière justifie le terme d’autocatalyse. Les vitesses des trois réactions en jeu sont très différentes comme le montrent les constantes de réaction situées à droite des équations chimiques. Les lois de la cinétique chimique permettent d’obtenir le système différentiel suivant, où ya (t), yb (t), yc (t) désignent les quantités respectives des composés A, B et C à l’instant t, ′ y a ( t) = − k1 y a ( t) + k3 yb ( t) yc ( t) (2) y′b (t) = k1 ya (t) − k3 yb (t)yc (t) − k2 [yb (t)]2 ′ 2 yc ( t) = k2 [yb (t)] . Ces équations sont assorties de conditions initiales, traduisant la seule présence du réactif A : ya (0) = 1, yb (0) = 0, (3) yc (0) = 0. 2 Étude mathématique du système différentiel Les quantités ya , yb et yc représentant des quantités de composés chimiques, on souhaite qu’elles restent positives au cours du temps (elles le sont évidemment à l’instant initial). On peut vérifier que c’est bien le cas : Proposition 1 Pour t > 0, ya (t) ≥ 0, yb (t) ≥ 0 et yc (t) ≥ 0. P REUVE . Raisonnons par l’absurde : si une de ces quantités devient négative, alors elle s’annule par continuité. Tout d’abord, il est facile de voir, par monotonie, que le cas où yc s’annule se ramène à celui où yb s’annule. Supposons donc tout d’abord que yb soit la première composante à s’annuler : notons t0 tel que yb (t0 ) = 0. Alors ya (t0 ) > 0. La deuxième équation du système (2) implique y′b (t0 ) > 0, si bien que yb reste positif au voisinage de t0 . Maintenant, si ya s’annule en t0 sans que yb ne s’annule, la première équation prouve de la même manière que ya est croissante au voisinage de t0 , donc reste positive. Il reste à considérer le cas où ya et yb s’annulent à la fois en t0 . Mais on a alors affaire à un point critique, et l’unicité locale de la solution contredit la non-nullité de ya en t = 0. Les points d’équilibre sont les triplets (0, 0, γ), où γ est arbitraire. Il est naturel de s’intéresser à leur stabilité. Pour cela, on étudie le système linéarisé au voisinage du point (0, 0, γ) : il s’écrit ′ ya (t) = − k1 ya (t) + k3 γyb (t) (4) y′b (t) = k1 ya (t) − k3 γyb (t) ′ 0. yc ( t) = La point (0, 0, γ) est stable pour le système (4), mais une étude complémentaire est nécessaire pour le système (2). Proposition 2 Les points d’équilibre (0, 0, γ) sont stables. Texte. Cinétique de l’oxydation du sulfite de cuivre 3 P REUVE . Il suffit de remarquer que la fonction ya + yb + yc est une intégrale première du système différentiel (2). Comme, de plus, les quantités ya , yb et yc restent positives, le point (0, 0, γ) est stable. Enfin, on s’intéresse au comportement de la solution en temps long. Il est clair que yc (t) converge quand t tend vers +∞, sa limite est notée y∞ c . Pour montrer que y a et yb convergent, il faut approfondir l’analyse. Théorème 3 Les solutions du problème différentiel (4)-(3) vérifient – la fonction ya est décroissante et converge vers 0 quand t tend vers +∞ ; – la fonction yb est croissante puis décroissante, elle converge vers 0 quand t tend vers +∞ ; – la fonction yc est croissante, elle converge vers 1 quand t tend vers +∞. P REUVE . forme Utilisant le fait que ya + yb + yc = 1, on peut récrire le système (2) sous la ( x′ = −k1 x + k3 y(1 − x − y) = f ( x, y) y′ = k1 x − k3 y(1 − x − y) − k2 y2 = g( x, y), (5) où on a posé x = ya et y = yb . La figure 1 partage le quart de plan x, y > 0 en régions où les fonctions f et g définissant le système (5) sont de signe constants ; dans ces régions, les fonctions x et y sont monotones. Le point initial A = (1, 0) est situé dans la région I. Si le point mobile ( x(t), y(t)) reste dans la région I, alors x et y convergent par monotonie et on déduit du système (5) que la limite ne peut être que le point critique (0, 0). Sinon, la trajectoire sort de la zone I au temps t0 pour entrer dans la zone II, voir le point B sur la figure 1. Il est facile de voir que cette zone est stable, si bien que les fonctions x(t) et y(t) sont toutes-deux décroissantes à partir du temps t0 . On conclut de même que plus haut à la convergence vers le point critique et le théorème est démontré. Les informations qualitatives données par le théorème précédent sont conformes à ce que les chimistes observent. En effet, la catalyseur B disparaı̂t en temps long, et finalement, la quantité du réactif A introduite initialement sera totalement transformée dans le produit C. 3 Approximations numériques Afin de calculer une solution approchée du système différentiel (2), on introduit une subdivision tn = nδt (n = 0, . . . , N), où δt vérifie Nδt = T. La figure 2 présente un résultat pour la méthode d’Euler explicite, dont on voit qu’il n’est guère conforme à la monotonie prédite par la théorie. La situation peut être améliorée en diminuant la valeur du pas δt, comme le montre la figure 3. Toutefois, afin de réduire le temps de calcul, on s’oriente vers d’autres méthodes permettant de choisir des valeurs de δt plus grandes. C’est le cas de la méthode d’Euler implicite, qui fournit un résultat correct pour des valeurs très grossières de pas de temps, cf. figures 4 et 5. Agrégation externe de mathématiques – ENS Cachan Bretagne 4 y f ( x, y) ≤ 0 g( x, y) ≤ 0 II f ( x, y) ≥ 0 g( x, y) ≤ 0 I B • III f ( x, y) ≤ 0 g( x, y) ≥ 0 x • A(1, 0) O F IG . 1 – Régions de positivité dans le plan de phase pour (5) Méthode d’Euler explicite pour la résolution de u′ = F (u) un+1 = ( I + δtF )(un ). Méthode d’Euler implicite pour la résolution de u′ = F (u) un+1 = ( I − δtF )−1 (un ). yb ( t) 4·10−5 − 3·10−5 − 2·10−5 − 10−5 − 0 | 0.1 | 0.2 | 0.3 t F IG . 2 – Fonction yb (t) obtenue avec Euler explicite pour T = 0.3 et δt = 10−3 . Texte. Cinétique de l’oxydation du sulfite de cuivre 5 yb ( t) 4·10−5 − 3·10−5 − 2·10−5 − 10−5 − 0 | 0.1 | 0.2 | 0.3 t F IG . 3 – Fonction yb (t) obtenue avec Euler explicite pour T = 0.3 et δt = 10−4 . yb ( t) 4·10−5 − 3·10−5 − 2·10−5 − 10−5 − 0 | 0.1 | 0.2 | 0.3 t F IG . 4 – Fonction yb (t) obtenue avec Euler implicite pour T = 0.3 et δt = 10−2 . yb ( t) 4·10−5 − 3·10−5 − 2·10−5 − 10−5 − 0 | 0.1 | 0.2 | 0.3 t F IG . 5 – Fonction yb (t) obtenue avec Euler implicite pour T = 0.3 et δt = 10−3 . Agrégation externe de mathématiques – ENS Cachan Bretagne 6 Du point de vue chimique, on peut être intéressé à la quantité moyenne de catalyseur présent dans la solution entre les temps 0 et T. La solution approchée déterminée à l’aide de la méthode d’Euler implicite permet d’effectuer un calcul numérique de l’intégrale 1 T yb (t) dt. T 0 En utilisant la méthode des trapèzes, on obtient les valeurs Ib ( N ) pour différentes valeurs de N, données dans le tableau suivant (T = 0.3). Ib = Z N 30 Ib ( N ) 3.480938188866958 · 10−5 300 3.534801090251057 · 10−5 3000 3.53920602392115 · 10−5 4 Calcul du temps de demi-oxydation Les simulations numériques précédentes peuvent être utilisées pour estimer le temps au bout duquel la moitié de la quantité de sulfite de cuivre aura été oxydée. Le recours à une méthode implicite est ici cruciale, puisqu’on est intéressé au comportement en temps long de la solution. D’autre part, la processus d’oxydation peut être ralenti par un abaissement de la température, qui agit essentiellement sur la réaction de amorçage. Plus précisément, la loi d’Arrhénius exprime la constante k1 en fonction de la température absolue T : 200 , (6) k1 = 0.078 exp − T si bien que k1 vaut 0.04 pour T = 300 kelvin. Le tableau ci-dessous montre les valeurs du temps de demi-oxydation t1/2 en fonction de la température T. T 275 300 325 350 t1/2 300 268 244 224 Ainsi, la conservation du sulfite de cuivre à 2 degrés Celsius plutôt qu’à température ambiante permet de augmenter le temps de demi-oxydation de près de 12%. Références [1] E. H AIRER , G. WANNER. Solving ordinary differential equations. II, volume 14 of Springer Series in Computational Mathematics. Springer-Verlag, Berlin, second edition 1996. Stiff and differential-algebraic problems. [2] L OGAN. Introduction à la cinétique chimique. Dunod, Paris 1998. Suggestions. (le candidat est libre de ne pas les suivre) 1. on pourra justifier l’existence d’une solution du système (2) définie pour t > 0 ; 2. on pourra retrouver à l’aide d’un programme simple les courbes obtenues pour y b ( t ). 3. on pourra discuter le terme “catalyseur” au vu des résultats numériques obtenus.