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.