CG kullanarak çözerken determinantın hesaplanması


11

I çözme am büyük bir seyrek pozitif belirli bir matrisi konjuge gradyan (CG) yöntemi kullanılarak. Çözme sırasında üretilen bilgileri kullanarak determinantını hesaplamak mümkün müdür ?A AAx=bAA


Neden determinantı hesaplamak istersiniz? Böyle bir sonuç muhakkak büyük bir matris için bir taşma veya taşma olacaktır. Durum numarasını hesaplamanızı isteseydim daha hayırsever olurdum, ancak belirleyiciye zaman kaybetmeyin!

Muhtemelen zaten biliyorsunuzdur, ancak konjugat gradyan işlemi sırasındaki Ritz değerleri matrisin özdeğerlerine yakınsar ve bundan belirleyici için basit tahminler elde edebilirsiniz.
shuhalo

Yanıtlar:


10

Seyrek bir matrisin determinantını hesaplamak tipik olarak doğrudan bir çözme kadar pahalıdır ve CG'nin hesaplanmasında çok yardımcı olacağından şüpheliyim. Bunun için CG çalıştırmak mümkün olur (iterasyon olduğunu tüm spektrumunu bilgi üretmek için) ve daha sonra özdeğerler ürün olarak belirleyici hesaplamak, ancak bu, hem yavaş olacaktır ve sayısal olarak kararsız.A n × n AnAn×nA

Matrisinizin seyrek-doğrudan Cholesky çarpanlarına ayırmasını hesaplamak daha iyi bir fikir olabilir, örneğin , burada düşük üçgen şeklindedir. Sonra burada basitçe alt üçgen matrisinin köşegen girişlerinin çarpımıdır, çünkü üçgen matrisin özdeğerleri köşegen boyunca uzanır. L det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , det ( L ) LA=LLHL

det(A)=det(L)det(LH)=|det(L)|2,
det(L)L

Genel tekil olmayan bir matris durumunda, pivotlu bir LU ayrışması kullanılmalıdır, örneğin , burada bir permütasyon matrisidir, böylece Yana bir permütasyon matrisidir yapı ile, ve, tipik olarak ima, hepsinin bir köşegen olacak . Böylece olarak hesaplayabilirsiniz.P det ( A ) = det ( P - 1 ) det ( L ) det ( U ) . P det ( P ) = ± 1 L det ( L ) = 1 det ( A ) ± det ( U )PA=LUP

det(A)=det(P1)det(L)det(U).
Pdet(P)=±1Ldet(L)=1det(A)±det(U)ve yine bir üçgen matrisin determinantının basitçe onun köşegen girdilerinin ürünü olduğunu kabul edin. Dolayısıyla, determinantın hesaplanma maliyeti esasen sadece bir çarpanlara ayırma maliyetidir.

Matris ufacıksa (olasılıklı çarpanlara ayırmayı kullansam da) bu olasılıklardan biri olurdu, ancak boyutu ~ ve bu nedenle bir ayrışma yapmak mümkün değildir10 6 x 10 6A106x106
Manuel Schmidt

@ManuelSchmidt Sonlu elemanlar tipi ayrıklaştırmalardan kaynaklanan bu boyuttaki seyrek matrisler genellikle (örneğin) multifrontal yöntemlerle kolayca faktörleştirilebilir. Matrisiniz HPD ise (ve yukarıdaki argümanımın genelleştirilmesi açıksa) Cholesky faktorizasyonunun kullanılması gerektiğine katılıyorum.
Jack Poulson

Hızlı cevap ve cevabınız için teşekkürler. Ne yazık ki matrisin spezial bir yapısı yoktur (bu da kolay bir çarpanlara ayırmaya izin verir).
Manuel Schmidt

2
Matrisin determinantını neden hesaplamanız gerektiğini merak ediyorum. En yüksek ve en düşük özdeğerler yeterli değil mi?
Jack Poulson

Yalnızca normalleştirme sabitinin değil, karmaşık olasılık dağılım işlevinin bir parçasıdır. Dağıtımların çarpanlarına ayrılabileceğini biliyorum (ve şu anda yaptığımız şey budur) ancak modellemek için tonlarca veriye sahibiz ve her bir faktör devasa hale geliyor.
Manuel Schmidt

