Впровадження методу Якобі-Девідсона для кубічної задачі про власне значення


9

У мене є велика проблема кубічного власного значення:

(A0+λA1+λ2A2+λ3A3)x=0.

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

[A0000I000I][xyz]=λ[A1A2A3I000I0][xyz],

де і . Які ще існують методи вирішення кубічної проблеми власного значення? Я чув, що існує версія Якобі-Девідсона, яка вирішить її, але не знайшла реалізації.y=λxz=λy

Крім того, мені потрібно вміти орієнтуватись на конкретні власні значення аналогічно методу ARPACK зсуву та інвертування та знаходити пов'язані з ним власні вектори.


Які розміри матриць задіяні?
Білл Барт

Ai це порядок 10000×10000. У мене є дві різні постановки цієї проблеми, одна в якійAiщільна, а в іншій - розріджена.
OSE

1
SLEPc має підпрограми для квадратичних задач власного значення та нелінійних задач власного значення, тому ви, можливо, зможете знайти те, що вам потрібно. Він також має зрушення та перетворення об'єктів та має інтерфейс до ARPACK.
Джефф Оксберрі

Відповіді:


5

З протоколом зворотного зв'язку ARPACK зберігати його не потрібно 3n×3n матриця явно: вам просто потрібно надати дві функції, які обчислюють:

[xyz][A0xyz] і [xyz][A1x+A2y+A3zyz]

(ви все одно платите ціну зберігання 3×n-вимірні вектори, але ви нічого не платите за матриці).

Що стосується інверсного перетворення, ви можете зробити те саме, тобто реалізувати його самостійно, використовуючи зворотний виклик, який обчислює xM1x замість xMx і замінити обчислені λs з λ1. Для обчисленняM1x, ви можете заздалегідь розмістити матрицю M, що означає лише попередній факторинг A0(з використанням LU, Cholesky або розріджених їх версій залежно від структури матриці). Для повного перетворення зсуву-перетворення я думаю, що щось подібне можна зробити.

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