Que yo sepa, hay 4 formas de resolver un sistema de ecuaciones lineales (corríjame si hay más):
- Si la matriz del sistema es una matriz cuadrada de rango completo, puede usar la Regla de Cramer;
- Calcule el inverso o el seudoinverso de la matriz del sistema;
- Utilice métodos de descomposición matricial (la eliminación de Gauss o Gauss-Jordan se considera descomposición de LU);
- Use métodos iterativos, como el método de gradiente conjugado.
De hecho, casi nunca desea resolver las ecuaciones utilizando la regla de Cramer o calculando el inverso o seudoinverso, especialmente para matrices de altas dimensiones, por lo que la primera pregunta es cuándo usar métodos de descomposición y métodos iterativos, respectivamente. Supongo que depende del tamaño y las propiedades de la matriz del sistema.
La segunda pregunta es, a su entender, qué tipo de métodos de descomposición o métodos iterativos son más adecuados para cierta matriz del sistema en términos de estabilidad numérica y eficiencia.
Por ejemplo, el método de gradiente conjugado se usa para resolver ecuaciones donde la matriz es simétrica y definida positiva, aunque también se puede aplicar a cualquier ecuación lineal convirtiendo en . También para una matriz definida positiva, puede usar el método de descomposición Cholesky para buscar la solución. Pero no sé cuándo elegir el método CG y cuándo elegir la descomposición de Cholesky. Creo que es mejor que usemos el método CG para matrices grandes.
Para las matrices rectangulares, podemos usar la descomposición QR o SVD, pero nuevamente no sé cómo elegir una de ellas.
Para otras matrices, ahora no sé cómo elegir el solucionador apropiado, como matrices hermitianas / simétricas, matrices dispersas, matrices de banda, etc.