¿Existe un algoritmo SVD truncado que calcula los valores singulares uno a la vez?
Mi problema: me gustaría calcular los primeros valores singulares (y vectores singulares) de una gran matriz densa , pero no sé cuál sería un valor apropiado de . es grande, por lo que por razones de eficiencia, preferiría no evaluar la SVD completa solo para truncar las SV más pequeñas después.
Idealmente, habría una manera de calcular los valores singulares serie, de mayor ( ) a menor ( ). De esa manera, podría simplemente detener el cálculo después de calcular el ésimo valor singular si cae por debajo de cierto umbral.
¿Existe tal algoritmo (preferiblemente con una implementación de Python)? En mi búsqueda en Google, solo he encontrado funciones SVD truncadas que toman k como parámetro, lo que te obliga a adivinar a priori.