son corrigé

publicité
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
...
Téléchargement