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

cs_janhsh Messages postés 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015 - 8 oct. 2007 à 13:36
ombredoree Messages postés 1 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 23 novembre 2007 - 23 nov. 2007 à 13:28
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
23 nov. 2007 à 13:28
..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
8 oct. 2007 à 22:31
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 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015
8 oct. 2007 à 13:36
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.
Rejoignez-nous