Implementación del método Jacobi-Davidson para el problema del valor propio cúbico


9

Tengo un gran problema de valor propio cúbico:

(UNA0 0+λUNA1+λ2UNA2+λ3UNA3)X=0.

Podría resolver esto convirtiendo a un problema de valor propio lineal, pero daría como resultado un sistema tan grande:32

[-UNA0 00 00 00 0yo0 00 00 0yo][Xyz]=λ[UNA1UNA2UNA3yo0 00 00 0yo0 0][Xyz],

donde y . ¿Qué otras técnicas están disponibles para resolver un problema de valor propio cúbico? He oído que hay una versión de Jacobi-Davidson que lo resolverá, pero no he encontrado una implementación.y=λXz=λy

Además, necesito poder apuntar a valores propios específicos de manera similar al método shift-and-invert de ARPACK y encontrar los vectores propios asociados.


¿Cuáles son las dimensiones de las matrices involucradas?
Bill Barth

UNAyo es orden . Tengo dos formulaciones diferentes de este problema, una en la que es densa y en la otra es escasa. 10000×10000UNAyo
OSE

1
SLEPc tiene rutinas para problemas de valores propios cuadráticos y problemas de valores propios no lineales, por lo que puede encontrar lo que necesita allí. También cuenta con instalaciones de cambio e inversión, y tiene una interfaz para ARPACK.
Geoff Oxberry

Respuestas:


5

Con el protocolo de comunicación inversa de ARPACK, no necesita almacenar la matriz explícitamente: solo necesita proporcionar dos funciones que calculen:3norte×3norte

[Xyz][-UNA0 0Xyz] y [Xyz][UNA1X+UNA2y+UNA3zyz]

(todavía paga el precio de almacenar los vectores dimensionales pero no paga nada por las matrices).3×norte

Con respecto a la transformación invertida, puede hacer lo mismo, es decir, implementarla usted mismo utilizando una devolución de llamada que calcule lugar de y reemplace los calculados con . Para calcular , puede prefabricar su matriz , lo que significa solo prefabricar (usando LU, Cholesky o versiones dispersas de ellos dependiendo de la estructura de la matriz). Para la transformación completa shift-invert, creo que se puede hacer algo similar.XMETRO-1XXMETROXλsλ-1METRO-1XMETROUNA0 0

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.