View Single Post

Dici's Avatar


Dici
11.23.2012 , 01:24 PM | #21
Bonjour elyyn,

Ton idée a ses avantages, mais en voici les inconvénients.

Rappelons l'implantation la plus simple (algorithmiquement) de l'inversion d'une matrice par un ordinateur utilise la formule :
transposée(comatrice(A)) x A = det A * Identité

Le calcul de la transposée ne pose pas de soucis. La comatrice en revanche demande de calculer n déterminants d'ordre n-1 si A est carrée d'ordre n. Le calcul d'un déterminant est une somme sur un ensemble à n! éléments, dont chaque terme est un produit à n facteurs. Le calcul d'un déterminant d'ordre n-1 est donc en (n-1)!, le calcul de l'inverse avec cet algorithme est en n x (n-1)! = n!... c'est ENORME !!!

Si tu veux inverser une matrice avec une complexité raisonnable, tu introduis un autre problème beaucoup plus complexe que le premier. Certes, il existe des algorithmes faisant ça très bien, mais c'est vraiment utiliser des théorèmes très puissants pour résoudre un problème ridicule (la terminaison d'un certain algorithme d'inversion repose sur la densité des matrices inversibles dans l'ensemble des matrices sur R. Sans être hyper raffiné, c'est largement plus élaboré que mes schémas bêbêtes de résolution).


Autrement, il est vrai que mathématiquement ta solution est meilleure. La mienne n'a reposé que sur la recherche intuitive d'une "base de solution", tandis que tu rationalises le problème en utilisant des outils classiques. Seulement, ma technique de résolution est faisable à la main car sa complexité est faible, la tienne non. Mon algorithme peut s'implanter informatiquement et s'exécuter en un temps raisonnable, le tien également mais demande un grand raffinement dans la méthode employée, ce qui n'est pas mon cas.

Pour conclure je dirais que c'est plus élégant mais un peu inapproprié pour un solveur informatique.

PS : gros point pour toi par contre, tu peux généraliser très, très simplement ce problème à tout n et à toute configuration. Ma solution en revanche n'est pas du tout flexible...

Quand j'y pense, c'est d'ailleurs l'universalité de ta réponse qui fait que sa complexité est supérieure.