Académique Documents
Professionnel Documents
Culture Documents
non linéaires en 1D
17 Juin 2011
Les sources Matlab du TP peuvent être récupérées sur le site du cours MA103 (ru-
brique Programmation détaillée) : :
http://wwwdfr.ensta.fr/Cours/index.php?usebdd=ensta&sigle=MA103&afficher=prog
Nous allons supposer que u0j , j ∈ {0, . . . , N } est une bonne approximation de u(xj , t =
0) ce qui nous permettra d’initialiser le schéma numérique. Le pas de temps ∆t(n)
sera recalculé à chaque itération par
αh
∆t(n) := .
supj |a(unj )|
où α est un paramètre qu’il faudra fixer au début de la simulation.
1
E XERCICE 1 (L E SCH ÉMA D ÉCENTR É )
Nous introduisons le schéma donné par
∆t(n)
v − (f (v) − f (u)), si a(v) ≥ 0,
h
Hn (u, v, w) = (5)
(n)
v − ∆t (f (w) − f (v)), si a(v) < 0.
h
Question 1. Écrire ce schéma dans le cas linéaire (I). Est ce que cela justifie le nom
de schéma décentré ?
Nous rappelons que, dans le cas linéaire, ce schéma est stable sous la condition CFL
α ≤ 1. (6)
f (u) − f (v) , si u 6= v,
2
Question 1. Expliquer en quoi le schéma de Murman-Roe est une variante du schéma
décentré.
Question 4. Utiliser ce schéma numérique pour résoudre (1) avec le flux de Bürgers
(II), la condition initiale de type ”rampe” (7) et α ∈ {0.5, 1, 2}. La condition de Rankine-
Hugoniot semble-t-elle être bien approchée ?
Question 5. On répète la même expérience avec une condition initiale de type ”créneau”
−1/2 −2 ≤ x < −1/2
u0 (x) = 1 −1/2 < x < 1/2 (9)
−1/2 1/2 < x ≤ 2
Est ce que la solution obtenue semble approcher une solution entropique ? Observe-
t-on une onde de détente à x = − 21 ?
3
Question 2. Montrer que le schéma de Lax-Friedrichs est monotone sous la condi-
tion CFL (6).
∆t(n) 1
sup | a unj | ≤ , (10)
j h 2
w(x/t; ug , ud ),
la solution entropique du problème de Riemann à deux états donnés par ug (à gauche)
et ud (à droite), le schéma s’écrit
∆t(n)
un+1
j = unj − f (w(0; uj , uj+1 )) − f (w(0; uj−1 , uj )) ,
h
ce qui montre qu’il s’agit d’un schéma conservatif. Par ailleurs, le schéma est mono-
tone sous la condition (10).
Question 1. Donner une expression explicite du flux f (w(0; u, v)) (associé au schéma
de Godunov pour la résolution de (1) avec le flux de Bürgers (II).
Question 3. Calculer la solution approchée pour une donnée initiale de type ”créneau”
(9) et α ∈ {0.4, 1, 2, 3}. Conclure.
4
Lexique des commandes Matlab. En matlab il est préférable de considérer la plu-
part des inconnues comme des vecteurs. On donne ici les opérations nécessaires
pour faire le TP (U et V sont des vecteurs de même dimension).
– U = V . Affecte à U toutes les cvaleurs de V .
– U +V, U −V, U.∗V, U./V . Addition soustraction, multiplication et division terme
à terme.
– U == V, U >= V, U <= V, U > V, U < V . Retourne un vecteur de même taille
dont la i-ème composante vaut 1 si la relation est vrai entre la i-ème compo-
sante de U et V , 0 sinon.
– U + a. Retourne un vecteur dont chaque composante est incrémentée de a.
– sign(U ). Retourne un vecteur de même taille que U et V dont la i-ème compo-
sante vaut 1 si U(i) est stricement positif, 0 si U (i) est nul, -1 sinon.
– and(U, V ). Retourne un vecteur de même taille que U et V dont la i-ème com-
posante vaut 1 si U (i) et V (i) valent 1, 0 sinon