Je travaille sur une bibliothèque de matrices uniquement en-tête pour fournir un certain degré raisonnable de capacité d'algèbre linéaire dans un package aussi simple que possible, et j'essaie de faire le point sur l'état actuel de la technique: le calcul de la SVD d'un matrice complexe.
Je fais une décomposition en deux phases, une bidiagonalisation suivie d'un calcul de valeurs singulières. En ce moment, j'utilise la méthode des ménages pour la bidiagonalisation (je crois que LAPACK l'utilise également), et je pense que c'est à peu près aussi bon qu'il l'est actuellement (à moins que quelqu'un ne connaisse un algorithme pour ça..).
Le calcul des valeurs singulières est le suivant sur ma liste, et je suis un peu en dehors de la boucle sur les algorithmes courants pour ce faire. J'ai lu ici que la recherche se dirigeait vers une méthode d'itération inverse qui garantit l'orthogonalité avec la complexité . Je serais intéressé d'en entendre parler ou d'autres avancées.