2015-03-19 29 views
6

C kodundaki tüm özdeğerleri ve özvektörleri bulmak için Jacobi yöntemini kullandım. Jacobi yönteminin karmaşıklığı O (n^3) olmasına rağmen, matrisimin boyutu çok büyüktür (17814 X 17814). Çok zaman alır. Bu sorunu çözebileceğim daha iyi bir algoritma bilmek istiyorum. Eğer istersen c kodumu ekleyebilirim.Çok büyük bir matrisin özdeğer ve özvektörünü hesaplamak için daha iyi bir algoritma nasıl bulunur

+1

Bu soru [zaten burada yanıtlandı] (http://mathoverflow.net/questions/62904/complexity-of-eigenvalue-decomposition) –

+1

Coppersmith ve Winograd algoritması O (n^2.376) içindeki sorunu çözebilir –

cevap

2

Açıklamalarda önerilen algoritma mutlaka en iyisi değildir.
here'u gördüğünüz gibi, özel teknikler kullanırken Jacobi yöntemi çok daha hızlı olabilir.
Bunun üzerine, Jacobi'nin paralel olarak çalıştırılması oldukça kolaydır ve yoğun matrislerden çok daha hızlıdır, böylece mimarilerinize ve sahip olduğunuz matris türüne bağlı olarak bundan faydalanabilirsiniz.

En iyi şeyin birkaç farklı yöntemi test etmek ve en iyi sonuçları alabileceğiniz uygulamada görmek olduğunu söyleyebilirim.
O(n^2.376), sabitlere bağlı olarak O(n^3)'dan daha iyi olmayabilir.