Examdec 08
Examdec 08
Examdec 08
d2 u du
− 2 + b(x)
= f (x) dans ]0, 1[,
(P) dx dx
u(0) = 0, u(1) = β,
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.
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
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.
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 !