Me pregunto si el algoritmo de Thomas es la forma más rápida (¿probablemente?) De resolver un sistema tridiagonal disperso simétrico que domina diagonalmente en términos de complejidad algorítmica (no busca paquetes de implementación como LAPACK, etc.). Sé que tanto el algoritmo de Thomas como la multigrid son complejidad, pero ¿tal vez el factor constante para multigrid sea menor? No me parece que la multigrid pueda ser más rápida, pero no soy positivo.
Nota: Estoy considerando el caso donde las matrices son muy grandes. Se aceptan métodos directos o iterativos.
La respuesta corta es que el algoritmo de Thomas será más rápido que cualquier esquema iterativo para casi todos los casos. La excepción quizás sería aplicar una única iteración de un esquema iterativo muy simple como Gauss-Seidel, pero es muy poco probable que esto dé una solución aceptable. Además, esto está ignorando las preocupaciones de procesamiento paralelo.
fuente
El optimizador puede vectorizar bucles de múltiples cuadrículas incluso en un solo núcleo. Por lo tanto, aunque el recuento de operaciones puede ayudar, no debemos olvidar que incluso en el mundo en serie, los procesadores tienen paralelismo vectorial y, por lo tanto, el tiempo de solución puede no ser exactamente lo que predecimos del análisis de costos.
fuente