Programmation de méthode de Saurior Levrier Fadeev et la méthode de la factorisation en Matlab + Les algorithmes
En Analyse numérique on a utilisé des diverses méthodes parmi elles, la Dichotomie et la méthode
de Bairstow
Dans ce TP on a utilisé
une méthode fréquente d’inversion d’une matrice par la méthode de Saurior Levrier
Fadeev .et la méthode de la
factorisation comme étant une méthode de résolution des Systèmes linéaires.
I-l’algorithme de la méthode de
Sauriaur Levrier Fadeev :
1-
Mise
en œuvre de l’algorithme :
Sous programme
trace(A,n,T)
T=0
Pour i=1….. ;n
T=T+A(i,i)
Programme
principale :
i=1…. n
j=1….n
B(i,j)=A(i,j)
Appel trace(B,n,T)
P(1)=T
Pour k=2……n-1
Faire B=A(B-p(k-1)*Id)
Appel trace(B,n,T)
P(k)=(T)/k
C=A(B-p(n-1)*Id)
Appel trace(C,n,T)
P(n)=(T)/n
Det(A)=(-1)n+1(p(n))
Et A-1=(1/(p(n))*(B-P(n-1)*Id)
2-programme de la
méthode Sauriaur :
n=input('donner n
:');
for i=1:n
for j=1:n
a(i,j)=input('donner les coefficient de la matrice A :');
end
end
for i=1:n
for j=1:n
b(i,j)=a(i,j);
end
end
p(1)=trace(b,n);
for i=1:n
for j=1:n
if i==j
I(i,i)=1;
else
I(i,j)=0;
end
end
end
for k=2:n-1
for i=1:n
for j=1:n
d(i,j)=b(i,j)-p(k-1)*I(i,j);
end
end
for
i=1:n
for l=1:n
som=0;
for j=1:n
som=som+a(i,j)*d(j,l);
end
b(i,l)=som;
end
end
p(k)=trace(b,n)/k;
end
for i=1:n
for j=1:n
E(i,j)=b(i,j)-p(k)*I(i,j);
end
end
for i=1:n
for k=1:n
h=0;
for j=1:n
h=h+a(i,j)*E(j,k);
end
c(i,k)=h;
end
end
p(n)=trace(c,n)/n;p(n)
deta=(-1)^(n+1)*p(n);
disp('le determinant est');deta
for i=1:n
for j=1:n
inva(i,j)=E(i,j)/p(n);
disp('aij=');inva(i,j)
end
end
l’exécution de la méthode pour la matrice : A=(1 0
1 ;0 1 2 ;1 2 3)
saurio
donner n :3
donner les coefficient de la matrice A :1
donner les coefficient de la matrice A :0
donner les coefficient de la matrice A :1
donner les coefficient de la matrice A :0
donner les coefficient de la matrice A :1
donner les coefficient de la matrice A :2
donner les coefficient de la matrice A :1
donner les coefficient de la matrice A :2
donner les coefficient de la matrice A :3
ans =
-2
le determinant est
deta =
-2
aij=
ans =
0.5000
aij=
ans =
-1
aij=
ans =
0.5000
aij=
ans =
-1
aij=
ans =
-1
aij=
ans =
1
aij=
ans =
0.5000
aij=
ans =
1
aij=
ans =
-0.5000
II-l’algorithme de la méthode de
factorisation (qui construit ligne par ligne) :
Initialiser L et S à 0
Initialiser Lii=1 pour i=1…..n
S11=A11
Is=2,………n
i=1……….,Is-1
Lisi=(1/Sii)(Aisi –((de 1 à i-1)Lisk
*Ski))
J=1………is
Sjis=Ajis-(de k à i-1)Ljk Ski)
2-programme de la méthode de la
factorisation :
%programme de la factorisation LU pour la résolution du
système linèaire AX=B
a=[];b=[];x=[];s=[];tl=[];y=[];
n= input ('donner la dimension de la matrice n= ');
for i=1:n
for j=1:n
a(i,j)= input
('donner les elements de la matrice ligne par ligne = ');
end
end
for i=1:n
b(i)= input('donner
les elements du vecteur b = ');
end
for i=1:n
s(1,i)=a(1,i);
end
for j=1:n
tl(j,1)=a(j,1)/s(1,1);
tl(j,j)=1;
end
for i=2:n
for j=i:n
s(i,j)=a(i,j);
for k = 1:i-1
s(i,j)=s(i,j)-tl(i,k)*s(k,j);
end
end
for is=i+1:n
tl(is,i)=
a(is,i);
for k=1:i-1
tl(is,i)=(tl(is,i)-tl(is,k)*s(k,i))/s(i,i);
end
end
end
s
tl
% résolution de L*Y=B avec L=tl
y(1)=b(1);
for i=1:n
y(i)=b(i);
for j=1:i-1
y(i)= y(i)-
tl(i,j)*y(j);
end
end
y
%Résolution de S*X = Y
x(n)= y(n)/s(n,n);
for i=n-1:-1:1
% x(i)=y(i);
t=0;
for j=i+1:n
t=t+s(i,j)*x(j);
end
x(i)=
(y(i)-t)/s(i,i);
end
disp('la solution
est: x= ');
x
l’exécution de la méthode pour A(2 4 8 ;4 11 25 ;6 18 46) et B=(34 101 180)
factorisation
donner la dimension de la matrice n= 3
donner les elements de la matrice ligne par ligne = 2
donner les elements de la matrice ligne par ligne = 4
donner les elements de la matrice ligne par ligne = 8
donner les elements de la matrice ligne par ligne = 4
donner les elements de la matrice ligne par ligne = 11
donner les elements de la matrice ligne par ligne = 25
donner les elements de la matrice ligne par ligne = 6
donner les elements de la matrice ligne par ligne = 18
donner les elements de la matrice ligne par ligne = 46
donner les elements du vecteur b = 34
donner les elements du vecteur b = 101
donner les elements du vecteur b = 180
s =
2 4
8
0 3
9
0 0
4
tl =
1 0
0
2 1
0
3
2 1
y =
34 33
12
la solution est:
x=
x =
1 2
3
La Conclusion :
Durant Ce TP on a déduit que l’utilisation
de Matlab dans la programmation qui spécifie la résolution des équations est
assez importante.
Ce TP nous a permis de
réaliser les difficultés que pose la recherche de la solution des systémes
linéaires par la méthode de factorisation et la méthode de l’inversion d’une
matrice par la méthode de sauriaur.