İlgilendiğim problemler için matris boyutu 30 veya daha az.
WolfgangBangerth'in belirttiği gibi, bu matrislerin çok sayıda (milyon, milyar) olmadığı sürece, matris inversiyonunun performansı genellikle sorun değildir.
Pozitif belirli bir simetrik matris verildiğinde, ters matrisi ve determinantını hesaplamak için en hızlı algoritma nedir?
Hız bir sorunsa, aşağıdaki soruları cevaplamanız gerekir:
- Gerçekten tüm tersine ihtiyacınız var mı? (Birçok uygulamanın açık bir ters oluşturması gerekmez.)
- Belirleyiciye gerçekten ihtiyacınız var mı? (Determinantlar nadirdir, ancak bilişimsel bilimde kesinlikle duyulmamıştır.)
- Yüksek hassasiyete ihtiyacınız var mı? (Düşük doğruluk algoritmaları daha hızlı olma eğilimindedir.)
- Olasılıksal bir yaklaşım yeterli midir? (Olasılıksal algoritmalar daha hızlı olma eğilimindedir.)
Küçük, pozitif belirli bir matrisi ters çevirme ve determinantını hesaplama probleminize standart cevap Cholesky ayrışması olacaktır. EğerA = LLT, sonra det ( A ) =Πni = 1l2ben benve .det (bir- 1) =Πni = 1l- 2ben ben
Varsayarak olduğu ile , Choleskey ayrışma yaklaşık olarak hesaplanabilir , bir LU ayrıştırma yarısı maliyeti ile ilgili olan, flop. Ancak, böyle bir algoritma "hızlı" olarak değerlendirilmez. Bir randomize LU ayrıştırmabirnnn3/ 3(1) gerçekten çok sayıda matrisi hesaba katmanız gerekip gerekmediği, (2) çarpanlara ayırma gerçekten uygulamanızdaki sınırlayıcı adım ve (3) rastgele bir algoritma kullanımında ortaya çıkan herhangi bir hata kabul edilebilir. Matrisleriniz muhtemelen seyrek algoritmaların değerli olmayacak kadar küçüktür, bu nedenle daha hızlı algoritmalar için sadece diğer fırsatlar ek matris yapısı (ör., Bantlı) veya istismar problem yapısını (örn. Belki algoritmanızı akıllıca yeniden yapılandırabilirsiniz. bir matrisi ters veya determinantını hesaplamak için daha uzun süre gerekir). Etkili belirleyici algoritmalar kabaca sabit bir faktör içinde doğrusal bir sistemi çözmenin maliyetidir, bu nedenle doğrusal sistemler için kullanılan aynı argümanlar belirleyicilerin hesaplanması için de geçerlidir.