Apakah ada algoritma SVD terpotong yang menghitung nilai singular satu per satu?
Masalah saya: Saya ingin menghitung nilai singular pertama (dan vektor singular) dari matriks padat , tapi saya tidak tahu apa nilai tepat. itu besar, jadi untuk alasan efisiensi, saya lebih suka tidak mengevaluasi SVD lengkap hanya untuk memotong SV terkecil setelah itu.M k M
Idealnya, akan ada cara untuk menghitung nilai singular secara serial, dari terbesar ( ) hingga terkecil ( ). Dengan begitu, saya hanya bisa menghentikan perhitungan setelah menghitung th nilai singular jika turun di bawah ambang batas.σ 1 σ n k σ k / σ 1,
Apakah ada algoritma seperti itu (lebih disukai dengan implementasi Python)? Dalam googling saya, saya hanya menemukan fungsi SVD terpotong yang menggunakan k sebagai parameter, sehingga memaksa Anda untuk menebaknya secara apriori.