6

Diğerleri bunu zaten kaydetti, ancak matrisin büyük olduğunda determinantın neredeyse her zaman yararlı bir miktar olmadığını belirtmeye değer. Sorun şu ki, büyük matrisler çoğunlukla daha büyük boyutlu şeylere (büyük popülasyonların istatistiksel örnekleri, kısmi diferansiyel denklemler gibi sonsuz boyutlu şeylere sonlu boyutlu yaklaşımlar) yakınlıklardır. Matrisinizin ve bir şekilde işleminin ve muhtemelen olduğu tahmin edelim .ABdimAdimBdimB=

Şimdi, operatör , aynı zamanda, bir spektruma sahip olacak ve spektrumu tipik olarak spektrumuna bir anlamda ilgili olacaktır - örneğin, eigen yaklaşık (bir alt kümesi) kişilerce . Ancak bu, yaklaşık olduğu anlamına gelmez . Aslında, eğer, örneğin, özdeğer eigen bazı yaklaşık , daha sonra BABABdetAdetBAB

detA=j=1dimAλi(A)j=1dimAλi(B)j=dimA+1dimBλi(B)
ancak bu üründeki ikinci faktör tipik olarak ya tarafından çözülmeyen küçük veya büyük öz değerlerinin ürünüdür . Başka bir deyişle, bu faktör tipik olarak çok küçüktür ( ise muhtemelen sıfır ) veya çok büyüktür (muhtemelen sonsuz). Başka bir deyişle, tüm bu durumlarda, tipik olarak yaklaşık sahip olmadığını ve genellikle hesaplamak için yararlı bir şey olmadığını düşünüyoruz.BAdimB=detAdetB

Burada, büyük ölçüde belirleyicilerin hesaplanmasını içeren gerçekten güzel ve pratik bazı algoritmalarımız olduğu ortaya çıkıyor. Check out www-m3.ma.tum.de/foswiki/pub/M3/Allgemeines/...
Matt Knepley

2

Belirleyicilerin niçin ve nasıl kötü olduğuna (tekrar) bakmadan, operatörünüzün kolayca çarpanlara ayrıştırılamadığını veya sadece bir matris olarak mevcut olmadığını ve gerçekten de belirleyicisini tahmin etmeniz gerektiğini varsayalım .

Determinantın bir tahminini elde etmenin bir yolu, doğrudan Lanczos sürecine dayanan bir CG uygulaması kullanmaktır. Örneğin, Saad'ın " Seyrek Doğrusal Sistemler için İteratif Yöntemler " (SIAM) kitabında Algoritma 6.17 (D-Lanczos) , sayfa 189. Burada operatörü yarı açık bir şekilde çarpanlara ayrılmıştır ve faktörlerin determinantını bir tahmin olarak kullanabilirsiniz. belirleyicisinin . Asla bir determinant tahmin etmeye çalışmadım ve önerdiğim şeyin iyi bir fikir olup olmadığı hakkında hiçbir fikrim yok --- muhtemelen hayalet özdeğerlerinin bize verdiği tüm sorunları vermediklerini vurgulayayım. Ancak, sorunuzu okurken akla gelen budur.AA

Muhtemelen kitabın Bölüm 6.7.3'ünü yakından takip ederek, belirleyicinin bu tahmininin CG'nin standart uygulamasında nasıl ortaya çıktığını tersine mühendislik yapabilirsiniz.


2

A matrisinin belirleyicisi burada - adımlar hesaplanır CG yinelemesi sırasında. Ancak bu yalnızca ise . Kanıt şudur. Let vektörleri oluşan bir matris ve izin oluşan bir matris . Böylece, determinant . Şimdi ihbar vektörler olduğunu orthgonal ve vektörler göre eşlenik olan

det(A)=i=1nαk1,
αk=rkTrkpkTApkrk0k=1,,nRrkPpk
pk=rk+i=1k1γiri.
det(P)=(1)ndet(R)rkpkA. Bu nedenle
k=1nαk=k=1nrkTrkpkTApk=det(RTR)det(PTAP)=det(RTR)det(A)det(PTP)=(det(A))1.
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.