Q-1-5:Pour les mˆ
emes expressions de f, α, β, ci-dessus, faites varier le pas de discr´
etisation h= 1/(n+ 1) de
fac¸on dyadique (hi=h×2−i, i = 1,2,3,4) et repr´
esenter `
a l’´
echelle logarithmique, la courbe hi7−→ kue−uhik∞,
o`
uuhid´
esigne la solution approch´
ee obtenue par diff´
erences finies pour le pas hi. D´
eterminer la pente de la droite
(approch´
ee) obtenue et d´
eduire l’ordre de la discr´
etisation par diff´
erences finies adopt´
ee.
Q-2: Matrice du Laplacien en deux dimensions d’espace
On pose Ω =]0,1[×]0,1[, on se donne deux fonctions f, g continues sur ¯
Ω, et on cherche une fonction u∈C2(Ω) telle
que : −∆u(x, y) = f(x, y)dans Ω, u(x, y) = g(x, y)sur ∂Ω, o`
u∆u(x, y) = ∂2u(x,y)
∂2x+∂2u(x,y)
∂2y.
Q-2-1:En suivant les ´
etapes de discr´
etisation par diff´
erences finies vues en cours, donner l’expression de la
matrice Aet le second membre bde la formulation matricielle du probl`
eme discret.
Q-2-2:´
Ecrire deux fonctions MATLAB de prototype [A] = laplace2D(n,m) et [b] = Smlaplace2D(n,m,f,g)
retournant la matrice Aet le second membre bobtenue ci-dessus, pour les pas de discr´
etisation hx=1
n+1 , hy=1
m+1 .
D´
ecrire la matrice obtenue.
Exercice - 3Stockage pour les m´
ethodes directes d’inversion de syst`
emes lin´
eaires
Le but de cet exercice est d’exhiber un stockage de matrice favorable `
a l’utilisation des m´
ethodes directes d’inversion
des syst`
emes lin´
eaires.
Q-1: Matrices bandes (stockage et factorisation)
Q-1-1:A l’aide de la commande spy, repr´
esenter graphiquement la matrice Ade la discr´
etisation 1D du Lapla-
cien. Repr´
esenter aussi les matrices de sa factorisation LU et Cholesky (o`
u on a stock´
e dans une matrice de mˆ
eme taille
que Ales factorisations LU et Cholesky).
Comparer les largeurs de bande des diff´
erentes matrices et conclure.
.
Q-1-2:´
Ecrire une fonction MATLAB de prototype [AA, lbg, lbd, n ] = StockBand(A) qui calcule
les demi-largeurs de bande inf´
erieure lbg et sup´
erieure lbd d’une matrice pleine Aet la stocke sous forme bande dans
un vecteur AA de taille (lbg +lbd + 1) ×n.
´
Ecrire aussi une fonction MATLAB [A] = Band2full(AA, lbg, lbd, n) qui transforme une matrice stock´
ee
sous format bande en une matrice pleine.
Q-1-3:´
Ecrire une fonction MATLAB de prototype [AA, lbg, lbd, n , Nop] = decompLUBand(AA,lbg,
lbd, n), qui effectue une factorisation LU d’une matrice stock´
ee bande (voir algorithme donn´
e en annexe).
Faites varier l’entier net g´
en´
erer la matrice du Laplacien 1D. R´
ecup´
erer les nombres d’op´
erations donn´
es par les facto-
risations decompLUBand et decompLU nop (voir script plus haut). Repr´
esenter sur un mˆ
eme graphique `
a l’´
echelle
logarithmique ces nombres d’op´
erations en fonction de la taille n. Calculer les pentes des droites obtenues et conclure.
Q-1-4:´
Ecrire une fonction MATLAB de prototype [x] = inverseLUBand(AA,lbg, lbd, n, b), qui
r´
esout le syst`
eme lin´
eaire Ax =bpour lequel la matrice Afactoris´
ee LU est stock´
ee sous forme bande.
Q-1-5:´
Ecrire une fonction MATLAB de prototype [AA, lb, n ] = StockBandSym(A) qui calcule la
demi-largeur de bande lb d’une matrice pleine sym´
etrique Aet stocke sa partie triangulaire inf´
erieure sous forme bande
dans un vecteur AA de taille (lb + 1) ×n.
Q-1-6:´
Ecrire une fonction MATLAB de prototype [AA, lb, n] = decompCholBand(AA,lb, n), qui
effectue une factorisation Cholesky d’une matrice sym´
etrique stock´
ee bande (voir algorithme donn´
e en annexe)
5