Враховуючи тридіагональну лінійну систему SPD, чи можемо ми обчислити так, що будь-які три індекси можна зв’язати за O (1) час?


11

Розглянемо симетричну позитивну певну тридіагональну лінійну систему де A ∈ R n × n і b ∈ R n . З огляду на три індекси 0 ≤ i < j < k < n , якщо вважати лише рядки рівняння строго між i і k утримувати, ми можемо усунути проміжні змінні, щоб отримати рівняння виду u x i + v x j + w x k = c

Ax=b
A∈Rn×nb∈Rn0≤i<j<k<nik
uxi+vxj+wxk=c
де . Це рівняння пов'язує значення x j до x i , x k незалежно від впливу "зовні" (скажімо, якщо було введено обмеження, що впливає на x 0 ).v>0xjxi,xkx0

Запитання : Чи можна попередньо обробити лінійну систему за O ( n ) час, щоб рівняння зв’язку для будь-якого ( i , j , k ) можна було визначити за O ( 1 ) час?Ax=bO(n)(i,j,k)O(1)

Якщо діагональ дорівнює 2, а позадіагоналі - 1 , а b = 0 , бажаний результат - аналітичний результат для дискретизованого рівняння Пуассона. На жаль, неможливо перетворити загальну тридіагональну систему SPD в постійний коефіцієнт рівняння Пуассона без порушення тридіагональної структури, по суті тому, що різні змінні можуть мати різний рівень "скринінгу" (локально сувора позитивна визначеність). Наприклад, просте діагональне масштабування x може усунути половину 2 n - 1 DOF з A, а не іншу половину.A−1b=0x2n−1A

Інтуїтивно зрозуміло, що для вирішення цієї проблеми потрібно буде впорядкувати проблему, щоб кількість скринінгу могла бути акумульована в масив лінійних розмірів, а потім якось "скасована", щоб дійти до рівняння посилання для даної трійки.

O(n)O(1)

Відповіді:


2

b=0n(0,i,n−1)0≤i<n

xi=aix0+bixn−1

i<jijxn−1

bjxi=aibjx0+bibjxn−1bixj=ajbix0+bibjxn−1bjxi−bixj=(aibj−ajbi)x0xi=aibj−ajbibjx0+bibjxj

x0(i,j,k)bj=0bj=0


Реалізувавши це, я можу підтвердити, що (1) він працює в точній арифметиці і (2) є надзвичайно нестабільним. Інтуїтивно таке рішення робить купу екстраполяції експоненціальних функцій, що порушує приємний інтерполяційний характер еліптичних проблем.
— Джеффрі Ірвінг

bj≈0nlog⁡n

O(n)O(log⁡n)

2

Цікаво, чи можна було б зробити щось корисне за допомогою циклічної редукції факторизації розміру A (яка, я вважаю, все ще розмір O (n)), повторно використовуючи стільки блоків, які залишаться незмінними, коли розбиваємо на суміжну головну підматрицю А. Я сумніваюся він дає вам O (1), але, можливо, O (log n) ...


O(log⁡n)

Жоден шанс амортизації не допоможе вам?
— Роберт Брідсон

Існує багато інших амортизацій, тому це цілком можливо. Не знаю, як ще.
— Джеффрі Ірвінг

Це те, що мені потрібно амортизувати за рахунок витрат: cstheory.stackexchange.com/questions/18655/… .
— Джеффрі Ірвінг

Чудово! Хтось опублікував чудове рішення на це питання про теоретичні питання, тому мені відповідь на це питання більше не потрібна. Операція множення напівгрупи в цьому питанні усуває проміжну змінну.
— Джеффрі Ірвінг

1

Ось ще одна спроба, яка більш стабільна, ніж метод скасування, але все ще не дуже хороша.

AB=A−1

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

i≤jbidi,δiULLUAi<j<k

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

ikik2×2

[1]: Джерард Меран (1992), "Огляд на звороті симетричних діагональних і блокових тридіагональних матриць".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.