Орієнтовний спектр великої матриці


14

Я хочу обчислити спектр ( усі власні значення) великої розрідженої матриці (сотні тисяч рядків). Це важко.

Я готовий погодитися на наближення. Чи є методи наближення для цього?

Хоча я сподіваюся на загальну відповідь на це питання, я також був би задоволений відповіддю в наступному конкретному випадку. Моя матриця - це нормований лаплаціан великого графа. Власні значення будуть становити від 0 до 2, велика кількість згрупованих навколо 1.


Матриця розріджена або щільна?
Арон Ахмадія

Матриця розріджена. Я відредагував питання, щоб це відобразити.
MRocklin

Чому ви хочете всіх власних цінностей? Це майже повсюдно погано, що потрібно робити, коли у вас є розріджена або структурована матриця, тому важливо знати, як ви плануєте її використовувати.
Джед Браун

Спектр графіка лаплаціана містить деяку важливу інформацію, яку я хотів би ознайомити. Мені вони не потрібні, я просто мушу приблизно знати, де вони знаходяться.
MRocklin

Відповіді:


15

Якщо ваш графік є непрямим (як я підозрюю), матриця симетрична, і ви не можете зробити нічого кращого, ніж алгоритм Ланчсоса (з селективною реортогоналізацією, якщо це потрібно для стабільності). Оскільки повний спектр складається з 100000 чисел, я думаю, вас цікавить головна спектральна щільність.

Щоб отримати приблизну спектральну щільність, візьміть спектр провідного підпростору Крилова розміром 100 або близько того і замініть його дискретну щільність згладженою версією.

Провідний спектр Крилова буде майже вирішеним добре відокремленими власними значеннями (якщо вони існуватимуть), наближає власні значення в кінці спектру неізолятів і є дещо випадковим між ними, з розподілом, кумулятивна функція розподілу якого нагадує справжній спектр . Він би сходився до нього в точній арифметиці, якщо розмірність зростатиме. (Якби ваш оператор був нескінченномірним, це все одно було б, і ви отримаєте інтеграл справжньої функції спектральної щільності на безперервному спектрі.)


Чи не буде спектр провідного підпростору Крилова просто 100 найбільших власних значень? Мене також цікавить розподіл середніх та найменших власних значень.
MRocklin

1
@MRocklin: Ні. Я доповнив свою відповідь, щоб дати більше деталей.
Арнольд Ноймаєр

6

Відповідь Арнольда Ноймаєра більш детально обговорюється в розділі 3.2 статті "Апроксимація спектральної щільності великих матриць" Лін Лін, Юсеф Саад та Чао Ян (2016) .

Також обговорюються деякі інші методи, але числовий аналіз в кінці статті показує, що метод Ланцоса перевершує ці варіанти.


4

Якщо ви все гаразд, думаючи про речі, які не є власними значеннями, а функціями, які в певному сенсі все-таки розповідають вам про спектр, то я думаю, ви повинні перевірити деякі роботи Марка Ембре в університеті Райса.


2

Ось ще один спосіб охарактеризувати спектр.

Avk=λkvkA

S(ω)=kπ1σσ2+(λkω)2=σπTr[σ2+(ωA)2]1
S(ω)=σπzT[σ2+(ωA)2]1z
z+11σω[σ2+(ωA)2]1z[ω+iσA]1[ωiσA]1S(ω) також для великих матриць. На практиці, здається, що рішення CG не потрібно бути дуже точним, а також не потрібно багато векторів для обчислення середнього. Це може залежати від проблеми.

ω , а не на зворотному відстані до найближчого власного значення.

ω


0

Дивіться статтю "Про приблизну спектральну декомпозицію на основі вибірки" Санджива Кумара, Мегряра Мохрі та Амета Талвалкара (ICML 2009). Він використовує вибірку стовпців вашої матриці.

Оскільки ваша матриця симетрична, вам слід зробити наступне:

Нехай A - ваша матриця n * n. Ви хочете зменшити обчислення власних значень матриці n * n до обчислення власних значень матриці k * k. Спочатку виберіть значення k. Скажімо, ви обираєте k = 500, оскільки ви можете легко обчислити власні значення матриці 500 * 500. Тоді випадковим чином вибираємо k стовпців матриці A. Введіть матрицю B, що зберігає лише ці стовпці, і відповідні рядки.

B = A (x, x) для випадкової множини k індексів x

B тепер матриця ak * k. Обчисліть власні значення B і помножте їх на (n / k). Тепер у вас є k значень, приблизно розподілених як n власних значень А. Зауважте, що ви отримуєте лише k значень, а не n, але їх розподіл буде правильним (аж до того, що вони є наближенням).


-1

Ви завжди можете використовувати межі теореми кола Гершгоріна для наближення власних значень.

Якщо позадіагональні доданки невеликі, сама діагональ - це гарне наближення спектру. В іншому випадку, якщо ви закінчите наближення власного простору (іншими методами), ви можете спробувати висловити діагональні записи в цій системі. Це призведе до матриці з меншими позадіагональними членами, а нова діагональ стане кращим наближенням спектру.


Гершгорінг не дає апророксимацій, а меж помилок, тому тут не має значення. Більше того, використання вашого методу на розрідженій матриці вимагало б щільної власної векторної матриці, яку неможливо зберігати для проблеми ОП.
Арнольд Ноймаєр

Як я вже говорив, діагональ сама по собі є наближенням спектру до меж помилок, заданих теоремою кола Гершгоріна, звичайно, межі помилок Гершгоріна - це не наближення. Діагональ буде хорошим наближенням, якщо позадіагональні доданки невеликі, що я вважаю, що це так, оскільки ОП сказав, що матриця є рідкою.
FKaria

5
Більшість розріджених матриць, що виникають на практиці, мають деякі значні позадіагональні елементи у кожному рядку та стовпці, що робить діагоналі дуже поганими наближеннями (наприклад, для Лаплаціана звичайного графіка діагональ є постійною), а межі помилок марні.
Арнольд Ноймаєр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.