svdappend
Atualiza uma SVD existente depois que colunas ou linhas são acrescentadas à matriz.
Categoria: Mathematics > Linear Algebra
Sintaxe
S1 = svdappend(U, S, V, D)
Retorna os valores singulares de [U*S*V' D].
[U1, S1, V1] = svdappend(U, S, V, D)
Retorna os fatores de tamanho econômico da matriz ampliada.
___ = svdappend(U, S, V, D, 'Shape', 'rows')
Acrescenta as linhas de D abaixo da matriz em vez de colunas ao lado.
Descrição
Quando os dados chegam em lotes, é desperdício decompor a matriz inteira de novo a cada vez. svdappend parte dos fatores que você já tem e devolve a SVD econômica da matriz com os novos dados anexados, um atalho prático para o padrão usual de atualização.
O resultado é o mesmo, a menos de sinais, que chamar svd diretamente em [U*S*V' D].
Argumentos de entrada
U, S, V- Fatores de uma SVD existente;
Spode ser uma matriz ou um vetor de valores singulares. D- Novas colunas (ou linhas) a acrescentar. Precisa ter tantas linhas quanto
U(ou tantas colunas quantoVtem linhas, com a opção de linhas). 'Shape''columns'(padrão) ou'rows'.
Argumentos de saída
S1- Com uma saída, o vetor de valores singulares da matriz ampliada.
U1, V1- Vetores singulares da matriz ampliada.
Exemplo
Acrescentar uma coluna
A = magic(3);
[U, S, V] = svd(A, 'econ');
d = [1; 2; 3];
s1 = svdappend(U, S, V, d)'
s2 = svd([A d])'
Saída
s1 = 1×3
15.3990 7.0620 3.4641
s2 = 1×3
15.3990 7.0620 3.4641
Observações
No MatLivre, com várias saídas S1 volta como vetor coluna de valores singulares, não como matriz diagonal.