Pregunta:
Pregunta
¿Hay bibliotecas que implementen métodos subespaciales de Krylov en bloque? (No pude encontrar ninguno con una simple búsqueda en Google).
Fondo
En este momento, estoy trabajando con un código que resuelve varios sistemas de la forma
\ begin {align} Ax_ {i} = b_ {i}, \ end {align}
donde $ A $ es $ n $ por $ n $, $ i = 1, \ ldots, m $ y, en general, $ n \ gg m $ ($ n $ es al menos 10 veces mayor que $ m $, y podrían ser varios órdenes de magnitud superiores a $ m $). Además, $ A $ es lo suficientemente grande como para que sean preferibles los métodos iterativos.
Actualmente, el código resuelve $ Ax_ {i} = b_ {i} $ con un método de subespacio de Krylov para cada lado derecho separado con un precondicionador dado, y este enfoque parece funcionar bastante bien. (El código también recalcula el preacondicionador, lo cual es innecesario).
Para acelerar el código, parece que podría valer la pena buscar una solución
\ begin {align} AX = B \ end {align}
en cambio, donde $ B = [b_ {1} \, b_ {2} \, \ ldots \, b_ {m}] $ es una matriz de $ n $ por $ m $ que reúne todos los $ b_ {i} $ , y $ X $ también es una matriz de $ n $ por $ m $ que reúne los $ x_ {i} $.
Me gustaría probar la resolución de $ AX = B $ con los métodos del subespacio de Krylov en bloque (usando el mismo precondicionador que antes) para ver si supera el enfoque actual de resolver $ Ax_ {i} = b_ {i} $ y realizar un bucle $ i $. Es posible e improbable que la solución de $ Ax_ {i} = b_ {i} $ pueda usarse como una suposición para el sistema $ Ax_ {j} = b_ {j} $ para $ i \ neq j $; No espero que haya una relación entre los distintos sistemas.
Respuesta:
Aquí hay al menos una respuesta parcial, después de unas horas de búsqueda:
Hay una implementación de métodos subespaciales de bloque Krylov enterrados dentro del paquete Belos de Trilinos que contiene:
- Bloque CG
- Bloquear GMRES
- Bloque GMRES flexible
- Bloque GCRODR (reciclaje de bloques GMRES)
Supuestamente, existen implementaciones de MATLAB de algunos de estos métodos, pero aún no los he encontrado.