O único resultado inverso explícito que conheço é a Regra de Cramer , que recentemente demonstrou ser computável em (como a eliminação gaussiana; insegura da constante na frente do fator principal, Apesar).O(n3)
A matriz inversa de é uma função suave de , desde que , e a solução é certamente uma função suave de , desde que o lado direito do ODE seja suave função de e você evita casos em que é deficiente na classificação, eu acho que seu lado direito seria suave. (Aqui, entendo suave como "pelo menos duas vezes continuamente diferenciável".)AAx b x Adet(A)≠0xbxA
Para ser seguro, provavelmente é melhor garantir que também não seja numericamente deficiente em classificação (ou seja, não possua valores singulares pequenos).A
O problema com a Regra de Cramer é que suas propriedades de estabilidade são desconhecidas, exceto (que é estável para a frente, mas não para trás). (Veja Precisão e estabilidade de algoritmos numéricos , 2ª edição, por N. Higham.) Não é considerado um algoritmo confiável; A eliminação gaussiana com giro parcial (GEPP) é favorecida.n=2
Eu esperaria que o problema de usar o BLAS + LAPACK para executar o GEPP em uma solução ODE fosse qualquer diferenciação finita usada em um método ODE implícito. Eu sei que as pessoas resolveram programas lineares como parte de uma avaliação do lado direito e, como o fizeram de maneira ingênua (apenas conectaram o programa linear ao lado direito, chamando um algoritmo simplex), reduziram bastante a precisão de seus solução computada e aumentou substancialmente o tempo necessário para resolver o problema. Um colega meu descobriu como resolver esses problemas de uma maneira muito mais eficiente e precisa; Vou ter que olhar para ver se a publicação dele já foi lançada. Você pode ter um problema semelhante, independentemente de optar por usar o GEPP ou a Regra do Cramer.
Se houver alguma maneira de calcular uma matriz jacobiana analítica para o seu problema, convém fazer isso para evitar algumas dores de cabeça numéricas. Será mais barato avaliar, e provavelmente mais preciso, do que uma aproximação por diferença finita. Expressões para a derivada da matriz inversa podem ser encontradas aqui, se você precisar delas. Avaliar a derivada da matriz inversa parece exigir pelo menos duas ou três soluções lineares do sistema, mas todas elas terão a mesma matriz e diferentes lados do lado direito, portanto, não seria consideravelmente mais caro que um único sistema linear resolver.
E se houver alguma maneira de comparar sua solução computada com uma solução com valores de parâmetros conhecidos, eu faria isso, para que você possa diagnosticar se encontrou alguma dessas armadilhas numéricas.