Ich habe die SVD von Intel MKL ( dgesvd
über SciPy) verwendet und festgestellt, dass die Ergebnisse erheblich voneinander abweichen, wenn ich die Genauigkeit zwischen float32
und float64
wenn meine Matrix schlecht konditioniert ist / nicht den vollen Rang hat. Gibt es einen Leitfaden zum Mindestmaß an Regularisierung, das ich hinzufügen sollte, um die Ergebnisse unempfindlich gegenüber float32
-> float64
Änderungen zu machen?
Insbesondere wenn ich mache , sehe ich, dass sich die L ∞ -Norm von V T X um ungefähr 1 bewegt, wenn ich die Genauigkeit zwischen und ändere . Die L 2 -Norm von A ist 10 5 und hat ungefähr 200 Null-Eigenwerte von insgesamt 784.float32
float64
Durch SVD auf mit λ = 10 - 3 verschwand der Unterschied.