O(n3)
AAdet(A)≠0b x AxbxA
Para estar seguro, probablemente sea mejor asegurarse de que tampoco sea numéricamente deficiente en rango (es decir, no tenga valores singulares pequeños).A
El problema con la regla de Cramer es que sus propiedades de estabilidad son desconocidas, excepto para (que es estable hacia adelante, pero no estable hacia atrás). (Ver Precisión y Estabilidad de Algoritmos Numéricos , 2ª edición, por N. Higham.) No se considera un algoritmo confiable; Se prefiere la eliminación gaussiana con pivote parcial (GEPP).n=2
Esperaría que el problema con el uso de BLAS + LAPACK para llevar a cabo GEPP en una resolución ODE sería cualquier diferencia finita utilizada en un método ODE implícito. Sé que las personas han resuelto programas lineales como parte de una evaluación del lado derecho, y debido a que lo hicieron ingenuamente (solo enchufaron la solución del programa lineal en el lado derecho, llamando a un algoritmo simplex), redujeron en gran medida la precisión de su solución calculada y aumentó considerablemente el tiempo necesario para resolver el problema. Un compañero de laboratorio mío descubrió cómo resolver estos problemas de una manera mucho más eficiente y precisa; Tendré que mirar para ver si su publicación ya ha sido lanzada. Puede tener un problema similar independientemente de si opta por usar GEPP o la Regla de Cramer.
Si hay alguna manera de calcular una matriz analítica jacobiana para su problema, puede hacer eso para ahorrarse algunos dolores de cabeza numéricos. Será más barato de evaluar, y probablemente más preciso, que una aproximación de diferencia finita. Las expresiones para la derivada de la matriz inversa se pueden encontrar aquí si las necesita. La evaluación de la derivada de la matriz inversa parece que tomaría al menos dos o tres soluciones lineales del sistema, pero todas tendrían la misma matriz y diferentes lados a la derecha, por lo que no sería considerablemente más costoso que un solo sistema lineal resolver.
Y si hay alguna forma de comparar su solución calculada con una solución con valores de parámetros conocidos, lo haría, para que pueda diagnosticar si ha encontrado alguno de estos obstáculos numéricos.