Bonjour,
Je suis en train de me poser une question existentielle sur la décomposition LU.
Selon la définition, si A est une matrice inversible, alors elle admet une décomposition LU.
J'aimerais implémenter un algorithme de décomposition LU mais je me pose alors la question suivante:
dois-je vérifier auparavant si ma matrice A est inversible?
Mathématiquement j'ai envie de dire oui il faut le vérifier. D'un autre côté j'ai un peu recherché et j'ai l'impression que les logiciels du type Matlab & co lancent direct la décomposition LU sans vérifier si la matrice A est inversible, puis s'il y a un problème alors cela voulait dire que la matrice n'était pas inversible.
Par ailleurs, l'algorithme de décomposition LU a un complexité en o(n^3). Si on cherche auparavant à montrer que A est inversible on peut utiliser plusieurs méthodes comme par exemple det(A) différent de 0, colonnes indépendantes, 0 n'est pas valeur propre de A, rang égal à n, etc. Cependant ces méthodes sont équivalentes et font intervenir des pivots de Gauss et ont donc une complexité en o(n!). En conclusion on perd tout l'avantage de la rapidité de la décomposition LU.
Alors comment faire? Doit on faire la décomposition LU sans se soucier de l'inversibilité de la matrice ou bien y-a-t-il une solution miracle pour montrer que la matrice est inversible?
Merci par avance pour votre aide
