Étant donné un système linéaire tridiagonal SPD, pouvons-nous précalculer de sorte que trois indices quelconques puissent être liés en temps O (1)?


11

Considérons un système linéaire tridiagonal défini symétrique positif où et . Étant donné trois indices , si nous supposons uniquement des lignes d'équation strictement entre et tenir, nous pouvons éliminer les variables intermédiaires pour obtenir une équation de la forme où . Cette équation relie la valeur de à indépendamment de l'influence "extérieure" (par exemple, si une contrainte affectant été introduite).A R n × n b R n 0 i < j < k < n i k u x i + v x j + w x k = c v > 0 x j x i , x k x 0

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

Question : Est-il possible de prétraiter le système linéaire en temps afin que l'équation de liaison pour tout puisse être déterminée en temps ?O ( n ) ( i , j , k ) O ( 1 )Ax=bO(n)(i,j,k)O(1)

Si la diagonale de est 2, les diagonales décalées sont et , le résultat souhaité est le résultat analytique pour l'équation de Poisson discrétisée. Malheureusement, il n'est pas possible de transformer un système tridiagonal SPD général en une équation de Poisson à coefficient constant sans casser la structure tridiagonale, essentiellement parce que différentes variables peuvent avoir différents niveaux de "dépistage" (définition positive localement stricte). Une simple mise à l'échelle diagonale de , par exemple, peut éliminer la moitié des DOF de mais pas l'autre moitié.- 1 b = 0 x 2 n - 1 AA1b=0x2n1A

Intuitivement, une solution à ce problème nécessiterait d'arranger le problème de sorte que la quantité de criblage puisse être accumulée dans un tableau de taille linéaire puis "annulée" pour arriver à l'équation de liaison pour le triple donné.

Mise à jour (plus d'intuition) : En termes de PDE, j'ai un problème elliptique linéaire discrétisé dans 1D, et je veux savoir si je peux dépenser en précalcul pour produire une sorte de solution "analytique" qui peut être recherchée en temps , où je suis autorisé à varier où les conditions aux limites sont.O ( 1 )O(n)O(1)

Réponses:


2

Voici une solution quelque peu instable qui ne fonctionne que lorsque le couplage entre variables est toujours non dégénéré. Supposons pour simplifier que . Premièrement, pré-calculer les équations de liaison pour pour , disonsb=0n(0,i,n1)0i<n

xi=aix0+bixn1

Maintenant, étant donné , nous pouvons combiner les ème et ème équations de liaison et éliminer pour obteniri<jijxn1

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

Ce processus peut être répété une fois de plus pour éliminer donné . Malheureusement, nous perdons la stabilité près de , ou en général si le système tridiagonal se dissocie en blocs indépendants. Si ce n'est pas un problème, mais je m'inquiète de la ventilation des valeurs minuscules mais positives.x0(i,j,k)bj=0bj=0


Après avoir implémenté cela, je peux confirmer que (1) cela fonctionne en arithmétique exacte et (2) il est extrêmement instable. Intuitivement, cette solution fait un tas d'extrapolation de fonctions exponentielles, ce qui brise le joli caractère interpolatoire des problèmes elliptiques.
Geoffrey Irving

Il semble que votre approche consiste à précalculer quelque chose comme la fonction de Green pour tous les indices internes. Il n'est donc pas surprenant que vous rencontriez des problèmes lorsque , car les informations sur les valeurs limites peuvent difficilement se propager vers le point d'intérêt. Je ne pense pas qu'il y aurait un moyen général de contourner cela. Il semble que vous feriez mieux de créer une structure arborescente (c'est peut-être un effort de pré-calcul ) qui vous permet d'obtenir la fonction de Green pour les sous-sections du domaine afin de contourner les points chauds potentiels. bj0nlogn
Victor Liu

La version arborescente est précalcul plus par triple. Malheureusement, je recherche spécifiquement des solutions temporelles linéaires. O(n)O(logn)
Geoffrey Irving

2

Je me demande si vous pourriez faire quelque chose d'utile avec une factorisation de réduction cyclique de A (qui, je crois, est toujours de taille O (n)), en réutilisant autant de blocs qui resteraient inchangés lors de la factorisation d'une sous-matrice principale contiguë de A. Je doute cela vous donne O (1), mais peut-être O (log n) ...


Oui, la solution est immédiate, mais rompt malheureusement le titre de papier souhaité ("Un solveur direct temporel linéaire pour les programmes quadratiques tridiagonaux convexes avec des contraintes liées"). O(logn)
Geoffrey Irving

Aucune chance d'amortissement pour vous aider?
Robert Bridson du

Il y a beaucoup d'autres amortissements en cours, donc c'est tout à fait possible. Mais je ne sais pas encore comment.
Geoffrey Irving

C'est ce dont j'aurais besoin pour amortir le coût: cstheory.stackexchange.com/questions/18655/… .
Geoffrey Irving

Génial! Quelqu'un a posté une merveilleuse solution à cette question de théorie, donc je ne devrais plus avoir besoin de la réponse à cette question. L'opération de multiplication de semi-groupe dans cette question élimine une variable intermédiaire.
Geoffrey Irving

1

Voici une autre tentative, qui est plus stable que la méthode d'annulation mais qui n'est toujours pas très bonne.

Si est une matrice tridiagonale SPD, Meurant [1] donne la formule stable suivante pour les entrées deAB=A1

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

où , sont les entrées négatives non diagonaux et sont dérivés d' et factorisations de . La formule de liaison pour a la formeb i d i , δ i U L L U A i < j < kijbidi,δiULLUAi<j<k

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

Malheureusement, cette formule reste instable. Intuitivement, si et sont raisonnablement proches, une source delta en est similaire à une en , et la matrice inversée est proche du singulier.k i k 2 × 2ikik2×2

[1]: Gerard Meurant (1992), "A review on the inverse of symmetric diagonal and block tridiagonal matrices".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.