A'A ve AA 'formülasyonlarının durum sayısı


9

(Yousef Saad, seyrek doğrusal sistemler için yinelemeli yöntemler , s. 260)cond(AA)cond(A)2

Bu doğru mu AA de?

Durumunda A dır-dir N×M ile NM, Gözlemliyorum cond(AA)cond(AA)

Bu, formülasyon açısından AA bu durumda tercih edilir mi?


2
Çok farklı boyutlarda iki matrisin durum sayılarını karşılaştırıyorsunuz. Nedenini açıklamadan, karşılaştırmanın muhtemelen anlamlı olmadığı anlaşılıyor. Kesinlikle, çok daha küçük matrisi kullanarak ihtiyacınız olanı başarabilirseniz, (şartlandırma benzer olsa bile) yapmalısınız.
David Ketcheson

1
Stefano M'nin aşağıdaki yeni cevabı doğrudur. Lütfen okuyun ve oy verin.
David Ketcheson

Yanıtlar:


6

Eğer ARN×M ile N<M, sonra

rank(ATA)=rank(AAT)=rank(A)N<M
Böylece ATARM×M tam rütbe olamaz , yani tekildir.

Buna göre durum numarası κ2(ATA)=. Sonlu hassasiyet aritmetiği nedeniyle cond(A'A), matlab'de hesaplarsanız çok sayıda değil elde edersiniz Inf.


@OscarB: tekil değerleri A sadece N, diye bir şey yoktur. Minci tekil değer! Türeviniz doğru, ancak lütfenσi, i=1N sv'nin A, sonra SST=diag(σ12,,σn2), süre STS=diag(σ12,,σn2,0,,0) ile MNsondaki sıfırlar.
Stefano M

8

Bakalım neden ATA yaklaşık kare durum sayısı A. SVD ayrışmasını kullanmaA=USVT, ile URN×N, SRN×M, VRM×M, ifade edebiliriz ATA gibi

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

Ki buna dikkat ederek U ortonormaldir, öyle ki UTU=I. Ayrıca,S çapraz bir matristir, öyle ki son ayrışma ATA olarak ifade edilebilir VS2VT, ile S2 anlamı STS, ilk N tekil değerleri ile diyagonal bir matris verir. Sköşegen içinde kare. Bu, koşul sayısı ilk ve son tekil değerin oranı olduğu için,cond(A)=s1sN için ARN×M,

cond(ATA)=s12sM2=(s1sM)2=cond(A)2

Şimdi, aynı egzersizi AAT:

AAT=USVT(USVT)T=USVTVSTUT=US2UT

Bu da sonucu elde ettiğimiz anlamına gelir cond(AAT)=s12sN2, dan beri S2 burada demek SST, yukarıdaki notasyondan ince bir fark.

Ama dikkat edin ki ince fark! İçinATA, koşul numarası paydada M'inci tekil değerine sahipken, AATN'in tekil değerine sahiptir. Bu, durum numarasında neden önemli farklılıklar gördüğünüzü açıklar -AAT gerçekten "daha iyi şartlandırılmış" olacak ATA.

Yine de David Ketcheson doğruydu - iki farklı matris arasındaki durum sayılarını karşılaştırıyorsunuz. Özellikle, neler yapabileceğinizATA başarabileceğin şeyle aynı olmayacak AAT.


Bu harika bir açıklama! Farkı şimdi açıkça görüyorum. Matris A, normal denklemler oluşturmak için kullanılır ve küçük değişikliklerle de aşağıdaki gibi formüle edebilirsiniz.AAklasik değil AA. Normal denklemleri çözmek yerine LSQR gibi çözücüyü kullanmanın avantajlı olup olmadığını da söyleyebilir misiniz? LSQR'nin bu ürünü hiç oluşturması gerekmediğinden.
Alexander

Mantıklı geldi sevindim. Genel olarak, sorunun koşullandırılmasını dikkate almanız gerekir. Ancak, bu bir sorun değilse, sorunun boyutuna (diğer şeylerin yanı sıra) bağlı olarak normal denklemler / QR çarpanlarına ayırma (A) / LSQR kullanabilirsiniz. Sorununuz büyük veya koşulsuz değilse, muhtemelen QR faktörünü uygularım, ancak çözmeye çalıştığınız sorun hakkında daha fazla bilgi olmadan söylemek zor. Eminim daha fazla deneyime sahip başkaları daha ayrıntılı önerilerde bulunabilir.
OscarB

A'nın kendisi koşulsuz (koşul sayısı ile 107), yoğun ve büyük. QR bir seçenek değildir. Koşulsuz olduğu için yine de bir miktar düzenlileştirme eklemeliyim. Şimdi basit Tikhonov düzenlenmesi yeterli görünüyor. Mesele şu ki,cond(A)<cond(AAT)<cond(ATA) (davam için N<M) daha sonra herhangi bir ürün oluşturmanıza gerek olmadığından LSQR kullanmak her zaman tercih edilir görünmektedir. Soru, normal denklemler ve LSQR ile elde edilen çözümlerin aynı olup olmadığıdır.
Alexander

Anladığım kadarıyla, LSQR, kesin olarak "sonsuz sayıda" yinelemeden sonra normal denklemlere özdeş bir çözüm sağlayacaktır. Bununla birlikte, kötü pozlanmış problemler için, normal denklemler çözümü istediğiniz çözüm değildir. Bunun yerine, yarı yakınsama sağlanana kadar tekrarlamak için LSQR kullanmak istiyorsunuz. Ancak, sorunlu problemlerde yinelemeli algoritmaları kontrol etmek diğer bir top oyunudur. Ayrıca, matris-vektör ürününüzün maliyetine ve gereken yineleme sayısına (ve dolayısıyla matveclere) bağlı olarak, bidiagonalizasyon ile doğrudan bir tikhonov çözümü daha iyi olabilir.
OscarB

Harika bir açıklama. +1 sizin için!
meawoppl

2

İddia condA2condATA(kare matrisler için) ve Artan'ın cevabındaki [Düzenle: Yanlış okudum] saçmalıktır. Karşı örnek

A=(ϵ10ϵ),ϵ1

bunun için kolayca kontrol edebilirsiniz condATA=O(ϵ4)ise .condA2=O(ϵ2)


Vurgulamak için tamam A2 ve ATA genel olarak eigs, svds, cond numarası ile ilgili olanlardan çok farklıdır: ancak bence sorunun iddiası hakkında [cond(A)]2.
Stefano M

@StefanoM Teşekkürler, tartışmadan olsa da, yanlış anlamadığım tek şey değildi.
Jed Brown

1

Kesin aritmetik koşul (A ^ 2) = koşul (A'A) = koşul (AA '), bkz. Golub ve van Kredisi, 3. baskı, s70. A, neredeyse sıra yetersizliği varsa, kayan nokta aritmetiğinde bu doğru değildir. En iyi tavsiye, en az kare problemleri çözerken yukarıdaki kitap tariflerini takip etmektir, en güvenli olanı SVD yaklaşımıdır, p257. SVD hesaplanırken \ varepsilon-rank komutunu kullanın; burada \ varepsilon matris verilerinizin çözünürlüğüdür.


Üzgünüm, Golub ve Van Loan'a baktım. 3. baskı s. 70 ve koşul (A ^ 2) = koşul (A ^ TA) = koşul (AA ^ T) ifadesini yedekleyen bir şey bulamadı. Referansınızla daha spesifik olabilir misiniz?
OscarB

Orada herhangi bir ifade yoktur, ancak teorem 2.5.2 ve yalancı ters bölüm 5.5.4'ten cond (AA ') = cond (A'A) türetebilirsiniz. Yalancı ters almamın nedeni, eldeki en küçük kareler sorunu için önemli olan şey olmasıdır. Koşul (A ^ 2) sonrası eşitlik \ yaklaşık olmalıdır, yazım hatası için özür dileriz.
Artan

Hayır, bu cevap tamamen yanlış. Karşı örneğime bakın.
Jed Brown

Saad, belirli bir bağlam için böyle bir noktaya değinmiş olmalı. Eldeki soru ile ilgili olan şey, devam eden argüman.
Artan
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.