En mi proyecto, tengo que resolver un par de matrices tridiagonales en cada paso, por lo que es crucial tener un buen solucionador para esos. Hice mi propia implementación, solo la forma clásica de hacerlo descrita en Wikipedia. Luego intenté usar Lapack, ¡y para mi sorpresa fue más lento!
Ahora, dentro de Lapack parece que resuelve por factorización LU y me pregunto por qué, ¿no es más complejo de lo que podría ser?
Además, encontré un algoritmo en el libro "Recetas numéricas" de nr.com que divide recursivamente el sistema en problemas tridiagonales más pequeños. Parecía prometedor. ¿Hay alguna otra cosa por ahí?
Actualización: el tamaño del problema es de aproximadamente 1000x1000. Usé GotoBLAS, también te da una biblioteca Lapack 3.1.1. El problema no es simétrico. Usé la rutina Lapack para matrices tridiagonales generales.