Para la solución de grandes sistemas lineales utilizando métodos iterativos, a menudo es interesante introducir el preacondicionamiento, por ejemplo, resolver M - 1 ( A x = b ) , donde M se usa aquí para el preacondicionamiento a la izquierda del sistema. Por lo general, deberíamos tener ese M - 1 ≈ A - 1 y proporcionar la base para (mucho más) solución eficiente o reducción de recursos computacionales (por ejemplo, almacenamiento de memoria) en comparación con la solución del sistema original (es decir, cuando M = A) Sin embargo, ¿qué pautas debemos utilizar para elegir el preacondicionador? ¿Cómo hacen esto los practicantes para su problema específico?
linear-algebra
iterative-method
preconditioning
Allan P. Engsig-Karup
fuente
fuente
Respuestas:
Originalmente no quería dar una respuesta porque esto merece un tratamiento muy largo, y espero que alguien más lo siga dando. Sin embargo, ciertamente puedo dar una breve descripción del enfoque recomendado:
Ejemplos de 3 son versiones laplacianas desplazadas de Helmholtz y el trabajo reciente de Jinchao Xu sobre el preacondicionamiento del operador biharmónico con laplacianos.
fuente
Otros ya han comentado sobre el tema del preacondicionamiento de lo que llamaré matrices "monolíticas", es decir, por ejemplo, la forma discretizada de una ecuación escalar como la ecuación de Laplace, la ecuación de Helmholtz o, si desea generalizarla, el valor vectorial ecuación de elasticidad. Para estas cosas, está claro que el multigrid (ya sea algebraico o geométrico) es el ganador si la ecuación es elíptica, y para otras ecuaciones no es tan clara, pero algo como SSOR a menudo funciona razonablemente bien (por algún significado de "razonable").
Para mí, la gran revelación ha sido qué hacer con los problemas que no son monolíticos, por ejemplo, para el operador de Stokes Cuando comencé con el análisis numérico hace unos 15 años, creo que la gente tenía la esperanza de que se pudieran aplicar las mismas técnicas a las matrices anteriores, y la dirección de la investigación era probar directamente multirredes o utilizar generalizaciones de SSOR (usando " puntos suaves "como Vanka) y métodos similares. Pero esto se ha desvanecido ya que no funciona muy bien.
Lo que vino a reemplazar esto fue lo que inicialmente se denominó "preacondicionadores basados en la física" y luego simplemente (y tal vez con mayor precisión) "preacondicionadores de bloque" como el de Silvester y Wathen. Estos a menudo se basan en eliminaciones de bloques o complementos de Schur y la idea es construir un preacondicionador de tal manera que uno pueda reutilizar preacondicionadores para bloques individuales que funcionan bien. En el caso de la ecuación de Stokes, por ejemplo, el preacondicionador Silvester / Wathen usa que la matriz
Esta idea de trabajar con los bloques individuales que comprenden la matriz y reutilizar los preacondicionadores en los individuales ha demostrado ser enormemente poderosa y ha cambiado por completo la forma en que pensamos hoy en preacondicionamiento de los sistemas de ecuaciones. Por supuesto, esto es relevante porque la mayoría de los problemas reales son, de hecho, sistemas de ecuaciones.
fuente
Jack ha dado un buen procedimiento para encontrar un preacondicionador. Intentaré responder una pregunta: "¿Qué hace que un buen preacondicionador?". La definición operacional es:
Sin embargo, esto no nos da ninguna idea sobre el diseño de un preacondicionador. La mayoría de los preacondicionadores se basan en la manipulación del espectro del operador. Genéricamente, los métodos de Krylov convergen más rápido cuando los valores propios están agrupados, ver Iteraciones matriciales o Funciones meromórficas y Álgebra lineal . A veces podemos probar que los resultados de un preacondicionador son solo unos pocos valores propios únicos, por ejemplo, una nota sobre preacondicionamiento para sistemas lineales indefinidos .
Una estrategia común es ejemplificada por Multigrid. Los preacondicionadores relajantes (aquí suavizadores) como SOR eliminan los componentes de alta frecuencia en el error. Cuando el residual se proyecta en una grilla gruesa, los componentes de error de frecuencia más baja se vuelven de frecuencia más alta y pueden ser atacados nuevamente por SOR. Esta estrategia básica subyace en versiones más complicadas de MG, como AMG. Tenga en cuenta que en la parte inferior, el solucionador debe resolver con precisión las frecuencias más bajas del error.
Otra estrategia consiste en resolver la ecuación en pequeños subespacios, que es exactamente lo que están haciendo los solucionadores de Krylov. En la forma más simple, este es el método Kaczmarz o el Método Aditivo Schwarz . La tensión teórica avanzada aquí, la descomposición del dominio , se concentra en la aproximación espectral del error en la interfaz, ya que se supone que los dominios se resuelven con bastante precisión.
fuente