Враховуючи тридіагональну лінійну систему 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
ARn×nbRn0i<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, а не іншу половину.A1b=0x2n1A

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

O(n)O(1)

Відповіді:


2

b=0n(0,i,n1)0i<n

xi=aix0+bixn1

i<jijxn1

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

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


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

bj0nlogn

O(n)O(logn)

2

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


O(logn)

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

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

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

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

1

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

AB=A1

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

ijbidi,δiULLUAi<j<k

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

ikik2×2

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

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