O(n3)
AAdet(A)≠0xbxA
Güvende olmak için, muhtemelen sayısal olarak eksik olmadığından emin olmak en iyisidir (yani, küçük tekil değerlere sahip değildir).A
Cramer Kuralı ile ilgili sorun, (stabilitesi ileri, ancak geriye doğru stabil olmayan) dışında stabilite özelliklerinin bilinmemesidir . (Bkz . Sayısal Algoritmaların Doğruluğu ve Kararlılığı , 2. baskı, N. Higham.) Güvenilir bir algoritma olarak kabul edilmez; Kısmi Pivot ile Gauss Eliminasyonu (GEPP) tercih edilir.n=2
Bir ODE çözümünde GEPP yürütmek için BLAS + LAPACK kullanarak sorun bekliyorum bir örtülü ODE yönteminde kullanılan herhangi bir sonlu fark olacaktır. İnsanların doğrusal programları sağ taraf değerlendirmesinin bir parçası olarak çözdüğünü biliyorum ve çok naif bir şekilde yaptıklarından (sadece doğrusal programı çözerek sağ tarafa taktılar, bir simpleks algoritması çağırarak), hesapladı ve sorunu çözmek için gereken süreyi önemli ölçüde artırdı. Bir laboratuvar arkadaşım bu tür problemlerin çok daha verimli ve doğru bir şekilde nasıl çözüleceğini anladı; Henüz yayınının yayınlanıp yayınlanmadığını görmek zorundayım. GEPP veya Cramer Kuralını kullanmayı tercih edip etmediğinize benzer bir sorun yaşayabilirsiniz.
Sorununuz için analitik bir Jacobian matrisi hesaplamanın herhangi bir yolu varsa, kendinize bazı sayısal baş ağrılarını kurtarmak için bunu yapmak isteyebilirsiniz. Sonlu farklar yaklaşımından daha ucuz ve muhtemelen daha doğru olacaktır. Ters matris türevi için ifadeler ihtiyacınız varsa burada bulunabilir . Matrisin tersinin türevini değerlendirmek, en az iki veya üç lineer sistem çözümü gerektirecek gibi görünüyor, ancak hepsi aynı matris ve farklı sağ taraflarla olacak, bu nedenle tek bir lineer sistemden çok daha pahalı olmayacaktı. çözmek.
Hesaplanan çözümünüzü bilinen parametre değerlerine sahip bir çözümle karşılaştırabilmenin herhangi bir yolu varsa, bunu yapardım, böylece bu sayısal tuzaklardan herhangi biriyle karşılaşıp karşılaşmadığınızı teşhis edebilirsiniz.