cholupdate
Atualização ou desatualização de posto um de um fator de Cholesky.
Categoria: Mathematics > Linear Algebra
Sintaxe
R1 = cholupdate(R, x)
Retorna o fator de Cholesky de R'*R + x*x'.
R1 = cholupdate(R, x, '-')
Retorna o fator de R'*R - x*x' (uma desatualização).
Descrição
Quando uma matriz muda por um termo de posto um, recalcular seu fator de Cholesky do zero custa da ordem de n^3 operações. cholupdate obtém o novo fator a partir do antigo com rotações planas em ordem de n^2 operações, o que compensa em algoritmos que incorporam uma amostra de cada vez.
A desatualização só é possível quando o resultado continua positivo definido; caso contrário, é gerado um erro.
Argumentos de entrada
R- Fator de Cholesky triangular superior.
x- Vetor coluna com
size(R,1)elementos. '-'- Seleciona a desatualização. O sinal padrão é
'+'.
Argumentos de saída
R1- Fator triangular superior atualizado.
Exemplo
Somando x*x' a A = R'*R
A = [4 2; 2 3];
R = chol(A);
x = [1; 1];
R1 = cholupdate(R, x)
disp(norm(R1'*R1 - (A + x*x')) < 1e-12)
Saída
R1 = 2×2
2.2361 1.3416
0 1.4832
1