INVERSION DE MATRICE - RÉSOLUTION DE SYSTÈMES D'ÉQUATIONS LINÉAIRES

Signaler
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015
-
ombredoree
Messages postés
1
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
23 novembre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44258-inversion-de-matrice-resolution-de-systemes-d-equations-lineaires

ombredoree
Messages postés
1
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
23 novembre 2007

..La critique est aisée, mais l'art est difficile!
caco64
Messages postés
69
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
14 décembre 2007

J'avais cru comprendre en effet que cette méthode était en o(n!), mais c'est vrai qu'en ce qui me concerne, les matrices que j'utilise dépassent rarement la dimension 6 ou 7, le temps de résolution n'est alors plus véritablement un pb.

J'ai également programmé un algo basé sur la méthode de triangulation qui doit être en o(n^3) si je ne me trompe pas. Par contre, je ne connaissais pas l'existence de ces algo en o(n^2....)

Merci beaucoup pour tes remarques JANSH, ça m'a permis de tester qu'effectivement une matrice 100*100, ça coince dur.
cs_janhsh
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015

C'est bien d'un point de vue théorique, pour les matheux, mais pas utilisable en pratique.

Ton algorithme est O(n!) rien que par le calcul du déterminant ... Si tu a une matrice de 100 x 100, il te faudra très longtemps pour l'inverse avec cet algorithme. (en jours et plus...)

De plus, pour des problèmes réels, le résultat sera erroné a cause du principe de la virgule flotante. (Sur ordinateur, les nombres étant stocké de façon échantilionnés avec une perte de précision).

En pratique, pour résoudre un système d'équations linéaire, on n'inverse jamais une matrice.
on utilise plutôt des méthodes comme la décomposition LU et la décomposition QR
On peut aussi utiliser des méthodes comme Gauß Doolittle, Gauß-Jordan O(n^3), Strassen O(n^2.807), Coppersmith-Winograd O(n^2,378), Banachiewicz, ...

Ces méthodes sont beaucoups plus précise et plus rapides même si l'algorithme est plus complexe.