Apakah ada metode untuk menyelesaikan sistem linear dari bentuk mana adalah matriks SPD tetap dan adalah matriks diagonal positif?
Misalnya, jika setiap adalah skalar, itu sudah cukup untuk menghitung SVD dari . Namun, ini rusak untuk umum karena kurangnya komutatif.
Pembaruan : Jawaban sejauh ini adalah "tidak". Adakah yang punya intuisi yang menarik mengapa? Jawaban tidak berarti bahwa tidak ada cara nontrivial untuk mengompres informasi antara dua operator nonkomuter. Ini tidak terlalu mengejutkan, tetapi akan lebih baik untuk memahaminya dengan lebih baik.
linear-algebra
algorithms
performance
complexity
Geoffrey Irving
sumber
sumber
Jawaban:
Jawaban positif terdekat untuk pertanyaan Anda yang dapat saya temukan adalah untuk gangguan diagonal yang jarang (lihat di bawah).
Dengan itu, saya tidak tahu algoritma apa pun untuk kasus umum, meskipun ada generalisasi teknik yang Anda sebutkan untuk perubahan skalar dari matriks SPD ke semua matriks persegi:
Dengan adanya matriks kuadrat , terdapat dekomposisi Schur A = U T U H , di mana U adalah kesatuan dan T adalah segitiga atas, dan A + σ I = U ( T + σ I ) U H memberikan dekomposisi Schur dari A + σ saya . Jadi, ide perhitungan Anda meluas ke semua matriks kuadrat melalui algoritma:A A=UTUH U T A+σI=U(T+σI)UH A+σI
Garis penalaran ini mengurangi ke pendekatan yang Anda sebutkan ketika adalah SPD karena dekomposisi Schur dikurangi menjadi EVD untuk matriks normal, dan EVD bertepatan dengan SVD untuk matriks pasti-positif Hermitian.A
Tanggapan untuk memperbarui: Sampai saya punya bukti, yang tidak saya miliki, saya menolak untuk mengklaim bahwa jawabannya adalah "tidak". Namun, saya dapat memberikan beberapa wawasan mengapa itu sulit, serta subkotak lain di mana jawabannya adalah ya.
Kesulitan mendasar adalah bahwa, meskipun pembaruan diagonal, itu masih dalam peringkat penuh secara umum, jadi alat utama untuk memperbarui invers, rumus Sherman-Morrison-Woodbury , tampaknya tidak membantu. Meskipun case shift skalar juga peringkat penuh, ini adalah kasus yang sangat istimewa karena ia berpindah dengan setiap matriks, seperti yang Anda sebutkan.
Dengan mengatakan bahwa, jika masing-masing jarang, yaitu, masing-masing memiliki O ( 1 ) nonzeros, maka rumus Sherman-Morrison-Woodbury menghasilkan O ( n 2 ) diselesaikan dengan masing-masing pasangan { D , b } . Misalnya, dengan satu nol di entri j diagonal j , sehingga D = δ e j e H j :D O(1) O(n2) {D,b} j D=δejeHj
di mana adalah vektor basis standar ke- j .ej j
Pembaruan lain: Saya harus menyebutkan bahwa saya mencoba preconditioner yang disarankan @GeoffOxberry pada beberapa matriks SPD 1000 × 1000 acak menggunakan PCG dan, mungkin tidak mengherankan, tampaknya sangat mengurangi jumlah iterasi ketika | | D | | 2 / | | A | | 2 kecil, tetapi tidak ketika O ( 1 ) atau lebih besar.A−1 1000×1000 ||D||2/||A||2 O(1)
sumber
Jika adalah diagonal dominan untuk setiap i , maka karya terbaru oleh Koutis, Miller, dan Peng (lihat situs Koutis' untuk bekerja pada simetris matriks diagonal yang dominan) dapat digunakan untuk memecahkan setiap sistem di O ( n 2 log ( n ) ) waktu (sebenarnya O ( m log ( n ) ) waktu, di mana m adalah jumlah maksimum entri bukan nol dalam ( D i + A ) di atas semua(Di+A) i O(n2log(n)) O(mlog(n)) m (Di+A) , jadi Anda bisa memanfaatkan sparsity juga). Kemudian, total waktu berjalan adalah O ( n 2 log ( n ) k ) , yang lebih baik daripada pendekatan O ( n 3 k ) untuk menyelesaikan setiap sistem secara naif menggunakan aljabar linier padat, tetapi sedikit lebih buruk daripada waktu lari kuadratik yang Anda gunakan. sedang meminta.i O(n2log(n)k) O(n3k)
Sparsity yang signifikan dalam untuk semua yang saya dapat dieksploitasi oleh pemecah jarang untuk menghasilkan algoritma O ( n 2 k ) , tapi saya menduga bahwa jika Anda memiliki sparsity yang signifikan, maka Anda akan menyebutkannya.(Di+A) i O(n2k)
Anda juga dapat menggunakan sebagai prasyarat untuk menyelesaikan setiap sistem menggunakan metode berulang, dan melihat bagaimana hasilnya.A−1
Tanggapan untuk memperbarui : @JackPaulson membuat poin yang bagus dari sudut pandang aljabar linier numerik dan algoritma. Saya akan fokus pada argumen kompleksitas komputasi sebagai gantinya.
Kompleksitas komputasi dari solusi sistem linier dan kompleksitas komputasi dari perkalian matriks pada dasarnya sama. (Lihat Teori Kompleksitas Aljabar .) Jika Anda dapat menemukan algoritma yang dapat memampatkan informasi antara dua operator non-komuter (mengabaikan bagian semidefinit positif) dan langsung memecahkan kumpulan sistem yang Anda usulkan dalam waktu kuadratik dalam , maka itu kemungkinan Anda bisa menggunakan algoritma seperti itu untuk membuat kesimpulan tentang multiplikasi matriks yang lebih cepat. Sulit untuk melihat bagaimana struktur semidefinit positif dapat digunakan dalam metode langsung dan padat untuk sistem linear untuk mengurangi kompleksitas komputasinya.n
Seperti @JackPaulson, saya tidak mau mengatakan bahwa jawabannya adalah "tidak" tanpa bukti, tetapi mengingat koneksi di atas, masalahnya sangat sulit dan menarik minat penelitian saat ini. Yang terbaik yang dapat Anda lakukan dari sudut pandang asimptotik tanpa memanfaatkan struktur khusus adalah peningkatan pada algoritma Coppersmith dan Winograd, menghasilkan algoritma , di mana α ≈ 2,375 . Algoritma itu akan sulit dikodekan, dan kemungkinan akan lambat untuk matriks kecil, karena faktor konstan sebelum perkiraan asimptotik mungkin sangat besar dibandingkan dengan eliminasi Gaussian.O(nαk) α≈2.375
sumber
Ekspansi Taylor orde pertama dapat digunakan untuk meningkatkan konvergensi dari lagging sederhana. Misalkan kita memiliki preconditioner (atau faktor untuk langsung memecahkan) tersedia untuk , dan kami ingin menggunakannya untuk preconditioning A . Kita bisa menghitungA+D A
di mana ekspansi Taylor digunakan untuk menulis baris terakhir. Penerapan preconditioner ini membutuhkan dua memecahkan dengan .A+D
Ini bekerja cukup baik ketika prekondisi digeser dari 0 dengan jumlah yang sama atau lebih besar dari operator yang kita coba pecahkan dengan (misalnya ). Jika pergeseran dalam prekondisi lebih kecil ( D ≲ min σ ( A ) ), operator prekondisi menjadi tidak terbatas.D≳0 D≲minσ(A)
Jika pergeseran dalam prekondisi jauh lebih besar daripada di operator, metode ini cenderung menghasilkan angka kondisi sekitar setengah dari prakondisi oleh operator yang tertinggal (dalam tes acak yang saya jalankan, bisa lebih baik atau lebih buruk untuk kelas tertentu dari matriks). Faktor 2 dalam angka kondisi tersebut memberikan faktor dalam hitungan iterasi. Jika biaya iterasi didominasi oleh solves denganA+D, maka ini bukan faktor yang cukup untuk membenarkan ekspansi Taylor urutan pertama. Jika aplikasi matriks secara proporsional mahal (misalnya Anda hanya memiliki preconditioner yang murah untuk menerapkanA+D), maka metode urutan pertama ini mungkin masuk akal.2–√ A+D A+D
sumber