Dado um sistema linear tridiagonal do SPD, podemos pré-calcular para que quaisquer três índices possam ser vinculados no tempo O (1)?

11

Considere um simétrica definida positiva tridiagonal sistema linear , onde A R N x N e b R n . Dados três índices 0 i < j < k < n , se assumirmos apenas linhas da equação estritamente entre i e k reter, podemos eliminar variáveis ​​intermediárias para obter uma equação da forma u x i + v x j + w x k = c

Ax=b
ARn×nbRn0i<j<k<nik
uxi+vxj+wxk=c
onde . Esta equação refere-se o valor de x j a x i , x k independente da influência "fora" (dizer, se uma restrição que afectam x 0 foi introduzido).v>0xjxi,xkx0

Pergunta : É possível pré-processar o sistema linear no tempo O ( n ) para que a equação de ligação para qualquer ( i , j , k ) possa ser determinada no tempo O ( 1 ) ?Ax=bO(n)(i,j,k)O(1)

Se a diagonal de for 2, os offdiagonals são - 1 , e b = 0 , o resultado desejado é o resultado analítico para a equação de Poisson discretizado. Infelizmente, não é possível transformar um sistema tridiagonal geral do SPD em uma equação de Poisson de coeficiente constante sem quebrar a estrutura tridiagonal, essencialmente porque variáveis ​​diferentes podem ter diferentes níveis de "triagem" (definição positiva localmente estrita). Um simples dimensionamento diagonal de x , por exemplo, pode eliminar metade dos 2 n - 1 DOFs de A, mas não a outra metade.A1b=0x2n1A

Intuitivamente, uma solução para esse problema exigiria a organização do problema para que a quantidade de triagem pudesse ser acumulada em uma matriz de tamanho linear e, de alguma forma, "cancelada" para chegar à equação de ligação para o triplo dado.

Atualização (mais intuição) : Em termos de PDEs, tenho um problema elíptico linear discretizado em 1D e quero saber se posso gastar em pré-computação para produzir algum tipo de solução "analítica" que possa ser pesquisada no tempo O ( 1 ) , onde posso variar onde estão as condições de contorno.O(n)O(1)

Geoffrey Irving
fonte

Respostas:

2

Aqui está uma solução um tanto instável que só funciona quando o acoplamento entre variáveis ​​é sempre não-regenerado. Suponha, por simplicidade, que . Primeiro, pré-calcule as n equações de ligação para ( 0 , i , n - 1 ) para 0 i < n , digamosb=0n(0,i,n1)0i<n

xi=aix0+bixn1

Agora, dado , podemos combinar as equações de ligação i e j th e eliminar x n - 1 para obteri<jijxn1

bjxi=aibjx0+bibjxn1bixj=ajbix0+bibjxn1bjxibixj=(aibjajbi)x0xi=aibjajbibjx0+bibjxj

Este processo pode ser repetido mais uma vez para eliminar dado ( i , j , k ) . Infelizmente, perdemos estabilidade perto de b j = 0 , ou em geral se o sistema tridiagonal se dissociar em blocos independentes. Se b j = 0, isso não é problema, mas estou preocupado com a quebra de valores pequenos, mas positivos.x0(i,j,k)bj=0bj=0

Geoffrey Irving
fonte
Tendo implementado isso, posso confirmar que (1) funciona em aritmética exata e (2) é extremamente instável. Intuitivamente, essa solução faz várias extrapolações de funções exponenciais, o que quebra o bom caráter interpolatório dos problemas elípticos.
Geoffrey Irving
bj0nlogn
O(n)O(logn)
2

Gostaria de saber se você poderia fazer algo útil com uma fatoração de redução cíclica de A (que eu acredito que ainda é tamanho O (n)), reutilizando tantos blocos que permaneceriam inalterados ao calcular uma submatriz principal contígua de A. Duvido fornece O (1), mas talvez O (log n) ...

Robert Bridson
fonte
O(logn)
Sem chance de amortização ajudando você?
Robert Bridson
Há muitas outras amortizações em andamento, então é bem possível. Eu não sei ainda, no entanto.
Geoffrey Irving
É isso que eu precisaria para amortizar o custo: cstheory.stackexchange.com/questions/18655/… .
Geoffrey Irving
Ótimo! Alguém postou uma solução maravilhosa para essa questão histórica, então não preciso mais da resposta para essa pergunta. A operação de multiplicação de semigrupos nessa pergunta está eliminando uma variável intermediária.
Geoffrey Irving
1

Aqui está outra tentativa, mais estável que o método de cancelamento, mas ainda não muito boa.

AB=A1

Bij=bi+1bjdj+1dnδiδn

ijbidi,δiULLUAi<j<k

xj=(BjiBki)T(BiiBikBkiBkk)1(xixk)

ikik2×2

[1]: Gerard Meurant (1992), "Uma revisão sobre o inverso de matrizes diagonais simétricas e tridiagonais de blocos".

Geoffrey Irving
fonte