Bonjour,
C'est la complexité d'un bête produit scalaire...
La décomposition LU se fait par la méthode du pivot de Gauss et nécessite N^3/3 opérations élémentaires.la décomposition LU me donnera juste le résultat qui m'intéresse, et en difficulté O(N^2) également (au lieu de O(N^3) du pivot de Gauss), je suis vraiment débile de ne pas avoir vu ça avant![]()
Ensuite, la résolution des deux systèmes triangulaires pour calculer la Nième colonne de ton inverse se fait en O(N^2).
Ta matrice étant générale, il faut appliquer une stratégie de pivotage partiel pour assurer l'existence de la factorisation.
Si tu veux des résultats précis, il est conseillé d'appliquer a priori une méthode de préconditionnement diagonal et a posteriori un procédé de raffinement itératif sur la solution calculée.
Si, par hasard, les coefficients d'une matrice NxN ne sont pas modifiés dans une matrice N'xN' lorsqu'on passe de N à N' (N'>N), alors tu peux gagner énormément de temps en adoptant un format de stockage par bloc pour tes matrices et en calculant tes factorisations LU par bloc.La rapidité de calcul est cruciale dans mon cas.
Note également que si tu n'as réellement besoin que de calculer la dernière colonne des inverses de tes matrices, il n'est aucunement nécessaire de stocker tous les coefficients du facteur L mais seulement le dernier.
Partager