Preciso gerar matrizes não quadradas aleatórias com linhas e colunas , elementos distribuídos aleatoriamente com média = 0 e restritos de forma que o comprimento (norma L2) de cada linha seja e o comprimento de cada coluna seja . Equivalentemente, a soma dos valores quadrados é 1 para cada linha e para cada coluna.C 1 √ R
Até agora, encontrei uma maneira de conseguir isso: simplesmente inicialize os elementos da matriz aleatoriamente (por exemplo, a partir de uma distribuição uniforme, normal ou laplace com média zero e variação arbitrária) e normalize alternadamente linhas e colunas com , terminando com normalização de linha. Isso parece convergir rapidamente para o resultado desejado (por exemplo, para e , a variação do comprimento da coluna é tipicamente ~ após iterações), mas não tenho certeza se posso depender dessa taxa de convergência rápida em geral (para várias dimensões da matriz e distribuições de elementos iniciais).R = 40 C = 80 0,00001 2
Minha pergunta é a seguinte: existe uma maneira de alcançar o resultado desejado ( , ) diretamente sem iterar entre normalização de linha / coluna? Por exemplo, algo como o algoritmo para normalizar um vetor aleatório (inicialize elementos aleatoriamente, meça a soma dos valores quadrados e depois dimensione cada elemento por um escalar comum). Caso contrário, existe uma caracterização simples para a taxa de convergência (por exemplo, número de iterações até erro ) do método iterativo descrito acima?c o l u m n l e n g t h s = √ <ϵ