Necesito generar matrices aleatorias no cuadradas con filas y columnas , elementos distribuidos aleatoriamente con media = 0, y restringidos de modo que la longitud (norma L2) de cada fila sea y la longitud de cada columna sea . De manera equivalente, la suma de los valores cuadrados es 1 para cada fila y para cada columna.
Hasta ahora, he encontrado una manera de lograr esto: simplemente inicialice los elementos de la matriz al azar (por ejemplo, desde una distribución uniforme, normal o laplace con media cero y varianza arbitraria), luego normalice alternativamente filas y columnas a , terminando con la normalización de fila. Esto parece converger al resultado deseado con bastante rapidez (por ejemplo, para y , la varianza de la longitud de la columna es típicamente ~ después de iteraciones), pero no estoy seguro si puedo depender de esta rápida tasa de convergencia en general (para varias dimensiones de matriz y distribuciones de elementos iniciales).
Mi pregunta es esta: ¿hay alguna manera de lograr el resultado deseado ( , ) directamente sin iterar entre normalización de fila / columna? Por ejemplo, algo así como el algoritmo para normalizar un vector aleatorio (inicializar elementos aleatoriamente, medir la suma de valores cuadrados, luego escalar cada elemento por un escalar común). Si no, ¿hay una caracterización simple para la tasa de convergencia (por ejemplo, iteraciones numéricas hasta el error ) del método iterativo descrito anteriormente?