Je me demande si l'algorithme de Thomas est le moyen le plus rapide (de manière probable?) De résoudre un système tridiagonal clairsemé à dominante diagonale symétrique en termes de complexité algorithmique (ne pas chercher de packages d'implémentation comme LAPACK, etc.). Je sais que l'algorithme de Thomas et le multigrille sont tous deux de complexité , mais peut-être que le facteur constant pour le multigrille est moindre? Il ne me semble pas que le multigrille pourrait être plus rapide mais je ne suis pas positif.
Remarque: je considère le cas où les matrices sont très grandes. Des méthodes directes ou itératives sont acceptables.
La réponse courte est que l'algorithme de Thomas sera plus rapide que n'importe quel schéma itératif pour presque tous les cas. L'exception serait peut-être d'appliquer une seule itération d'un schéma itératif très simple tel que Gauss-Seidel, mais il est peu probable que cela donne une solution acceptable. En outre, cela ignore les problèmes de traitement parallèle.
La multigrille est un choix particulièrement mauvais dans le cas d'une matrice tri-diagonale car bien que multigrille soit , la constante est assez grande. En fait, le multigrille n'a même pas d'avantage sur Gauss-Seidel jusqu'à ce que les matrices deviennent assez grandes. Cela est dû au besoin d'opérations de projection, de prolongation et de relaxation pour chaque niveau multigrille, chacune nécessitant des opérations O ( n ) où n est le nombre d'inconnues à ce niveau multigrille.O(n) O(n)
Enfin, cette question est mieux abordée via le comptage des opérations. Pour l'algorithme Thomas, un total de multiplications et 3 N additions sont nécessaires pour la solution. Les schémas itératifs nécessitent au moins autant d'opérations que la multiplication matrice-vecteur et étant donné une matrice tri-diagonale, chaque multiplication matrice-vecteur nécessite 3 N - 2 multiplications et 2 N - 2 additions. Par conséquent, même deux applications de n'importe quel schéma itératif (même le plus simple) seront plus coûteuses que l'algorithme de Thomas.5N 3N 3N−2 2N−2
la source
Les boucles multigrilles, même sur un seul cœur, sont vectorisables par l'optimiseur. Ainsi, bien que le nombre d'opérations puisse aider, nous ne devons pas oublier que même dans le monde série, les processeurs ont un parallélisme vectoriel, et donc le délai de résolution peut ne pas être exactement ce que nous prédisons à partir de l'analyse des coûts.
la source