Cálculo / estimativa rápidos de um sistema linear de baixo escalão


10

Os sistemas lineares de equações são difundidos nas estatísticas computacionais. Um sistema especial que encontrei (por exemplo, na análise fatorial) é o sistema

Ax=b

onde Aqui é uma matriz diagonal com uma diagonal estritamente positiva, é uma matriz semi-definida positiva simétrica (com ) e é uma matriz arbitrária . Somos solicitados a resolver um sistema linear diagonal (fácil) que foi perturbado por uma matriz de baixo escalão. A maneira ingênua de resolver o problema acima é inverter usando a fórmula de Woodbury . No entanto, isso não parece certo, pois as fatorações de Cholesky e QR geralmente podem acelerar drasticamente a solução de sistemas lineares (e equações normais). Eu vim recentemente no D n × n Ω m × m m n B n × m A

A=D+BΩBT
Dn×nΩm×mmnBn×mANo artigo seguinte , isso parece adotar a abordagem de Cholesky e menciona a instabilidade numérica da inversão de Woodbury. No entanto, o artigo parece em rascunho e não consegui encontrar experimentos numéricos ou pesquisas de apoio. Qual é o estado da arte para resolver o problema que descrevi?

11
@ gappy, você considerou usar a decomposição QR (ou Cholesky) para matriz (o termo do meio na fórmula de Woodburry)? As operações restantes são multiplicações simples de matriz. A principal fonte de instabilidade é o cálculo de . Desde eu suspeita que este pedido de QR ou de Cholesky combinado com Woodbury será mais rápido do que QR em toda matriz . É claro que isso não é um estado da arte, apenas observações gerais. Ω - 1 m < < n AΩ1+BD1BTΩ1m<<nA
mpiktas

Eu suspeito que o que Matthias Seeger defende está dentro do estado da arte, ele é um cara muito brilhante e esses tipos de problemas surgem repetidamente no tipo de modelos que ele investiga. Eu uso métodos baseados em Cholesky pelas mesmas razões. Suspeito que exista uma discussão em "Matrix Computations" de Golub e Van Loan, que é a referência padrão para esse tipo de coisa (embora eu não tenha minha cópia em mãos). ϵ
Dikran Marsupial

Observe que, ao tomar seu problema é equivalente à solução do sistema onde . Então, isso simplifica um pouco o problema. Agora, deixando , sabemos que é semidefinido positivo com no máximo valores próprios positivos. Como , encontrar os maiores valores próprios e os vetores próprios correspondentes pode ser feito de várias maneiras. A solução é então onde fornece a composição automática de(I+ ˉ B ohms ˉ B T)x= ˉ b ˉ b =D-1/2bΣ= ˉ B ohms ˉ B TΣmm«nmx=Q(I+Λ)-1QT ˉ b ΣB¯=D1/2B(I+B¯ΩB¯T)x=b¯b¯=D1/2bΣ=B¯ΩB¯TΣmmnmx=Q(I+Λ)1QTb¯ ΣΣ=QΛQTΣ.
cardeal

Pequenas correções: (1) O sistema equivalente é e (2) A solução final é . (Eu coloquei um na frente de nos dois casos.) Observe que todos os inversos são de matrizes diagonais e, portanto, são triviais. x = D - 1 / 2 Q ( I + Λ ) - 1 Q T D - 1 / 2 b D 1 / 2 x(I+B¯ΩB¯T)D1/2x=b¯x=D1/2Q(I+Λ)1QTD1/2bD1/2x
cardinal

@mpiktas: Eu acho que você quis dizer pois na versão que você escreveu o produto da matriz não está bem definido devido a uma incompatibilidade de dimensão. :)Ω1+BTD1B
cardeal

Respostas:


2

"Matrix Computations" de Golub & van Loan tem uma discussão detalhada no capítulo 12.5.1 sobre a atualização de fatorações QR e Cholesky após atualizações no rank-p.


Eu sei, e as funções relevantes do lapack são mencionadas no artigo que vinculei e no livro. Gostaria de saber, no entanto, qual é a melhor prática para o problema em questão, não para o problema genérico de atualização.
gappy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.