Académique Documents
Professionnel Documents
Culture Documents
INVERSE D’UNE
MATRICE
GROUPE 17
MEMBRES :
DESCRIPTION DE L’AGORITHME
Voici une description plus détaillée des étapes de l'algorithme :
1. Calcul du déterminant:
La méthode utilisée dans l’algorithme est la méthode de Laplace pour le calcul du
déterminant d'une matrice. La formule de Laplace permet d'exprimer le déterminant
d'une matrice en termes de cofacteurs. Voici la formule de Laplace pour une matrice A
de taille n×n:
n
det ( A )=∑ (−1)k+1 ×a 1k × det (A 1 k )
k=1
2. Vérification de la singularité :
La fonction `CalculerDeterminant` utilise la fonction `determinant` pour obtenir le
déterminant de la matrice d'origine. Si le déterminant est égal à zéro, cela signifie
que la matrice est singulière (non inversible), et le programme affiche un message
approprié.
4. Pivotement partiel:
⮚ Pour chaque ligne j, la procédure calcule le ratio, qui est égal au coefficient de
la ligne j de la colonne i divisé par le pivot partiel de la ligne i.
⮚ La fonction utilise ensuite ce ratio pour éliminer les termes non nuls de la
colonne i de la ligne j.
6. Rendre diagonal a 1
⮚ Une fois que la matrice échelonnée est obtenue, la partie de droite (matrice
identité) est extraite pour obtenir la matrice inverse.
ALGORITHE EN PSEUDOCODE
Algorithme CalculerInverse(matrice: tableau de tableau de réel, taille: entier)
fonction determinant(matrice: tableau de tableau de réel, k: entier)
S, det : réel
m, n, i : entier
s <- 1.0
det <- 0.0
b : tableau de tableau de réel <- tableau de tableau de réel de dimension [25][25]
Si k = 1 alors
Afficher matrice[0][0]
Sinon
det <- 0.0
Pour c allant de 0 à (k - 1) faire
m <- 0
n <- 0
Pour i allant de 0 à (k - 1) faire
Pour j allant de 0 à (k - 1) faire
b[i][j] <- 0.0
Si i != 0 et j != c alors
b[m][n] <- matrice[i][j]
Si n < (k - 2) alors
n <- n + 1
Sinon
n <- 0
m <- m + 1
Fin Si
Fin Si
Fin Pour
Fin Pour
det <- det + s * (matrice[0][c] * determinant(b, k - 1))
s <- s * -1.0
Fin Pour
Afficher det
Fin Si
Fin fonction
dét <- CalculerDeterminant(matrice, taille)
fin pour
COMPLEXITÉ DE L’ALGORITHME
Analysons la complexité de chaque procédure dans l'algorithme du calcul de l'inverse d'une
matrice carrée par la méthode de Gauss-Jordan, ensuite déduisons la complexité de
l’algorithme.
● Fonction déterminant
La fonction déterminant calcule le déterminant d'une matrice carrée en utilisant la
formule récursive. La complexité de la fonction récursive est O(n!), où n est la taille
de la matrice. Cela s'explique par le fait que la fonction effectue n appels récursifs,
chacun prenant O(n) temps.
● Procédure afficher_matrice
La procédure afficher_matrice imprime simplement une matrice sur la
console. La complexité de cette fonction est O(n^2), où n est la taille de la
matrice. Cela s'explique par le fait que la fonction itère sur tous les éléments
de la matrice et les imprime.
● Procédure pivot_partiel
La procedure pivot_partiel effectue une pivotation partielle sur une matrice.
La complexité de cette fonction est O(n^2), où n est la taille de la matrice.
Cela s'explique par le fait que la fonction trouve l'élément maximum dans une
colonne et échange ensuite les lignes pour placer cet élément sur la
diagonale.
● Procedure eliminer
La fonction eliminer élimine les éléments non nuls situés sous l'élément pivot
dans une colonne. La complexité de cette fonction est O(n^2), où n est la
taille de la matrice. Cela s'explique par le fait que la fonction itère sur toutes
les lignes situées sous la ligne pivot et effectue des opérations de ligne pour
éliminer les éléments non nuls.
● Procedure rendre_diagonale_un
La procedure rendre_diagonale_un met l'élément pivot dans une colonne à 1.
La complexité de cette fonction est O(n), où n est la taille de la matrice. Cela
s'explique par le fait que la fonction itère sur tous les éléments de la colonne
pivot et les divise par l'élément pivot.
Complexité globale
La complexité globale du programme est O(n^3), où n est la taille de la matrice Cela
s'explique par le fait que la fonction effectue n étapes d'élimination de Gauss,
chacune prenant O(n^2) temps.
ANNEXE
CODE