forum.alglib.net
http://forum.alglib.net/

SVD solver
http://forum.alglib.net/viewtopic.php?f=2&t=483
Page 1 of 1

Author:  toks [ Mon Nov 14, 2011 11:56 am ]
Post subject:  SVD solver

Hello, my name is Vsevolod, I would like to ask about SVD-based solver implemented in alglib library.

As far as I know, alglib solver for system of linear equations based on QR and SVD matrix decompositon.
So if we have system of equations Ax = b, then if cond(a) > sqrt(5e-16) we use QR decomposition of matrix A, otherwise we use SVD decomposition.
The question is, whether alglib use just ordinary Moore–Penrose pseudoinverse for solving system of linear equations, or it uses Truncated SVD. I mean does alglib cutoff(make equal zero) small singular values or not.
If does, so what is the threshold. I mean how small should singular value be for cutting of(for alglib made it equal to zero)

Thanks a lot in advance!!!!

Author:  Sergey.Bochkanov [ Tue Nov 15, 2011 11:19 am ]
Post subject:  Re: SVD solver

Hello!

ALGLIB uses truncated SVD, i.e. it throws away very small singular values.

Author:  toks [ Wed Nov 16, 2011 11:10 am ]
Post subject:  Re: SVD solver

Sergey.Bochkanov wrote:
Hello!

ALGLIB uses truncated SVD, i.e. it throws away very small singular values.


Thanks, a lot for answer. And can u say threshold for throwing away small singular values?
How small should be singular value for throwing away?(Should it be of order about 1e-300,
or order 1e-14 is also enough for throwing away?)

How does alglib determine whether this singular value small or not(for throwing away). Does it depend on some parameters, for example value of the biggest singular value or smth else?

Thanks a lot!
Best, regards!

Author:  Sergey.Bochkanov [ Thu Nov 17, 2011 9:14 am ]
Post subject:  Re: SVD solver

ALGLIB uses threshold approximately equal to sv_max*10^(-14). It makes solver scale-invariant - you can multiply your matrix by arbitrary number, and still solver will use same set of singular values. Smaller thresholds (like 1e-300) do not make sense because such small singular values are just numerical noise.

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/