Tengo un gran problema de valor propio cúbico:
Podría resolver esto convirtiendo a un problema de valor propio lineal, pero daría como resultado un sistema tan grande:
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.
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.
Respuestas:
Con el protocolo de comunicación inversa de ARPACK, no necesita almacenar la matriz explícitamente: solo necesita proporcionar dos funciones que calculen:3 n × 3 n
(todavía paga el precio de almacenar los vectores dimensionales pero no paga nada por las matrices).3 × n
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.x ↦ M- 1X x ↦ MX λ′s λ- 1 METRO- 1X METRO UNA0 0
fuente