Nomor kondisi formulasi A'A dan AA


9

Ditampilkan (Yousef Saad, metode berulang untuk sistem linier yang jarang , hal. 260) yangcond(AA)cond(A)2

Apakah ini juga berlaku untuk ?AA

Dalam kasus adalah dengan , saya amati bahwaN × M N M c o n d ( A A ) c o n d ( A A )AN×MNMcond(AA)cond(AA)

Apakah itu berarti formulasi dalam hal lebih disukai dalam kasus ini?AA


2
Anda membandingkan angka kondisi dua matriks dengan ukuran yang sangat berbeda. Tanpa penjelasan mengapa, sepertinya perbandingan itu mungkin tidak bermakna. Tentu saja, jika Anda dapat mencapai apa yang Anda butuhkan dengan menggunakan matriks yang jauh lebih kecil, Anda harus (bahkan jika kondisinya mirip).
David Ketcheson

1
Jawaban baru oleh Stefano M di bawah ini benar. Silakan baca dan pilih itu.
David Ketcheson

Jawaban:


6

Jika dengan N < M , maka r a n k ( A T A ) = r a n k ( A A T ) = r a n k ( A ) N < M sehingga A T A R M × M tidak bisa peringkat penuh, yaitu singular.ARN×MN<M

rank(ATA)=rank(AAT)=rank(A)N<M
ATARM×M

