Estoy confundido con la descomposición del valor singular de una matriz. Puede que sólo sea un malentendido de lo que hace la descomposición del valor singular, así que, por favor, sé amable conmigo. Si hago una descomposición de valor singular en $X$ con $m$ filas y $n$ columnas de tal manera que obtengo $X=U\Sigma V$ . $V^*$ se supone que es una matriz cuadrada nxn (véase por ejemplo Wikipedia . Sin embargo, para una matriz x por ejemplo de tamaño (40,100) obtengo en Julia (y también en R):
x = randn(40, 100)
xsvd = svdfact(x)
size(xsvd.Vt)
(40,100)
Estoy esperando (100,100). Sin embargo, para
x = randn(100, 40)
xsvd = svdfact(x)
size(xsvd.Vt)
(40,40)
Tengo lo que espero.
¿Puede alguien explicarme qué está pasando aquí? ¿Y posiblemente indicarme algún lugar donde pueda leer los fundamentos?
0 votos
Cuando se realiza la SVD de una matriz nXp, normalmente se obtienen 3 matrices como resultado: vectores propios izquierdos U (nXn), vectores propios derechos V (pXp), matriz diagonal de valores singulares S (nXp). Algunas implementaciones de la función pueden cortar filas o columnas vacías de S.
0 votos
@ttnphns: sí, tienes razón. Mi pregunta es con respecto a los vectores propios de la derecha $V^*$ . Supongo que debería haber sido más preciso.
0 votos
Debe tener en cuenta que sólo tienen sentido los vectores propios correspondientes a valores singulares distintos de cero. Por lo tanto, los vectores propios finales de V, correspondientes a valores singulares nulos, pueden fijarse en cero. Si es así, pueden no calcularse o no mostrarse mediante una función.
0 votos
Has cambiado el primer comentario. El segundo es similar al que acepté como respuesta correcta de Brian Borchers más abajo. Gracias