Méthodes Matrix-free
# Méthodes Matrix-free

En mathématiques appliquées, une méthode dite matrix-free (sans matrice) est un algorithme qui permet de résoudre un système d'équations linéaires ou un problème aux valeurs propres sans avoir besoin de stocker explicitement en mémoire les coefficients de la matrice, mais en accédant implicitement à la matrice par des évaluations de produits matrice-vecteur. Lorsque la matrice du système linéaire à étudier est de très grande taille, on préfère utiliser une méthode matrix-free qui permet d'économiser le stockage en mémoire et la manipulation (lecture / écriture) qui sont souvent des opérations très coûteuses en temps de calcul (même avec l'utilisation de méthodes pour matrices creuses). Ces méthodes réalisent une sorte de compromis;on remplace des accès mémoire aux coefficients de la matrice par du calcul (petit produit matrice-vecteur) au profit de l’efficacité globale de l'implantation algorithmique. De nombreuses méthodes itératives en algèbre linéaire permettent une implémentation matrix-free, notamment :

* la méthode de la puissance itérée,
* l'algorithme de Lanczos,
* Méthode du gradient conjugué préconditionné par bloc localement optimal (LOBPCG),
* l'algorithme de récurrence des coordonnées de Wiedemann,
* la méthode du gradient conjugué.

Il existe de nombreuses implantations parallèles de ces algorithmes pour les calculateurs à mémoire distribuée .

Ces méthodes sont par exemple utilisées dans la résolution d'équations linéaires résultant de la discrétisation des équations d'Euler (équations aux dérivées partielles) en dynamique des fluides numérique. La méthode du gradient conjugué matrix-free a été appliquée par exemple à la résolution par la méthode des éléments finis de problèmes élasto-plastiques non linéaire. La résolution de ces équations nécessite le calcul d'une matrice jacobienne qui est coûteux en temps de calcul et en stockage en mémoire. Afin de supprimer le besoin de calculer ce jacobien, on forme un produit matrice-vecteur à la place. Manipuler et calculer ces produits matrice-vecteur est plus facile que de travailler avec une matrice de grande taille.

