Vous êtes sur la page 1sur 3

Université Pierre et Marie Curie Année universitaire 2008-2009

M1 Master mention mathématiques et applications - Cours MM006


Bases des méthodes numériques - E. Godlewski, M. Vohralik

Examen du 15 décembre 2008


durée 3 heures - aucun document n’est autorisé, pas de calculatrice
Il est demandé de justifier précisément les résultats et de rédiger soigneusement.

Le barême est indiqué à titre indicatif

Il est demandé de rédiger la question Scilab sur une feuille séparée

Question 1 (9 points) On considère le problème aux limites : trouver u ∈ C 1 ([0, 1]) ∩


C 2 (]0, 1[) tel que

d2 u du

 − 2 + b(x)
 = f (x) dans ]0, 1[,
(P) dx dx


u(0) = 0, u(1) = β,

avec b ∈ C 1 ([0, 1]), b0 ≤ 0 f ∈ C 0 ([0, 1]).


1) Définir une formulation variationnelle (FV) de (P) dans un espace de Hilbert V
bien choisi contenu dans H 1 (0, 1). Donner l’expression de la forme bilinéaire a et de
la forme linéaire ` (on remarquera que a n’est pas symétrique). Montrer que (FV) a
une solution, et que celle ci est unique (énoncer le théorème permettant de l’affirmer et
vérifier les hypothèses).
2) Dans quel espace (contenant C 0 ([0, 1])) peut-on prendre f en gardant un sens à la
formulation variationnelle ? Discuter la régularité de u.
3) Utiliser la méthode des éléments finis P1 pour définir une approximation varia-
tionnelle du problème dans un espace de dimension finie Vh qu’on explicitera. Préciser
une base wi de Vh . Montrer que ce problème approché a une solution unique notée uh .
4) Rappeler le résultat fondamental dans le cadre abstrait permettant de majorer
l’erreur ||u − uh || pour la norme de V .
5) Ecrire le problème discret sous la forme d’un système linéaire à résoudre. Préciser
la matrice, le vecteur inconnu et le second membre de ce système : on donnera des
expressions théoriques en fonction de a, ` et des wi .
6) On suppose f = 0 et b constante. Calculer explicitement la solution de (P). Calculer
explicitement la solution du système linéaire précédent en supposant le maillage uniforme
de pas h.

Question 2 (6 points) On se donne un pas de temps ∆t > 0, un pas d’espace ∆x > 0,


∆t
on pose λ = ∆x , on suppose λ constant, c est une constante donnée. On considère le

1
schéma d’approximation
(λc)2
 n+1
 vj = vjn − λc 2
n
(vj+1 n
− vj−1 )+ 2
n
(vj+1 n
− 2vjn + vj−1 )), n ≥ 0, j ∈ Z,
(1)
vj0 donné , ∀j ∈ Z.

1) Si dans (1), vjn désigne une approximation d’une solution exacte u au point xj =
j∆x, tn = n∆t, quelle est l’équation aux dérivées partielles vérifiée par u pour que (1) soit
un schéma consistant d’ordre au moins un ?(justifier le résultat par des développements
précis).
2) Est ce que (sous une éventuelle condition sur ∆t, ∆x) le schéma (1) est stable dans
L2 ? (on pourra ou redémontrer ou s’appuyer sur un résultat du cours).
3) Ecrire vjn+1 donné dans (1) comme une combinaison linéaire des trois valeurs
n
vj+1 n
, vjn , vj−1 avec des coefficients notés respectivement a1 , a0 , a−1 qu’on précisera en
fonction de c, λ. Que valent a−1 + a0 + a1 et a−1 − a1 ? Le schéma est-il stable dans
L∞ (le principe du maximum est-il vérifié) ?
4) On se donne vj0 = 1, ∀j ≤ −1 et vj0 = 0, ∀j ≥ 0. Calculer vj1 , ∀j ∈ Z. Représenter
vj0 , vj1
(en fonction des valeurs de j placées sur un axe), conclure.

Question Scilab (5 points) à rédiger sur une copie séparée


On considère ici un problème de réaction–diffusion sur l’intervalle ]0, 1[

 −u00 (x) + c(x)u(x) = f (x),
(RD) u(0) = 0,
u(1) = 0,

où les fonctions f et c satisfont f ∈ L2 (0, 1) et c ∈ C 0 ([0, 1]). Rappelons que sa formu-
lation variationnelle est
u ∈ H01 (0, 1) telle que, pour tout v ∈ H01 (0, 1), on ait

 Trouver
Z 1 Z 1 Z 1
(F VRD ) 0 0
 u (x)v (x)dx + c(x)u(x)v(x)dx = f (x)v(x)dx
0 0 0

et que la méthode des éléments finis pour ce problème consiste à trouver



 Trouver uh ∈ V1h telle que, pour tout vh ∈ V1h , on ait
Z 1 Z 1 Z 1
(EFRD ) 0 0
 uh (x)vh (x)dx + c(x)uh (x)vh (x)dx = f (x)vh (x)dx.
0 0 0

On prend N ∈ N∗ , h = 1/(N +1), xk = kh, k = 0, . . . , N +1, Ik =]xk , xk+1 [, k = 0, . . . , N


et V1h ⊂ H01 (0, 1) l’espace des fonctions linéaires par morceaux et continues. La méthode
des éléments finis amène au système linéaire
Ah ũh = bh ,
où ũh = (uh (x1 ), . . . , uh (xN ))T .

2
1. Ecrire la matrice Ah comme Ah = Dh + Rh . Calculer explicitement (à la main)
les coefficients de la matrice Rh , due au terme de réaction, jusqu’à la forme des
intégrales.
2. Ecrire une fonction Scilab calculant la matrice Rh . L’entête de cette fonction sera
function R=CalculMatR(N,c).
Arguments d’entrée : le nombre de points N et le nom de la fonction c. Pour la
fonction c, on pourrait considérer

si 0 ≤ x ≤ 21 ,

c(x) = x2
c(x) = x3 si 12 ≤ x ≤ 1.

Argument de sortie : un tableau carré R contenant Rh . Pour évaluer les intégrales,


utilisez la formule d’intégration numérique suivante :
b M
b−aX
Z
g(x)dx ' Hi g(ξi ),
a 2 i=1

où ξi sont les points d’intégration, M ∈ N définit leur nombre et Hi donnent des
poids pour chaque point d’intégration, avec :

M = 3,
H1 = 0.555555555555556, H2 = 0.888888888888889, H3 = 0.555555555555556,
ξ1 = a + (1 − q) ∗ (b − a)/2, ξ2 = (a + b)/2, ξ3 = a + (1 + q) ∗ (b − a)/2,
q = 0.774596669241483.

Ecrivez cet algorithme dans le langage Scilab comme si vous le programmiez dans
l’ordinateur.
Ceci est une question algorithmique – cela n’est pas la syntaxe exacte du
langage Scilab, mais l’algorithmique qui compte !

Vous aimerez peut-être aussi