82
M´ ethodes directes pour la r´ esolution des syst` emes lin´ eaires
a kj =
k−1
r=1
l kr u rj + u kj
, j = k, . . ., n,
a ik =
k−1
r=1
l ir u rk + l ik u kk , i = k + 1, . . . , n.
Remarquer que ces ´ equations peuvent ˆ etre r´ esolues de mani` ere s´ equentielle
par rapport aux inconnues (encadr´ ees) u kj et l ik .
La m´ ethode compacte de Doolittle fournit d’abord la k-i` eme ligne de U,
puis la k-i` eme colonne de L, selon les formules : pour k = 1, . . ., n
u kj = a kj −
k−1
r=1
l kr u rj ,
j= k, . . . , n,
l ik =
1
u kk
a ik −
k−1
r=1
l ir u rk
, i = k + 1, . . . , n .
(3.40)
La factorisation de Crout s’obtient de fa¸ con similaire, en calculant d’abord la
k-i` eme colonne de L, puis la k-i` eme ligne de U : pour k = 1, . . . , n
l ik = a ik −
k−1
r=1
l ir u rk ,
i= k, . . . , n,
u kj =
1
l kk
a kj −
k−1
r=1
l kr u rj
, j = k + 1, . . . , n,
o` u on a pos´ e u kk = 1. Selon les notations introduites pr´ ec´ edemment, la factorisation de Doolittle n’est autre que la version ijk de la m´ ethode de Gauss.
Nous proposons dans le Programme 6 une impl´ ementation du sch´ ema de
Doolittle. Remarquer que l’op´ eration principale est `
a pr´ esent un produit scalaire, le sch´ ema est donc aussi connu sous le nom de version DOT − ijk de la
m´ ethode de Gauss (dot d´ esignant en anglais le point du produit scalaire).
Programme 6 - luijk : Factorisation LU de la matrice A, version ijk
function [A]=luijk(A)
% LUIJK Factorisation LU de la matrice A dans la version ijk
% Y=LUIJK(A): U est stock´ e dans la partie triangulaire sup´ erieure
% de Y et L est stock´ e dans la partie triangulaire inf´ erieure
% stricte de Y.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst` emes carr´ es’); end
for i=1:n
for j=2:i
if A(j,j)==0; error(’Pivot nul’); end
A(i,j-1)=A(i,j-1)/A(j-1,j-1);
k=[1:j-1]; A(i,j)=A(i,j)-A(i,k)*A(k,j);
M´ ethodes directes pour la r´ esolution des syst` emes lin´ eaires
a kj =
k−1
r=1
l kr u rj + u kj
, j = k, . . ., n,
a ik =
k−1
r=1
l ir u rk + l ik u kk , i = k + 1, . . . , n.
Remarquer que ces ´ equations peuvent ˆ etre r´ esolues de mani` ere s´ equentielle
par rapport aux inconnues (encadr´ ees) u kj et l ik .
La m´ ethode compacte de Doolittle fournit d’abord la k-i` eme ligne de U,
puis la k-i` eme colonne de L, selon les formules : pour k = 1, . . ., n
u kj = a kj −
k−1
r=1
l kr u rj ,
j= k, . . . , n,
l ik =
1
u kk
a ik −
k−1
r=1
l ir u rk
, i = k + 1, . . . , n .
(3.40)
La factorisation de Crout s’obtient de fa¸ con similaire, en calculant d’abord la
k-i` eme colonne de L, puis la k-i` eme ligne de U : pour k = 1, . . . , n
l ik = a ik −
k−1
r=1
l ir u rk ,
i= k, . . . , n,
u kj =
1
l kk
a kj −
k−1
r=1
l kr u rj
, j = k + 1, . . . , n,
o` u on a pos´ e u kk = 1. Selon les notations introduites pr´ ec´ edemment, la factorisation de Doolittle n’est autre que la version ijk de la m´ ethode de Gauss.
Nous proposons dans le Programme 6 une impl´ ementation du sch´ ema de
Doolittle. Remarquer que l’op´ eration principale est `
a pr´ esent un produit scalaire, le sch´ ema est donc aussi connu sous le nom de version DOT − ijk de la
m´ ethode de Gauss (dot d´ esignant en anglais le point du produit scalaire).
Programme 6 - luijk : Factorisation LU de la matrice A, version ijk
function [A]=luijk(A)
% LUIJK Factorisation LU de la matrice A dans la version ijk
% Y=LUIJK(A): U est stock´ e dans la partie triangulaire sup´ erieure
% de Y et L est stock´ e dans la partie triangulaire inf´ erieure
% stricte de Y.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst` emes carr´ es’); end
for i=1:n
for j=2:i
if A(j,j)==0; error(’Pivot nul’); end
A(i,j-1)=A(i,j-1)/A(j-1,j-1);
k=[1:j-1]; A(i,j)=A(i,j)-A(i,k)*A(k,j);
