Cómo resolver un sistema de ecuaciones lineales con un gradiente conjugado de manera eficiente

1. ¿Su matriz está almacenada en la memoria? ¿Es factible almacenar la descomposición de Cholesky de [math] A [/ math]? Si es así, calcule su descomposición de Cholesky. Una vez que tenga la descomposición, resolver [matemáticas] Ax = b [/ matemáticas] es muy rápido, mucho más rápido que CG.

2. Si calcular la descomposición completa de Cholesky es prohibitivo, puede calcular la factorización de Cholesky incompleta como un preacondicionador para CG (consulte http://en.wikipedia.org/wiki/Con…) para que CG pueda converger más rápido.

Tenga en cuenta que Cholesky incompleto suele ser un buen preacondicionador. Sin embargo, su matriz puede tener propiedades especiales que prefieren un tipo diferente de preacondicionador.

Aquí hay una explicación geométrica simple sobre el efecto del preacondicionamiento.

En primer lugar, el método de gradiente conjugado requiere que la matriz A sea simétrica positiva definida. La ventaja del método es

  • Su convergencia garantizada.
  • Su bajo uso de memoria y el uso de la escasez.
  • Su simplicidad
  • La posibilidad de utilizar preacondicionadores para acelerar el cálculo.

Ahora lo que estás tratando de hacer no es muy estándar. Básicamente parece querer calcular el inverso de la matriz A iterando sobre los vectores base. Si realmente desea hacer eso, entonces el mejor método es más probable que sea el pivote de Gauss o cualquier otro método directo.
Para responder explícitamente a su pregunta, la respuesta es no, no puede. No hay forma de usar la solución para un sistema para otro sistema.