Universit´e Pierre et Marie Curie – Paris 6 Examen de travaux pratiques Licence de Math´ematiques MA380 – Analyse Hilbertienne et Num´erique
18 janvier 2006 8h30 `a 9h30
Les appareils ´electroniques et les documents sont interdits. Les solutions de- vront ˆetre r´edig´ees de mani`ere rigoureuse. Lorsque des r´esultats du cours seront utilis´es, ils devront clairement ˆetre ´enonc´es. On notera que certaines questions peuvent ˆetre r´esolues ind´ependamment.
On se donne A = [aij]1≤i,j≤n ∈ Rn×n et b = [β1· · ·βn]t ∈ Rn×1. Pour r´esoudre le syst`eme Ax =b, on se propose de d´ecomposer la matriceAsous la forme A=M−N et de construire une suite de vecteurs (x(k))k≥0 dans Rn×1 via les it´erations
M x(k+1)=N x(k)+b, (1)
x(0) ∈Rn×1 ´etant un vecteur donn´e.
1. On pose M=diag(diag(A)) et N=M-A. Quelle est la m´ethode it´erative ainsi d´efinie ? `A quelle condition est-elle convergente ?
2. Ecrire une fonction Scilab´ Conv(A) renvoyant la valeur 1 si la m´ethode appliqu´ee `a la matrice A converge, et la valeur 0 si la m´ethode diverge. On ne demande pas pour le moment de programmer la m´ethode.
3. Montrer que si A est `a diagonale strictement dominante, i.e., (∀ i∈ {1, . . . , n}) |aii|>
n
X
j=1, j6=i
|aij|, (2)
alors la m´ethode converge pour tout choix dex(0).
4. Montrer que la i`eme coordonn´ee de x(k+1) = [ξ1(k+1)· · · ξn(k+1)]t est donn´ee par ξi(k+1)=
βi−
n
X
j=1, j6=i
aijξj(k).
aii. (3)
5. En utilisant la formule (3), programmer cet algorithme pour r´esoudre un syst`eme lin´eaire.
On ´ecrira une fonction Scilab [x,iter]=Iteration(A,b,tol,x0). Les arguments d’ap- pel sont : la matrice A, le vecteur b,tol : le param`etre du test d’arrˆet kAx-bk∞<tol, et enfin x0, le vecteur initial. Les arguments de sortie sont : la solution approch´ee x et le nombre d’it´erations effectu´eesiter.
1
Paris 6 –Licence de Math´ematique – MA380 – Analyse Hilbertienne et Num´erique Solution de l’examen de TP de janvier 2006
1. On reconnaˆıt la m´ethode de Jacobi. Elle est convergente ssi %(M−1N)<1.
2. function cvg=Conv(A) M=diag(diag(A));
N=M-A;
if max(abs(spec(inv(M)*N))) < 1 then cvg=1;
else cvg=0;
end;
endfunction
3. Tout d’abord, puisque lesaii sont tous non nuls (dominance diagonale stricte), on peut utiliser la m´ethode de Jacobi. Soit (λ, x) un ´el´ement propre de la matrice de Jacobi J =M−1N. On a successivement
J x=λx ⇔ N x=λM x,
⇔ (∀i∈ {1, . . . , n})
n
X
j=1
Nijxj =λMiixi,
⇔ (∀i∈ {1, . . . , n}) −
n
X
j=1, j6=i
aijxj =λaiixi.
Soit itel que|xi|=kxk∞. On a
|λaiixi| ≤
n
X
j=1, j6=i
|aij||xj| ≤ |xi|
n
X
j=1, j6=i
|aij|.
On en d´eduit que
|λ||aii| ≤
n
X
j=1, j6=i
|aij|.
CommeA est `a diagonale strictement dominante, on obtient que|λ|<1. Donc %(J)<1 et la m´ethode de Jacobi converge.
4. La relation (1) s’´ecrit :
(∀i∈ {1, . . . , n}) [M x(k+1)]i = [N x(k)]i+bi,
⇔ (∀i∈ {1, . . . , n}) aiiξ(k+1)i =−
n
X
j=1, j6=i
aijξj(k)+bi,
d’o`u la relation (3).
2
5.
function [x,iter]=Iteration(A,b,tol,x0) iter=0;
n=size(b,1);
x=x0; err=norm(A*x-b,’inf’);
while err >= tol do w=x;
x=b;
for i=1:n for j=1:i-1
x(i)=x(i)-A(i,j)*w(j);
end;
for j=i+1:n
x(i)=x(i)-A(i,j)*w(j);
end;
x(i)=x(i)/A(i,i);
err=norm(A*x-b,’inf’);
iter=iter+1;
end;
end;
endfunction
3