Ada dua masalah terpisah di sini.
- Cara menggunakan pemecah yang efisien untuk untuk menerapkan .Ax=bA1/2b
- Cara menghitung determinan.
Jawaban singkatnya adalah 1) menggunakan perkiraan fungsi matriks rasional, dan 2) Anda tidak, tetapi Anda tidak perlu lagi. Saya membahas kedua masalah ini di bawah.
Perkiraan akar kuadrat matriks
Idenya di sini adalah untuk mengubah pendekatan fungsi rasional untuk fungsi skalar menjadi pendekatan fungsi rasional untuk fungsi matriks.
Kita tahu bahwa ada fungsi rasional yang dapat memperkirakan fungsi akar kuadrat dengan sangat baik,
untuk positif . Memang, untuk mendapatkan akurasi tinggi pada interval , Anda memerlukan istilah dalam seri. Untuk mendapatkan bobot yang sesuai ( ) dan kutub ( ), lihat saja perkiraan fungsi rasional secara online atau dalam buku.
x−−√≈r(x):=a1x+b1+a2x+b2+⋯+aNx+bN,
bi[m,M]O(logMm)ai−bi
Sekarang pertimbangkan untuk menerapkan fungsi rasional ini ke matriks Anda:
r(A)=a1(A+b1I)−1+a2(A+b2I)−1+⋯+aN(A+bNI)−1.
Karena simetri , kita memiliki
di mana adalah dekomposisi nilai singular (SVD) dari . Jadi, kualitas aproksimasi matriks rasional setara dengan kualitas aproksimasi fungsi rasional di lokasi nilai eigen.A
||A1/2−r(A)||2=||U(Σ1/2−r(Σ))U∗||2,=maxi|σi−−√−r(σi)|
A=UΣU∗A
Mendenotasikan nomor kondisi oleh , kita dapat menerapkan untuk toleransi yang diinginkan dengan melakukan positif menggeser grafik solusi Laplacian dari formulir,
AκA1/2bO(logκ)
(A+bI)x=b.
Solusi ini dapat dilakukan dengan solver grafik Laplacian favorit Anda — saya lebih suka teknik tipe multigrid, tetapi yang ada di makalah yang Anda kutip harus baik juga. ekstra hanya membantu konvergensi pemecah.bI
Untuk makalah yang sangat baik membahas hal ini, serta teknik analisis kompleks yang lebih umum yang berlaku untuk matriks nonsimetrik, lihat Komputasi , , dan fungsi matriks terkait oleh integral konturAαlog(A) , oleh Hale, Higham, dan Trefethen (2008 ).
"Perhitungan" determinan
Penentu lebih sulit untuk dihitung. Sejauh yang saya tahu, cara terbaik adalah untuk menghitung Schur dekomposisi menggunakan algoritma QR, kemudian membaca dari nilai eigen dari diagonal dari atas-matriks segitiga . Ini membutuhkan waktu , di mana adalah jumlah node dalam grafik.A=QUQ∗UO(n3)n
Namun, menghitung faktor penentu adalah masalah yang pada dasarnya tidak dikondisikan, jadi jika Anda pernah membaca makalah yang mengandalkan komputasi faktor penentu dari matriks besar, Anda harus sangat skeptis terhadap metode ini.
Untungnya, Anda mungkin tidak benar-benar membutuhkan determinan. Sebagai contoh,
Kita dapat melihat sebagai pembaruan peringkat rendah untuk identitas,
mana numerik efektif peringkat, , dari pembaruan peringkat rendah adalah ukuran lokal tentang seberapa non-Gaussian distribusi sebenarnya; biasanya ini jauh lebih rendah daripada peringkat penuh dari matriks. Memang, jika besar, maka distribusi yang sebenarnya adalah lokal sehingga non-Gaussian sehingga orang harus mempertanyakan seluruh strategi mencoba sampel distribusi ini menggunakan perkiraan Gaussian lokal.A−1x0Axp
A−1x0Axp=I+QDQ∗,
rr
Faktor peringkat rendah dan dapat ditemukan dengan SVD acak atau Lanczos dengan menerapkan matriks
ke vektor yang berbeda, setiap aplikasi yang membutuhkan satu grafik Solusi Laplacian. Jadi pekerjaan keseluruhan untuk mendapatkan faktor-faktor peringkat rendah ini adalah .QD
A−1x0Axp−I
O(r)O(rmax(n,E))
Mengetahui , rasio penentu kemudian
D=diag(d1,d2,…,dr)
det(A−1x0Axp)=det(I+QDQ∗)=exp(∑i=1rlogdi).
Teknik perhitungan ransum penentu peringkat rendah ini dapat ditemukan dalam Metode MCMC Newton Stochastic untuk Masalah Pembalikan Statistik Skala Besar dengan Aplikasi untuk Seismic Inversion , oleh Martin, et al. (2012). Dalam makalah ini diterapkan untuk masalah kontinum, sehingga "grafik" adalah kotak dalam ruang 3D dan grafik Laplacian adalah matriks Laplacian yang sebenarnya. Namun, semua teknik berlaku untuk grafik umum Laplacians. Mungkin ada makalah lain yang menerapkan teknik ini untuk grafik umum sekarang (ekstensi itu sepele dan pada dasarnya apa yang baru saja saya tulis).