é umamatriz esparsa n × n simétrica positiva positiva definida (SPD). G é uma matriz diagonal esparsa. n é grande ( > 10000) e o número de não-zeros no G é geralmente 100 ~ 1000.
foi fatorado na forma cholesky como .
Como atualizar e D com eficiência quando A se torna ?
Respostas:
A versão mais recente do pacote CHOLMOD SuiteSparse (beta 4.4.5) suporta a modificação de uma linha / coluna simétrica (atualização do rank2) para decomposiçãoL D LT , usando uma API matlab (e C). Eu usei com sucesso em um dos meus projetos.
Você pode usá-lo para fazer atualizaçõesn n z( G ) na fatoração. É baseado neste artigo.
Portanto, a complexidade seráO (n n z( G ) ∗ n n z( L ) ) . Onde n nz( L ) pode ser reduzido significativamente ao usar uma permutação de redução de preenchimento para um A esparsoUMA
O pacote pode ser baixado aqui
Abaixo estão algumas notas que o proprietário do pacote deu (Prof. Tim Davis):
API:
Complexidade:
Permutação de redução de preenchimento:
fonte