FORMALISATION DE LA PREUVE DE LA CONVERGENCE D'UN SCHÉMA NUMÉRIQUE F. Clément INRIA Paris - Rocquencourt RAIM'11, 710 février 2011, Perpignan
ANR FOST (20092011) : Formal proofs about Scientic computation S. Boldo, J.-C. Filliâtre, G. Melquiond (ProVal, INRIA/CNRS) FC, P. Weis (Estime, INRIA) M. Mayero (LIPN, Paris 13) Suite de l'anr CerPAN (20052008) Développement et application de méthodes de preuve formelle de la justesse de programmes d'analyse numérique Code numérique Ondes acoustiques 1D (corde vibrante homogène). Simulation complète d'un avion de ligne? 2
CAS D'ÉTUDE : PREUVE FORMELLE D'UN CODE C DE SIMULATION ACOUSTIQUE 1D Erreur de méthode Pas de solution analytique calculs approchés sur une grille discrète Preuve papier détaillée de la convergence Formalisation en Coq (ITP'10) Erreur d'arrondi Soucis d'ecacité calculs en virgule ottante Formalisation en Coq (ICALP'09) Annotation du programme C Liaison des deux preuves précédentes au programme C Compétences nécessaires en analyse numérique et en preuve formelle (réels, ottants) 3
MOTIVATIONS EDO / EDP Équations Diérentielles Ordinaires plus simples Équations aux Dérivées Partielles plus riches EDP : preuve de faisabilité de l'approche Propagation d'ondes Phénomène physique extrêmement courant (vue, ouïe) Nombreuses applications industrielles (acoustique, élastique, EM) équation des ondes acoustiques 1D (corde vibrante) schéma aux diérences nies (enseigné en M2) 4
PLAN Introduction Équation des ondes 1D Preuve de convergence Conclusion 5
ÉQUATION DES ONDES 1D c > 0 = vitesse de propagation u 0, u 1 = conditions initiales, f = terme source 2 u t 2 (x, t) v c2 2 x2(x, t) = f(x, t) x, t R, t > 0, u t (x, 0) = u 1(x) x R, u(x, 0) = u 0 (x) x R. Solution analytique (milieu homogène) Formule de D'Alembert et principe de Duhamel x, t R, t 0, u(x, t) = 1 2 (u 0(x ct) + u 0 (x + ct)) + 1 2c + 1 2c ( t x+c(t τ) 0 x c(t τ) f(ξ, τ)dξ ) dτ. x+ct x ct u 1 (ξ)dξ 6
Cône de dépendance PROPAGATION À VITESSE FINIE t Conséquence x ct x x + ct support(u 0, u 1 ) [a, b] et t > 0, support(f(., t)) [a ct, b + ct] t > 0, support(u(., t)) [a ct, b + ct] 7
SCHÉMA AUX DIFFÉRENCES FINIES (SCHÉMA EXPLICITE CENTRÉ DIT À 3 POINTS ) x, t > 0, u k j u(j x, k t) = ūk j u k j 2uk 1 j + u k 2 j t 2 u 1 j u0 j t t c 2u k 1 j+1 2uk 1 j x 2 + u k 1 j 1 = f k 1 j j, k Z, k > 1, j+1 2u0 j + u0 j 1 2 c2u0 x 2 = u 1,j j Z, u 0 j = u 0,j j Z. t k t (k 1) t (k 2) t (j 1) x j x (j + 1) x x 8
CÔNE DE DÉPENDANCE DISCRET k t t (j k) x j x (j + k) x Si le cône discret est plus petit que le cône exact ( x t > 1 c ), alors il existe une zone où u h = 0 et u 0, il ne peut pas y avoir convergence x CN de convergence : c t x 1 9
PROGRAMME C c2 = c c ; dx2 = dx dx ; d t 2 = d t d t ; a = c2 d t 2 / dx2 ; / * C o n d i t i o n i n i t i a l e k = 0 e t c o n d i t i o n a u x l i m i t e s * / f o r ( j =1; j <n j ; j ++) { u [ j ] [ 0 ] = u0 ( j dx ) ; } u [ 0 ] [ 0 ] = 0. ; u [ n j ] [ 0 ] = 0. ; / * C o n d i t i o n i n i t i a l e k = 1 e t c o n d i t i o n a u x l i m i t e s * / f o r ( j =1; j <n j ; j ++) { du = u [ j + 1 ] [ 0 ] 2. u [ j ] [ 0 ] + u [ j 1 ] [ 0 ] ; u [ j ] [ 1 ] = u [ j ] [ 0 ] + 0. 5 a du + d t u1 ( j dx ) ; } u [ 0 ] [ 1 ] = 0. ; u [ n j ] [ 1 ] = 0. ; / * É v o l u t i o n p o u r k > 1 * / f o r ( k =2; k<=nk ; k++) { f o r ( j =1; j <n j ; j ++) { du = u [ j + 1 ] [ k 1] 2. u [ j ] [ k 1] + u [ j 1 ] [ k 1 ] ; u [ j ] [ k ] = 2. u [ j ] [ k 1] u [ j ] [ k 2] + a du + d t 2 f [ j ] [ k 1 ] ; } / * C o n d i t i o n a u x l i m i t e s * / u [ 0 ] [ k ] = 0. ; u [ n j ] [ k ] = 0. ; } 10
PLAN Introduction Équation des ondes 1D Preuve de convergence Conclusion 11
PROPRIÉTÉS D'UN SCHÉMA NUMÉRIQUE Le problème continu est supposé bien posé ū h : solution exacte discrétisée, L h u h = f h : schéma numérique Convergence e h = ū h u h : erreur de convergence Convergence e h = O( x p + t q ) Consistance ε h = L h ū h f h : erreur de troncature Consistance ε h = O( x p + t q ) Stabilité (nécessaire pour borner l'erreur d'arrondi) Stabilité u h (C 1 + C 2 t)( u 0h + u 1h ) Théorème d'équivalence de Lax Consistance (Stabilité Convergence) 12
PÉRIMÈTRE DE LA FORMALISATION : LA PARTIE MÉTIER Réels de Coq Notion abstraite de dérivées partielles Pas d'intégrales (pas de formule de D'Alembert) Un (seul) axiome : u 0, u 1, f(., t) et u(., t) sont à support ni Fonctions de plusieurs variables (ici 2) R 2 et R 2 R sont des espaces vectoriels Grand O (uniforme) Calculs explicites sur les développements de Taylor Discrétisation spatiale R n (en Coq, Z R) est un espace vectoriel euclidien Produit scalaire, gestion de supports nis Intégration par parties discrète 13
GRAND O Notion classique : f( x) = O(g( x)) avec x (0, 0) α, C > 0, x R 2, x < α f( x) C g( x) Problème 1 : domaine de dénition de f f n'est dénie que sur R 2 \{(0, 0)} ou R 2 + Problème 2 : type de f f : R 2 R 2 R (DL de Taylor-Lagrange) u(x + x) DL n u(x)( x) = O( x n+1 ) La dénition suivante n'est pas satisfaisante (α et C dépendent de x) x R 2, α, C > 0, x R 2, x < α f(x, x) C g( x) 14
GRAND O UNIFORME Notion restreinte : f( x) = O Ω x (g( x)) avec Ω x R 2 α, C > 0, x Ω x, x < α f( x) C g( x) Notion uniforme : f(x, x) = O Ωx,Ω x (g( x)) avec Ω x R 2 α, C > 0, x Ω x, x Ω x, x < α f(x, x) C g( x) Lemme (réciproque fausse) f(x, x) = O Ωx,Ω x (g( x)) x Ω x, ( x f(x, x)) = O Ω x (g( x)) 15
ÉBAUCHE DE LA PREUVE : CONSISTANCE Hypothèses u(., t) est à support compact ( [a ct, b + ct]) (0 t T ) u admet DLU d'ordre 3 sur Ω T = [a ct, b + ct ] [0, T ] (T > 0) Condition CFLg(ζ) : ζ c t x avec ζ ]0, 1[ (corde innie) Point clef : DLU de quantités continues Uniforme valable également pour les quantités discrètes Étapes u(x, t + t) 2u(x, t) + u(x, t t) t 2 = 2 u t 2 (x, t) + O Ω T,R 2 ( t 2 ) + ε k(t) j(x) = O Ω T,R 2 ( x 2 + t 2 ) + (k(t) = t t t) Résultat εk(t) h = O L 2 [0,T ],R 2 + CFLg(ζ) ( x2 + t 2 ) h 16
ÉBAUCHE DE LA PREUVE : STABILITÉ Énergie discrète E h (u h ) k+1 2 = 1 2 u k+1 h u k h t 2 L 2 h + 1 2 u k h, u k+1 h. A h Hypothèse Condition CFLd(ξ) : c t x 1 ξ avec ξ ]0, 1[ Étapes Conservation de l'énergie lorsque la source f est éteinte Minoration de l'énergie discrète La stabilité revient à la positivité de l'énergie discrète Résultat E h (u h ) k(t) 1 2 E h (u h ) 1 2 + 2 2 2ξ ξ 2 t k(t) 1 n=1 f n h L 2 h 17
ÉBAUCHE DE LA PREUVE : CONVERGENCE Hypothèses u(., t) est à support compact ( [a ct, b + ct]) (0 t T ) u admet DLU d'ordre 3 sur Ω T = [a ct, b + ct ] [0, T ] (T > 0) Condition CFL(ζ, ξ) : ζ c t x 1 ξ avec ζ, ξ ]0, 1[ et ζ + ξ 1 Étapes L h e h = L h ū h L h u h = L h ū h f h = ε h E h (e h ) est d'ordre 2 (stabilité) Majoration de e h en fonction de E h (e h ) Résultat ek(t) h = O L 2 [0,T ],R 2 + CFL(ζ,ξ) ( x2 + t 2 ) h 18
CONCLUSIONS Formalisation d'une preuve non triviale d'analyse numérique Un seul axiome (u(., t) est à support compact pour tout t 0) Expliciter toutes les omissions des preuves papiers Collaboration étroite entre numériciens et logiciens Les preuves papier (LATEX) et formelle (Coq) font environ 180 ko 19
PERSPECTIVES Extraction des constantes α et C du grand O (pour l'erreur d'arrondi) Traiter les conditions aux limites (corde attachée) Lier les preuves des deux erreurs au programme C Preuve formelle du théorème d'équivalence de Lax Augmenter la dimension d'espace (même équation, même schéma) Autres schémas (même équation) Autres EDPs, EDOs 20
http://fost.saclay.inria.fr/ 21