Produit Matrice Vecteur : Y=AX
• Cas matrice dense (◼) - Complexité 2n2+O(n)
DO i=1,n
DO j=1,n
Y(i) = Y(i)+A(i,j)X(j)
ENDDO
ENDDO
• Cas matrice ◣- Complexité n2+O(n)
DO i=1,n
DO j=1,i / j=i,n pour matrice ◥ /
Y(i) = Y(i)+A(i,j)*X(j)
ENDDO
ENDDO
PMM : C=AB
• Cas ◼ ◼ = ◼ - Complexité 2n3 + O(n2 )
DO i=1,n
DO j=1,n
DO k=1,n
C(i,j) = C(i,j)+A(i,k)*B(k,j)
ENDDO
ENDDO
ENDDO
• Cas ◣◣ = ◣ - Complexité n3/3+O(n2)
DO i=1,n
DO j=1,i
DO k=j,i
C(i,j) = C(i,j)+A(i,k)*B(k,j)
ENDDO
ENDDO
ENDDO
1
Elimination de Gauss (EG) : Triangularisation d’une matrice
• Algorithme 1 : nid parfait
DO k=1,n-1
DO i=k+1,n
DO j=k+1,n
A(i,j) = A(i,j)-A(i, k)*A(k,j)/A(k,k)
ENDDO
ENDDO
ENDDO
Complexité n3+O(n2)
• Algorithme 2 : nid non parfait (remontée d’invariant de boucle)
DO k=1,n-1
DO i=k+1, n
coef = A(i,k)/A(k,k)
DO j=k+ 1, n
A(i,j) = A(i,j)-coef*A(k,j)
ENDDO
ENDDO
ENDDO
Complexité (2/3)n3+O(n2)
• Algorithme 3 : nid non parfait (remontée et décomposition d’invariant de boucle)
DO k=1, n-1
coef1 = 1/A(k,k)
DO i=k+1, n
coef2 = coef1*A(i,k)
DO j=k+ 1, n
A(i,j) = A(i,j)-coef2*A(k,j)
ENDDO
ENDDO
ENDDO
Complexité (2/3)n3+O(n2)
Ax=b Elimination de Gauss (EG) - phase 1 :Triangularisation de A et MAJ b
• Algorithme 1 : nid non parfait (remontée d’invariant de boucle)
DO k=1,n- 1
DO i=k+1, n
coef = A(i,k)/A(k,k) // invariant du boucle //
B(i) = B(i)-coef*B(k) // MAJ B dans le cas RSL : AX=B //
DO j=k+1,n
A(i,j) = A(i,j)-cief*A(k,j)
ENDDO
ENDDO
ENDDO
Complexité (2/3)n3+O(n2)
2
• Algorithme 2 : nid non parfait (remontée et décomposition d’invariant de
boucle)
DO k=1, n-1
coef1 = 1/A(k,k)
DO i=k+1, n
coef2 = coef1*A(i,k)
B(i) = B(i)-coef*B(k) // MAJ B dans le cas RSL : AX=B //
DO j=k+ 1, n
A(i,j) = A(i,j)-coef2*A(k,j)
ENDDO
ENDDO
ENDDO
Complexité (2/3)n3+O(n2)
Résolution AX=B (A ◣ : descente) -
DO i=1,n
DO j=1,i-1
B(i) = B(i) –A(i,j)*X(j)
ENDDO
X(i) = B(i)/A(i,i)
ENDDO
Complexité n2+O(n)
Résolution AX=B (A ◥ : remontée) -
DO i=n,1,-1
DO j=i+1,n
B(i) = B(i)–A(i,j)*X(j)
ENDDO
X(i) = B(i)/A(i,i)
ENDDO
Complexité n2+O(n)
Résolution de système matriciel triangulaire inférieur AC :B
A est triangulaire inférieure et B, C sont carrées toutes d’ordre n. A et B étant
données, la détermination de la matrice C se fait à travers la résolution de n systèmes
triangulaires A.C(K) =B(k), k=1..n, où C(k) est la colonne k de C (resp B).
DO k=1,n
DO i=1,n
DO j=1,i-1
B(i,k) = B(i,k) –A(i,j)*C(j,k)
ENDDO
C(i,k) = B(i,k) /A(i,i)
ENDDO
ENDDO
Complexité n3+O(n2)
3
FLU : A=LU : ◼ =◣◥
L et U sont directement calculées dans A : partie triangulaire inférieure
stricte pour L et supérieure pour U)
(L ◣ et U ◥ dans A )
DO k=1,n-1
DO i=k+1,n
A (i,k) = A (i,k)/A(k,k)
DO j=k+1,n
A (i,j) = A (i,j)-A(i,k)*A(k,j)
ENDDO
ENDDO
ENDDO
Lii=1 : i=1…n ; Lij=Aij : i=2…n, j=1…i-1
Uij=Aij : i=1…n, j=i…n
Complexité (2/3)n3+O(n2)