Re: [eigen] Including Spectra within Eigen 3.4

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi Yixuan, Thank you for explanation. There are numerous applications using truncated svd. I am interested in rather general problem, namely using tsvd for unfolding measured data from detector response function (measured data inverse problem). I hope that together with dominant eigen problem for large matrix efficient tsvd will be implemented in Spectra module. 
Kind regards,
Oleg


On Apr 2, 2017 6:26 PM, "Yixuan Qiu" <yixuanq@xxxxxxxxx> wrote:
Hi Oleg,

I think part of the reason is that when using Spectra to compute SVD of X, we are actually calculating the eigenvalues of X'X or XX'. However, this doubles the condition number of X, and hence the numerical precision and stability is reduced.

There are algorithms that can compute SVD without touching X'X, and I agree that these methods may be more appropriate for SVD problems. Bryan Lewis once wrote an article comparing the R pakcages "RSpectra" and "irlba", which also discussed the algorithm issues. https://bwlewis.github.io/irlba/comparison.html


Best,
Yixuan

2017-04-02 10:59 GMT-04:00 Oleg Shirokobrod <oleg.shirokobrod@xxxxxxxxx>:
Thanks Bill.
Matlab lmsvd gives the same singular values with tolerance 1.e-8 as Spectra code does with tolerance 1.e-10. It gives the same values with tolerance 1.e-19 as Spectra does with tolerance 1.e-12. It uses algorithm described in a paper: Xin Liu, Zaiwen Wen and Yin Zhang, Limited Memory Block Krylov Subspace Optimization for Computing Dominant Singular Value Decompositions, SIAM Journal on Scientific Computing, 35-3 (2013), A1641-A1668.
Does it mean that this algorithm converges faster than Spectra one?

Best regards,

Oleg Shirokobrod





--
Yixuan Qiu <yixuanq@xxxxxxxxx>
Department of Statistics,
Purdue University


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/