Discrétisation par différences finies des
Transcription
Discrétisation par différences finies des
École Nationale Supérieure de Techniques Avancées Discrétisation par différences finies des problèmes transitoires août 2007 MA261 Introduction au calcul scientifique @Eric Lunéville Introduction Discrétisation des problèmes transitoires eq. des ondes : eq. de la chaleur : ∂t2 u − c2 △u = f ∂t u − α△u = f différences finies en espace et en temps • rôle différent des 2 discrétisations : sens du temps • lien entre les pas de discrétisation lié à la vitesse de propagation exemple modèle : équation des ondes 1D (corde vibrante) 2 2 2 − ∂ u(x, t) c ∂x u(x, t) = f (x, t) t u(0, t) = u(1, t) = 0 u(0, x) = u0 (x) ∂t u(x, 0) = v0 (x) x ∈ ]0, 1[ , t > 0 t>0 x ∈ ]0, 1[ x ∈ ]0, 1[ 1 Un exemple encore plus simple : l’équation de transport ∂t u(x, t) + c∂x u(x, t) = 0 x ∈ R, t > 0 u(0, x) = u0 (x) x∈R premier ordre pas de condition limite solution évidente : u(x, t) = u0 (x − ct) ct u0 u(., t) = u0 (. − ct) x équation conservative, propagation à vitesse finie (c) similaire à l’équation des ondes 2 Discrétisation de l’éq. de transport abscisses de discrétisation xj = j△x j ∈ Z instants de discrétisation tn = n△t n ≥ 0 t tn = n△t x t0 = 0 x0 = 0 xj = j△x unj approximation de u(xj , tn ) on a u0j = u0 (xj ) ∀j ∈ Z (condition initiale) 3 n+1 Idée : fabriquer un schéma qui construit u n+1 = uj à partir j∈Z des approximations aux instants précédents un , un−1 , ... schéma décentré (DF d’ordre 1) n n n − un+1 u u − u j j j j−1 +c = 0 ∀n ≥ 0, ∀j ∈ Z △t △x n c△t n+1 n n uj = uj − α uj − uj−1 avec α = △x schéma explicite à 2 pas! n+1 n j −1 j j+1 schéma saute-mouton (leapfrog) (DF d’ordre 2) n−1 un+1 − u unj+1 − unj−1 j j +c = 0 ∀n ≥ 1, ∀j ∈ Z 2△t 2△x n n+1 n−1 n uj = uj − α uj+1 − uj−1 n+1 n n−1 j−1 j j +1 schéma explicite à 3 pas! (il faut construire u1 ) 4 Ordre des schémas le schéma décentré est d’ordre 1, le schéma saute-mouton est d’ordre 2 dms : u solution régulière de l’équation de transport erreur de troncature pour le schéma décentré : u(xj , tn+1 ) − u(xj , tn ) u(xj , tn ) − u(xj−1 , tn ) n εj = +c △t △x = ∂t u(xj , tn ) + O(△t) + c∂x u(xj , tn ) + O(△x) = O(△x) + O(△t) erreur de troncature pour le schéma saute-mouton : u(xj , tn+1 ) − u(xj , tn−1 ) u(xj+1 , tn ) − u(xj−1 , tn ) εnj = +c 2△t 2△x 2 2 = ∂t u(xj , tn ) + △t ∂ u(x , t ) + O(△t ) j n 2 t 2 2 ∂ u(x , t ) + O(△x ) + c∂x u(xj , tn ) + c △x j n 2 x = O(△x2 ) + O(△t2 ) car ∂t2 u = −c∂x2 u 5 Stabilité des schémas et convergence erreur enj = unj − u(xj , tn ) on a pour le schéma décentré : n n+1 n n ej = ej − α ej − ej−1 + △tεnj .. . α 1−α en+1 = Aen + △tεn avec A= .. .. . . .. .. . . n−1 n−k k n n 0 e = A e + △t A ε k=0 n e ≤ △t n−1 k=0 déf An−k εk ≤ T max0≤k≤n−1 An−k εk 0 ≤ n ≤ T △t le schéma est stable pour la norme si il existe une constante C indépendante de n, △t et △x telle que : An u0 ≤ C u0 0≤n≤ T △t 6 la stabilité implique la convergence n e ≤ T max 0≤k≤n−1 n−k k A ε ≤ CT max 0≤k≤n−1 stabilit´eé l2 iξj△x 2 wξ = e , (w ) base Fourier de l ξ ξ∈R j∈Z k ε ≤ CT (△t + △x) pour obtenir la stabilité il suffit de montrer que An wξ 2 ≤ C wξ 2 (Awξ )j 0≤n≤ T △t = (1 − α)eiξj△x + αeiξ(j−1)△x iξj△x −iξ△x =⇒ ∀ξ Awξ = g(ξ, △x, △t)wξ = 1 − α + αe e = g(ξ, △x, △t) (wξ )j An wξ 2 ≤ sup |g(ξ, △x, △t)|n wξ 2 ξ Condition suffisante de stabilité : sup |g(ξ, △x, △t)| ≤ 1 ξ 7 −iξ△x 2 |g(ξ, △x, △t)| = 1 − α + αe = 1 − 2α(1 − α)(1 − cos ξ△x) 2 c△t stable si α = ≤ 1 (condition CFL) △x interpr´eétation de la CFL si u est la solution alors : u(xj , tn+1 ) = u(xj − c△t, tn ) = u0 (xj − ctn+1 ) j−1 j j+1 △x n+1 △t n droite d’équation x − ct = xj − ctn+1 de pente 1/c CFL : △t 1 ≤ △x c △x vitesse de prop. du schéma ≥ ≥ c vitesse de prop. de l’équation △t toujours instable si c < 0 utiliser le décentré avant 8 Stabilit´eé du sch´eéma saute-mouton même approche (un peu plus compliqué car 3 pas) condition CFL : c△t ≤1 △x fonctionne (sous CFL) quel que soit le signe de la vitesse c (schéma centré!) α = 0.3 α = 1.01 9 Discrétisation de l’éq. des ondes 1D 2 2 2 ∂ u(x, t) − c ∂x u(x, t) = f (x, t) t u(0, t) = u(1, t) = 0 u(0, x) = u0 (x) ∂t u(x, 0) = v0 (x) x ∈ ]0, 1[ , t > 0 t>0 x ∈ ]0, 1[ x ∈ ]0, 1[ discrétisation de [0, 1] avec m + 2 pts : xj = j△x j = 0, m + 1 t tn = n△t t0 = 0 x0 = 0 1 △x = m+1 xj = j△x xm+1 x =1 10 Schéma saute-mouton n+1 n−1 n n n n u + u − 2u u + u − 2u j j j j+1 j−1 j 2 n − c = f j △t2 △x2 un0 = unm+1 = 0 0 u j = u0 (xj ) 1 uj = u0 (xj ) + △t v0 (xj ) ∀j = 1, m ∀n ≥ 1 ∀n ≥ 1 ∀j = 1, m ∀j = 1, m n−1 2 n 2 n 2 n 2 n −u − △t un+1 = + α u + 2(1 α )2u + α u + fj j+1 j j−1 j j n+1 schéma explicite à 3 pas d’ordre 2 n n−1 j−1 j j+1 11 forme vectorielle n − →n n − → n u = uj j=1,m f = fj j=1,m (élimination des indices 0 et m + 1) →n − → − → − → n+1 2 n n−1 2− u = (2I − α B) u − u + △t f → − → u 1 donnés u 0, − 2 −1 avec B = −1 2 .. . ∀n ≥ 1 . matrice m × m .. . −1 −1 2 .. → u(x, t) solution de l’eq. des ondes : − u n = (u(xj , tn ))j=1,m erreur de troncature : − → − → → → → u n+1 = (2I − α2 B)− un−− u n−1 + △t2 f n + △t2 − εn → avec − ε n = O(△t2 ) + O(△x2 ) (approx. DF d’ordre 2) 12 Stabilité et convergence du schéma → → → u n+1 − − u n vérifie : l’erreur à l’instant n : − en=− − → → → → e n+1 = (2I − α2 B)− en−− e n−1 + △t2 − εn − → n+1 − →n e en posant E = on a : − → en − →n+1 E = 2 (2I − α B) −I I 0 − →n E + ∀n ≥ 1 − → εn − →n − →n = ME + Ξ − → def 0 qui donne par récurrence : n−1 n−k k →1 − →n n−1 − 2 M E + △t E =M ε k=1 soit l’estimation d’erreur : − − − → → →n n−1 1 n−k k E ≤ M E + △tT max M Ξ k=1,n−1 13 Si le schéma est stable : − − − → → k → M X ≤ C X ∀ X , ∀k ≥ 1 avec C indépendant de k alors on convergence du schéma : − − → → n E ≤ C1 E 1 + O(△t2 ) + O(△x2 ) condition suffisante de stabilit´eé : ρ (M) ≤ 1 ici M = 2 (2I − α B) −I I 0 (ρ rayon spectral) et les valeurs propres de B sont connus on en déduit après ”quelques calculs” la condition de stabilité : c△t ≤ 1 (CFL) |α| = △x (même interprétation que pour l’eq. de transport) 14 Equation des ondes 2D Utilisation de saute-mouton pour l’équation des ondes 2D dans un carré 15 calcul stable 16 Diffraction d’une onde acoustique (milieu air-mer) 17