Çok büyük ve çok seyrek bir bitişiklik matrisinin tüm özdeğerlerini hesaplayın


13

Her biri yaklaşık n ~ 100000 düğümü olan iki grafiğim var. Her iki grafikte de, her bir düğüm tam olarak 3 düğüme bağlanır, böylece bitişiklik matrisi simetrik ve çok seyrek olur.

Zor olan nokta, bitişiklik matrisinin tüm özdeğerlerine ihtiyacım var ama özvektörlere ihtiyacım yok. Doğru olmak için, bu benim hayatımda bir kez olacak (en azından görebildiğim kadarıyla!), Bu yüzden tüm özdeğerleri almak istiyorum ve onları almak için birkaç gün beklemeyi umursamıyorum.

scipyPaketleyicileri denedim ARPACK, ama çok uzun sürüyor. Birden fazla kütüphane buldum ama en büyük / en küçük özdeğerlerin bir alt kümesini elde etmek için en iyi şekilde çalışıyorlar. Tüm özdeğerleri elde etmek için muhtemelen paralel uygulama ile simetrik seyrek matrisler için çalışan herhangi bir kütüphane var mı?


6
Meraktan, neden tüm özdeğerlere tam olarak ihtiyacınız var ? Bu boyuttaki sorunların çoğu, daha büyük (hatta sonsuz boyutlu) sorunların yaklaşık tahminleridir ve bu nedenle küçük sorunların özdeğerleri, yalnızca gerçekten çözmek istediği sorunun yaklaşık değeridir. Çoğu zaman, yaklaşıklık kalitesi sadece en küçük veya en büyük özdeğerler için iyidir ve diğerlerinin hepsi sadece zayıf bir şekilde yaklaşır ve sonuç olarak çok pratik ilgi çekmez.
Wolfgang Bangerth


@WolfgangBangerth: (Bunlar sizin için açıksa beni affedin) Sorun malzemelerin fiziğinden kaynaklanıyor. Bant yapısı, titreşim ve elektrik özellikleri elde etmek için malzemelerin sıkı bağlanma yaklaşımı ile ilgilidir. Bunları elde etmek için, özdeğerlerin tam spektrumuna ihtiyacım var. BTW, bu yeni bir şey değil ve 70'lere ve 80'lere kadar gidiyor, ancak sistemim amorf olduğundan, iyi sonuçlar almak için çok büyük bir sisteme ihtiyacım vardı. Çoğu insan benim durumumla karşılaştırıldığında sadece son derece kolay olan kristalleri önemsese de.
Mehdi

2
@Mahdi: Demek istediğim, fiziksel özelliklerin bazı kısmi diferansiyel operatörün spektrumu tarafından belirlendiği. Şüpheliyim (ama elbette bilmiyorum, çünkü sorunun nereden geldiğini açıklamıyorsunuz), sahip olduğunuz büyük matris özdeğer probleminin sadece PDE sorununun bir tahmini olduğunu. Sonuç olarak, özdeğerleriniz de sadece yaklaşık değerlerdir.
Wolfgang Bangerth

Yanıtlar:


8

Vites değiştirme tersine spektral dönüşümü [1] kullanabilir ve spektrum bandını banda göre hesaplayabilirsiniz.

Teknik makalemde de açıklanmıştır [2]. Laplace operatörünün öz fonksiyonlarını hesaplamak için kullandığım, [1] 'deki uygulamanın yanı sıra, C ++' te Grafit yazılımımda [3] ( 17 Ocak'ı güncelleyin : şimdi her şey coğrafi / grafit sürüm 3'e taşındı) bir uygulama mevcut. 1 milyon köşeye kadar olan kafesler (sizinkine benzer bir sorun).

Nasıl çalışır:

A(V,λ)A(V,1/λ)A1AA1ALLtAx=bAσIdσ(AσId)1σ

[1] http://www.mcs.anl.gov/uploads/cels/papers/P1263.pdf

[2] http://alice.loria.fr/index.php/publications.html?redirect=0&Paper=ManifoldHarmonics@2008

[3] http://alice.loria.fr/software/graphite/doc/html/


Teşekkürler Bruno! Bunlar çok umut verici görünüyor, ben onlara bakacağım!
Mehdi

1

Başka bir seçenek Jacobi rotasyonlarını kullanmak olabilir. Matrisiniz zaten neredeyse çapraz olduğundan, yakınsama çok zaman almamalıdır. Genellikle doğrusal hızda yakınsar, ancak yeterli tekrarlamalardan sonra yakınsama hızı ikinci dereceden olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.