Dengan demikian nomor kondisi adalah . Karena aritmatika presisi terbatas, jika Anda menghitung dalam matlab Anda mendapatkan jumlah besar, tidak .κ2(ATA)=cond(A'A)Inf


@OscarB: nilai singular hanya N , tidak ada yang namanya nilai singular ke- M ! Derivasi Anda benar, tetapi harap dicatat bahwa jika σ i , i = 1 ... N adalah sv untuk A , maka S S T = d i a g ( σ 2 1 , , σ 2 n ) , sedangkan S T S = d i a g ( σ 2ANMσii=1NASST=diag(σ12,,σn2)denganM-Ntrailing nol. STS=diag(σ12,,σn2,0,,0)MN
Stefano M

8

Nah, lihat mari mengapa memiliki sekitar jumlah kondisi kuadrat A . Dengan menggunakan dekomposisi SVD dari A = U S V T , dengan U R N × N , S R N × M , V R M × M , kita dapat menyatakan A T A sebagaiATASEBUAHSEBUAH=USVTURN×NSRN×M.VRM.×M.SEBUAHTSEBUAH

SEBUAHTSEBUAH=(USVT)TUSVT=VSTUTUSVT=VSTSVT

Yang kita tiba di dengan mencatat bahwa adalah ortonormal, sehingga U T U = I . Lebih lanjut kita perhatikan bahwa S adalah matriks diagonal, sehingga dekomposisi akhir A T A dapat dinyatakan sebagai V S 2 V T , dengan S 2 yang berarti S T S , menghasilkan matriks diagonal dengan nilai singular N pertama dari S kuadrat di diagonal. Ini berarti bahwa karena jumlah kondisi adalah rasio yang pertama dan nilai singular terakhir, c o n d (UUTU=sayaSSEBUAHTSEBUAHVS2VTS2STSS untukARN×M, cHaind(SEBUAH)=s1sNSEBUAHRN×M.

cHaind(SEBUAHTSEBUAH)=s12sM.2=(s1sM.)2=cHaind(SEBUAH)2

Sekarang, kita dapat melakukan latihan yang sama dengan :SEBUAHSEBUAHT

SEBUAHSEBUAHT=USVT(USVT)T=USVTVSTUT=US2UT

Yang berarti bahwa kita mendapatkan hasil , karenaS2 disini berartiSST, perbedaan yang halus dari notasi di atas.cHaind(SEBUAHSEBUAHT)=s12sN2S2SST

Tetapi perhatikan perbedaan yang halus itu! Untuk , nomor kondisi memiliki nilai tunggal M'th dalam penyebut, sedangkan A A T memiliki nilai tunggal N'th. Hal ini menjelaskan mengapa Anda melihat perbedaan yang signifikan dalam jumlah kondisi - A A T memang akan “lebih baik AC” dari A T A .SEBUAHTSEBUAHSEBUAHSEBUAHTSEBUAHSEBUAHTSEBUAHTSEBUAH

Namun, David Ketcheson benar - Anda membandingkan angka kondisi antara dua matriks yang sangat berbeda. Secara khusus, apa yang dapat Anda capai dengan tidak akan sama dengan apa yang dapat Anda capai dengan A A T .SEBUAHTSEBUAHSEBUAHSEBUAHT


Itu penjelasan yang bagus! Saya melihat perbedaannya dengan jelas sekarang. Matriks A digunakan untuk membangun persamaan normal dan dengan sedikit perubahan Anda juga dapat merumuskan sebagai , bukan klasik A ' A . Bisakah Anda memberi tahu juga apakah menguntungkan untuk menggunakan pemecah seperti LSQR daripada memecahkan persamaan normal? Karena LSQR tidak perlu membuat produk ini sama sekali. SEBUAHSEBUAHSEBUAHSEBUAH
Alexander

Senang itu masuk akal. Secara umum, Anda perlu mempertimbangkan pengondisian masalah. Tetapi, jika itu bukan masalah, Anda bisa menggunakan persamaan normal / faktorisasi-QR (dari A) / LSQR, tergantung pada ukuran masalah (di antara hal-hal lain). Kecuali masalah Anda besar atau tidak terkondisi, saya mungkin akan menerapkan QR-faktorisasi, tetapi tanpa lebih banyak pengetahuan tentang masalah yang Anda coba selesaikan, sulit untuk mengatakannya. Saya yakin orang lain yang lebih berpengalaman bisa memberikan saran yang lebih rinci.
OscarB

A itu sendiri tidak terkondisi (dengan nomor kondisi ), padat dan besar. QR bukan opsi. Karena itu kondisi buruk, saya harus menambahkan beberapa regularisasi. Sekarang regularisasi Tikhonov yang sederhana tampaknya sudah cukup. Intinya adalah bahwa jika c a n d ( A ) < c o n d ( A A T ) < c o n d ( A T A ) (untuk kasus saya dengan N < M107cHaind(SEBUAH)<cHaind(SEBUAHSEBUAHT)<cHaind(SEBUAHTSEBUAH)N<M.) kemudian menggunakan LSQR tampaknya selalu lebih disukai karena Anda tidak perlu membentuk produk sama sekali. Pertanyaannya adalah apakah solusi yang diperoleh dengan persamaan normal dan LSQR identik?
Alexander

Yah, seperti yang saya mengerti, LSQR akan memberikan solusi yang identik dengan persamaan normal setelah "iterations tak terhingga" dalam presisi yang tepat. Namun, untuk masalah keliru, solusi persamaan normal bukanlah yang Anda inginkan. Sebaliknya, Anda ingin menggunakan LSQR untuk beralih sampai semi-konvergensi tercapai. Namun, mengendalikan algoritma iteratif dalam masalah-masalah keliru adalah permainan bola lainnya. Juga, tergantung pada biaya produk matriks-vektor Anda dan jumlah iterasi (dan dengan demikian matvec) diperlukan, solusi tikhonov langsung dengan bidiagonisasi mungkin lebih baik.
OscarB

Penjelasan luar biasa. +1 untuk Anda, Tuan!
meawoppl

2

Klaim bahwa (untuk matriks kuadrat) dalam pertanyaan dan [Sunting: Saya salah membaca] dalam jawaban Artan adalah omong kosong. Contoh tandingancondA2condATA

SEBUAH=(ϵ10ϵ),ϵ1

di mana Anda dapat dengan mudah memeriksa sementara cond A 2 = O ( ϵ - 2 ) .condSEBUAHTSEBUAH=HAI(ϵ-4)condSEBUAH2=HAI(ϵ-2)


OK untuk menekankan bahwa dan A T A secara umum sangat berbeda dengan apa yang berkaitan dengan eigs, svds, cond number: tetapi menurut saya klaim pertanyaannya adalah tentang [ c o n d ( A ) ] 2 . SEBUAH2SEBUAHTSEBUAH[cHaind(SEBUAH)]2
Stefano M

@StefanoM Terima kasih, sepertinya saya salah membaca, meskipun dari diskusi, bukan satu-satunya.
Jed Brown

1

Dalam cond aritmatika yang tepat (A ^ 2) = cond (A'A) = cond (AA '), lihat misalnya. Golub dan van Loan, edisi ketiga, p70. Ini tidak benar dalam aritmatika floating point jika A hampir kekurangan peringkat. Saran terbaik adalah mengikuti resep buku di atas ketika memecahkan masalah kuadrat terkecil, pendekatan SVD teraman, p257. Gunakan \ varepsilon-rank sebagai gantinya saat menghitung SVD, di mana \ varepsilon adalah resolusi data matriks Anda.


Maaf, saya melihat Golub dan Van Loan 3rd ed p. 70, dan tidak dapat menemukan apa pun yang mendukung pernyataan cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T). Bisakah Anda lebih spesifik dengan referensi Anda?
OscarB

Tidak ada pernyataan di sana, tetapi Anda dapat berasal dari teorema 2.5.2 dan pseudoinverse, bagian 5.5.4 yang cond (AA ') = cond (A'A). Alasan saya mengambil pseudoinverse adalah bahwa inilah yang penting untuk masalah kuadrat terkecil di tangan. Kesetaraan setelah cond (A ^ 2) harus \ approx, maaf atas kesalahan ketik.
Artan

Tidak, jawaban ini sama sekali salah. Lihat contoh tandingan saya.
Jed Brown

Saad pasti telah membuat titik seperti itu dengan konteks tertentu. Apa yang relevan untuk pertanyaan yang ada adalah argumen yang melanjutkan.
Artan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.