Université Pierre et Marie Curie Année universitaire 2010-2011 M1 Master mathématiques et applications - Cours MM006 Bases des méthodes numériques - E. Godlewski et M. Vohralik Partiel du vendredi 22 octobre 2010 - Éléments de corrigé durée 2 heures - aucun document n’était autorisé Il était demandé de justifier précisément les résultats et de rédiger soigneusement. Toutes les questions sont indépendantes. Question 1 (3 points) Rappeler le principe général de la méthode de différences finies pour approcher la dérivée première d’une fonction u0 (xi ) en un point xi d’une grille uniforme x0 , x1 , . . . xN +1 . On veut construire une formule de différences finies décentrée utilisant exactement trois points xi , xi+1 , xi+2 (on prendra i ≤ N − 1). Est-il possible de choisir les coefficients pour que la méthode soit d’ordre 2 ? Définir l’erreur de consistance et l’évaluer en précisant la régularité supposée pour la fonction u. Réponse. Soit u une fonction supposée dérivable sur [a, b] = [x0 , xN +1 ]. On définit une grille uniforme de pas h = N1+1 , les points intérieurs sont xi = x0 + ih, i = 1, ..N, et on approche la dérivée u0 (xi ) en un point xi de la grille en utilisant uniquement des valeurs de la fonction aux points de la grille, soit les valeurs uj ≡ u(xj ). On posera xi+1 − xi = h. On cherche donc une formule de la forme suivante u0 (xi ) ∼ pui+2 + qui+1 + rui h et on cherche les coefficients p, q, r pour que la formule soit d’ordre 2. Pour cela, on utilise des développements de Taylor de u(xi+2 ) et u(xi+1 ) au point xi , en supposant u suffisamment régulière, et on substitue ces développements dans la formule cherchée, dans laquelle on regroupe les termes d’ordre 0, 1 et 2 en puissance de h. L’orde 2 impose que p, q, r vérifient le système p + q + r = 0 (on annule le terme ordre 0 au numérateur) 2p + q = 1 (celui d’ordre 1) 4p + q = 0 (celui d’ordre 2). Ce système a une unique solution qui conduit à la formule u0 (xi ) ∼ −ui+2 + 4ui+1 − 3ui 2h i +h)−3u(xi ) et l’erreur de consistance est la différence E(xi ) = u0 (xi ) − −u(xi +2h)+4u(x . Si 2h 3 u ∈ C , on obtient la formule permettant d’évaluer l’erreur de consistance E(xi ) : ∃ξx ∈ (x, x + h), ζx ∈ (x, x + 2h) E(x) = u0 (x) − −u(x + 2h) + 4u(x + h) − 3u(x) h2 = (−u(3) (ξx ) + 2u(3) (ζx )) 2h 3 1 L’erreur |E(x)| pourra se majorer par C3 h2 où C3 désigne le maximum de u(3) sur l’intervalle [a, b]. Question 2 (6 points) 2 On considère le problème aux limites (on note u00 (x) ≡ ddxu2 (x)) − ku00 (x) = f (x), x dans ]a, b[, b > a (P) 0 u (a) = α, u(b) = β où k > 0, α, β sont des constantes données, f ∈ C 2 ([a, b]). On discrétise ce problème par différences finies, en utilisant la formule de différences finies usuelle centrée à 3 points pour approcher u00 (xi ), formule que l’on rappellera, et en discrétisant la condition limite u0 (a) grâce à la formule de la question précédente. Ecrire le système d’équations obtenues sous la forme d’un système linéaire à résoudre en précisant la dimension, les inconnues, les coefficients de la matrice et le second membre. Est ce que le schéma obtenu est consistant ? (étudier son erreur de consistance). Réponse. Le problème est posé dans un cadre classique et on a une solution régulière u ∈ C 2 ([a, b]). On prend un maillage uniforme de pas h = N1+1 , N > 0 entier, on définit les noeuds xi = a + ih, i = 0, ..., N + 1, donc x0 = a, xN +1 = b. On pose f (xi ) = fi . La formule usuelle pour approcher la dérivée seconde est (détaillée dans le polycopié) : i +ui−1 u00 (xi ) ∼ ui+1 −2u et l’erreur de consistance est donnée par : ∃yi ∈ (xi−1 xi+1 ) h2 −u00 (xi ) − ( h2 (4) −u(xi+1 ) + 2u(xi ) − u(xi−1 ) ) = u (yi ). h2 12 On reporte cette formule dans l’équation de (P), aux point intérieurs −u00 (xi ) = k1 fi , i = 1, .., N . On veut pouvoir calculer des valeurs ui ∼ u(xi ) ; on demande donc qu’elles vérifient le système linéaire fi −ui+1 + 2ui − ui−1 = , i = 1, ..., N. h2 k La dernière équation pour i = N fait intervenir la valeur uN +1 qui peut être donnée par la condition aux limites exacte uN +1 = β, et on reporte le terme correspondant dans le second membre. Par contre, pour i = 1, la formule fait intervenir u0 , la valeur approchant u0 = u(a) qui n’est pas connue. Le système est a priori un système à N + 1 inconnues ui , i = 0, ...N , il manque une équation. On utilise la donnée u0 (a) = α et la discrétisation de 1 −3u0 1 −3u0 u0 (a) ∼ −u2 +4u de Q1. En prenant u0 ∼ u0 tel que α = −u2 +4u , on peut alors 2h 2h rajouter cette équation et écrire un système (N + 1) × (N + 1) en (u0 , u2 , . . . , uN )T . Pour montrer que ce système a une solution, on peut exprimer u0 = − 13 (2αh+u2 −4u1 ) 2 et reporter dans la première équation (i = 1), on obtient u1 − u2 = 32 f1 hk − αh. On doit alors résoudre le système linéaire N × N Ah uh = bh 2 d’inconnues uh = (u1 , u2 , . . . , uN )T , de matrice 1 −1 −1 2 1 −1 Ah = 2 0 h .. . ... . (symétrique) ... . . −1 0 0 2 −1 0 0 −1 2 de second membre bh = ( 23 fk1 − αh , fk2 , . . . , fkN + hβ2 )T . On montre facilement que la matrice Ah est symétrique défine positive (calquer la démonstration du polycopié). Le système a donc une solution unique uh , et on définit u0 = − 13 (2αh + u2 − 4u1 ). L’erreur de consistance est εh = Ah uh − bh , avec uh = (u(xi ))1≤i≤N où u est la solution exacte. Remarquons que, vue la simplicité de l’équation de (P), si f ∈ C 2 ([a, b]), la solution u ∈ C 4 ([a, b]). Les composantes εh,i , pour i = 2, ..., N s’évaluent de façon 1 standard par |εh,i | ≤ 12 C4 h2 où C4 désigne le maximum de u(4) sur l’intervalle [a, b]. La première composante est εh,1 = h12 (u(x1 ) − u(x2 ) − 32 fk1 + αh avec α = u0 (x0 ) et aussi f1 = −u00 (x1 ). On écrit εh,1 = h12 (u(x1 ) − u(x2 ) + hu0 (x0 )) + 23 u00 (x1 ) ; on utilise un k développement de Taylor en x0 pour obtenir εh,1 = O(h) et |εh,1 | ≤ 32 C3 h où C3 désigne le maximum de u(3) sur l’intervalle [a, b]. La méthode est bien consistante. Question 3 (6 points) Définir la formulation variationnelle du problème (P) précédent dans un sous espace V de C 1 ([a, b]). Préciser le sous espace, les formes bilinéaire et linéaire de cette formulation. Etudier l’équivalence entre la solution du problème (P) et celle de sa formulation variationnelle : énoncer un résultat précis (en indiquant dans quel espace est la solution de (P)) et démonter ce résultat. Réponse. Puisqu’on a une condition de Dirichlet en b, on définit l’espace V = {v ∈ C 1 ([a, b]), v(b) = 0}. On se ramène à une condition homogène en posant ũ = u − β, et si u ∈ C 2 ([a, b]) est solution de (P), ũ ∈ V. Comme ũ0 = u0 , ũ00 = u00 , cela ne change pas la conditon de Neumann en a ni l’équation. On multiplie l’équation par v et on intègre sur (a, b). En intégrant par parties, il vient 0 −k[ũ v]ba Z +k b Z 0 0 ũ v dx = a b f (x)v(x)dx. a On utilise la condition limite en a et v(b) = 0 pour obtenir [ũ0 v]ba = αv(a). On définit alors Z b Z b 0 0 a(u, v) = ku v dx, `(v) = f (x)v(x)dx − kαv(a). a a On vérifie que a est bilinéaire, ` est linéaire ; on va préciser la continuité un peu plus tard. La formulation variationnelle s’écrit : (FV) trouver u ∈ V, ∀v ∈ V, a(u, v) = `(v). On a montré : u solution de (P) ⇒ ũ solution de (FV). 3 Réciproquement, si ũ = u − β est solution de (FV), et si de plus u ∈ C 2 (a, b), alors on intègre par parties et on remonte les calculs pour obtenir Z b Z b 00 0 0 b f (x)v(x)dx − kαv(a). u v dx = k[u v]a − k a a Rb Rb En prenant v ∈ V telle que v(a) = 0, on obtient −k a u00 vdx = a f (x)v(x)dx, et par densité de cet ensemble de fonctions, on obtient bien −ku00 = f . En choisissant ensuite une fonction v ∈ V telle que v(a) 6= 0, par exemple v(x) = x − b on obtient alors u0 (a) = α. Enfin ũ ∈ V ⇒ ũ(b) = 0 donc u(b) = β. On a montré : ũ = u − β solution de (FV) et u ∈ C 2 (a, b) ⇒ u solution de (P). Si on anticipe sur l’introduction des espaces de Sobolev, a est continue et elliptique sur V muni de la semi-norme |.|1,(a,b) qui, sur l’espace V = {v ∈ H 1 (a, b), v(b) = 0}, est équivalente à la norme ||.||1,(a,b) . L’espace V n’est pas un espace de Hilbert, mais on pourra appliquer le théorème de Lax-Milgram sur son complété V = V dans H 1 (a, b) pour prouver l’existence d’une solution dans V = V qui, lui, est un espace de Hilbert. En effet, a est bien V -elliptique et ` est continue, toutes les hypothèses sont vérifiées. Quelques remarques (et quelques erreurs à ne plus faire !) Dans la méthode des différences finies pour approcher (P), on ne cherche pas une fonction u approchant u mais des valeurs ui ∼ u(xi ) en des points d’une grille uniforme. Dans la formulation variationnelle a(u, v) = `(v), on cherche la solution u dans le même espace que les fonctions tests v. La question 2 utilisant une autre discrétisation par différences finies de la dérivée u0 (a) conduisait à un autre système à résoudre ; il fallait aussi étudier la consistance. D’une façon générale, il faut : vérifier la cohérence de ce qu’on écrit (le nombre d’inconnues, la forme de la matrice, ... ) ; bien définir toutes les notations que l’on introduit (les points xi de la grille de discrétisation, ui désigne la valeur que l’on cherche à calculer ou la solution exacte au point xi , approchée par ui , ...) ; bien respecter l’énoncé (on est sur [a, b], dans Q1 il n’y a pas de problème (P) à résoudre,...) et il est inutile de ressortir les résultat du cours si c’est sans rapport avec les questions posées. Les signes “⇒, ⇔” ont une signification logique précise à n’utiliser que dans ce cadre. Il ne faut pas négliger h devant h2 (0 < h < 1 ⇒ h2 < h). Dans le contexte de ces méthodes, on ne peut pas dire qu’on calcule uh solution d’un système qui n’a pas autant d’équations que d’inconnues ; ou qu’on calcule uh solution de Ah uh = bh + h quand h dépend aussi de u ; ou qu’on calcule uh solution de Ah uh = bh quand bh fait intervenir une valeur inconnue comme u(a). On ne peut définir une formulation variationnelle avec un espace de fonctions test V = {v ∈ C 1 ([a, b]), v(b) = β}, ce n’est pas un espace vectoriel (il n’est s stable par addition ou Rb multiplication par un scalaire) ; ou avec une application comme `(v) = a f vdx + ku0 (b)β (qui dépend visiblement aussi de u) comme forme linéaire au second membre. Rappel : C 1 n’est pas un espace de Hilbert. L’égalité u(b) = β liée à la condition limite n’implique pas u0 (b) = 0. 4 ...