Dans mon projet, je dois résoudre quelques matrices tridiagonales à chaque pas de temps, il est donc crucial d'avoir un bon solveur pour celles-ci. J'ai fait ma propre implémentation, juste la manière classique de le faire décrite sur Wikipedia. J'ai ensuite essayé d'utiliser Lapack à la place, et à ma grande surprise, c'était plus lent!
Maintenant, à l'intérieur de Lapack, il semble que ce soit la résolution par factorisation LU et je me demande pourquoi, n'est-ce pas plus complexe qu'il ne pourrait l'être?
De plus, j'ai trouvé un algorithme dans le livre "Recettes numériques" de nr.com qui divise récursivement le système en petits problèmes tridiagonaux. Cela semblait prometteur. Y a-t-il d'autres goodies là-bas?
Mise à jour: la taille du problème est d'environ 1000x1000. J'ai utilisé GotoBLAS, cela vous donne également une bibliothèque Lapack 3.1.1. Le problème n'est pas symétrique. J'ai utilisé la routine Lapack pour les matrices tridiagonales générales.