3.8 Syst` emes par blocs
99
Programme 13 - modthomas : Algorithme de Thomas, version modifi´ ee
function [x] = modthomas (a,b,c,f)
%MODTHOMAS Version modifi´ ee de l’algorithme de Thomas
% X=MODTHOMAS(A,B,C,F) r´ esout le syst` eme T*X=F o` u T
% est la matrice tridiagonale T=tridiag(B,A,C).
n=length(a);
b=[0; b];
c=[c; 0];
gamma(1)=1/a(1);
for i=2:n
gamma(i)=1/(a(i)-b(i)*gamma(i-1)*c(i-1));
end
y(1)=gamma(1)*f (1);
for i =2:n
y(i)=gamma(i)*(f(i)-b(i)*y(i-1));
end
x(n,1)=y(n);
for i=n-1:-1:1
x(i,1)=y(i)-gamma(i)*c(i)*x(i+1,1);
end
return
3.8 Syst` emes par blocs
Dans cette section, nous consid´ erons la factorisation LU d’une matrice d´ ecompos´ ee en blocs (ayant des tailles ´ eventuellement diff´ erentes). Notre objectif
est double : optimiser l’occupation m´ emoire en exploitant convenablement la
structure de la matrice, et r´ eduire le coˆ ut de la r´ esolution du syst` eme.
3.8.1 La factorisation LU par blocs
Soit A∈ R
n×n la matrice par blocs
A =
A 11 A 12
A 21 A 22
,
o` u A 11 ∈ R
r×r est une matrice inversible dont la factorisation L 11 D 1 R 11 est
connue, et o` u A 22 ∈ R
(n−r)×(n−r) . Dans ce cas, il est possible de factoriser A
en utilisant seulement la d´ ecomposition LU du bloc A 11 . En effet, on a
A 11 A 12
A 21 A 22
=
L 11
0
L 21 I n−r
D 1 0
0 ∆ 2
R 11 R 12
0
I n−r
,
Précédent

- 111/540

Suivant