O(n3)
AAdet(A)≠0xbxA
Per sicurezza, probabilmente è meglio assicurarsi che non sia neanche numericamente carente di rango (cioè, non abbia piccoli valori singolari).A
Il problema con la regola di Cramer è che le sue proprietà di stabilità sono sconosciute ad eccezione di (che è stabile in avanti, ma non stabile all'indietro). (Vedi Accuracy and Stability of Numerical Algorithms , 2nd edition, di N. Higham.) Non è considerato un algoritmo affidabile; L'eliminazione gaussiana con rotazione parziale (GEPP) è preferita.n=2
Mi aspetterei che il problema con l'uso di BLAS + LAPACK per eseguire GEPP in una soluzione ODE sarebbe qualsiasi differenza finita utilizzata in un metodo ODE implicito. So che le persone hanno risolto i programmi lineari come parte di una valutazione sul lato destro, e poiché lo hanno fatto in modo così ingenuo (appena inserito il programma lineare risolvere nel lato destro, chiamando un algoritmo simplex), hanno notevolmente ridotto l'accuratezza del loro soluzione calcolata e sostanzialmente aumentato il tempo impiegato per risolvere il problema. Un mio compagno di laboratorio ha capito come risolvere tali problemi in un modo molto più efficiente e preciso; Dovrò cercare di vedere se la sua pubblicazione è stata ancora pubblicata. Potresti avere un problema simile indipendentemente dal fatto che tu scelga di utilizzare GEPP o Cramer's Rule.
Se c'è un modo per calcolare una matrice analitica giacobina per il tuo problema, potresti voler farlo per risparmiare un po 'di mal di testa numerici. Sarà più economico valutare, e probabilmente più accurato, di un'approssimazione di differenza finita. Le espressioni per la derivata della matrice inversa possono essere trovate qui se ne hai bisogno. La valutazione della derivata della matrice inversa sembra che richiederebbe almeno due o tre soluzioni lineari di sistema, ma sarebbero tutte con la stessa matrice e diversi lati di destra, quindi non sarebbe considerevolmente più costoso di un singolo sistema lineare risolvere.
E se c'è un modo per confrontare la tua soluzione calcolata con una soluzione con valori di parametro noti, lo farei, in modo da poter diagnosticare se hai riscontrato una qualsiasi di queste insidie numeriche.