Dato un sistema lineare tridiagonale SPD, possiamo precompilare in modo che tre o tre indici possano essere collegati nel tempo O (1)?


11

Si consideri un simmetrica definita positiva sistema lineare tridiagonale dove e . Dati tre indici , se assumiamo solo righe di equazioni strettamente tra e hold, possiamo eliminare le variabili intermedie per ottenere un'equazione della forma dove . Questa equazione mette in relazione il valore di con indipendentemente dall'influenza "esterna" (diciamo, se è stato introdotto un vincolo che influenza ).

Ax=b
ARn×nbRn0i<j<k<nik
uxi+vxj+wxk=c
v>0xjxi,xkx0

Domanda : È possibile preelaborare il sistema lineare nel tempo modo che l'equazione di collegamento per qualsiasi possa essere determinata nel tempo ?Ax=bO(n)(i,j,k)O(1)

Se la diagonale di è 2, le diagonali esterne sono e , il risultato desiderato è il risultato analitico dell'equazione di Poisson discretizzata. Sfortunatamente, non è possibile trasformare un sistema tridiagonale SPD generale in un'equazione di Poisson a coefficiente costante senza rompere la struttura tridiagonale, essenzialmente perché variabili diverse possono avere diversi livelli di "screening" (definizione positiva localmente rigorosa). Un semplice ridimensionamento diagonale di , ad esempio, può eliminare metà dei DOF di ma non l'altra metà.A1b=0x2n1A

Intuitivamente, una soluzione a questo problema richiederebbe di organizzare il problema in modo che la quantità di schermatura possa essere accumulata in un array di dimensioni lineari e quindi in qualche modo "annullata" per arrivare all'equazione di collegamento per il triplo dato.

Aggiornamento (più intuizione) : in termini di PDE, ho un problema ellittico lineare discretizzato in 1D e voglio sapere se posso spendere in pre-calcolo per produrre una sorta di soluzione "analitica" che può essere cercata in tempo, dove mi è permesso di variare dove sono le condizioni al contorno.O(n)O(1)

Risposte:


2

Ecco una soluzione alquanto instabile che funziona solo quando l'accoppiamento tra variabili è sempre non rigenerato. Supponiamo per semplicità che . Innanzitutto, pre-calcola le equazioni di collegamento per per , ad esempiob=0n(0,i,n1)0i<n

xi=aix0+bixn1

Ora, dato , possiamo combinare le equazioni di collegamento e ed eliminare per ottenerei<jijxn1

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

Questo processo può essere ripetuto ancora una volta per eliminare datox0(i,j,k)bj=0bj=0


Dopo averlo implementato, posso confermare che (1) funziona esattamente nell'aritmetica e (2) è estremamente instabile. Intuitivamente, questa soluzione esegue una serie di estrapolazioni di funzioni esponenziali, che spezzano il simpatico carattere interpolatorio dei problemi ellittici.
Geoffrey Irving,

bj0nlogn

O(n)O(logn)

2

Mi chiedo se potresti fare qualcosa di utile con una fattorizzazione a riduzione ciclica di A (che ritengo sia ancora dimensione O (n)), riutilizzando la maggior parte dei blocchi che rimarrebbero invariati quando si considera un fattore secondario contiguo di A. Dubito ti dà O (1), ma forse O (log n) ...


O(logn)

Nessuna possibilità di ammortamento per aiutarti?
Robert Bridson,

Ci sono molti altri ammortamenti in corso, quindi è del tutto possibile. Non so ancora, comunque.
Geoffrey Irving,

Questo è ciò di cui avrei bisogno per ammortizzare il costo: cstheory.stackexchange.com/questions/18655/… .
Geoffrey Irving,

Grande! Qualcuno ha pubblicato una soluzione meravigliosa a quella domanda, quindi non avrei più bisogno della risposta a questa domanda. L'operazione di moltiplicazione del semigruppo in quella domanda sta eliminando una variabile intermedia.
Geoffrey Irving,

1

Ecco un altro tentativo, che è più stabile del metodo di cancellazione ma non è ancora molto buono.

AB=A1

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

ijbidi,δiULLUAi<j<k

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

ikik2×2

[1]: Gerard Meurant (1992), "Una rassegna sull'inverso delle matrici simmetriche diagonali e tridimensionali a blocchi".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.