Why in SVD convergence can depend on precision?


stefano_s
03-15-2010, 11:21 AM
Dear members,
I am using the subroutine SVDCMP_DP to evaluate the SVD of a square and symmetric matrix M.
If I use only 4 digits after the decimal point (ainit4_right.txt) the subroutine works well, while if I use the same matrix M with 15 digits after the decimal point (ainit4_wrong.txt) then the subroutine returns the following message:
NO CONVERGENCE IN SVDCMP.

Why different precisions can lead to such different results?
Is anybody able to handle convergence problems with the subroutine SVDCMP_DP?

thank you for your eventual help
Stefano

davekw7x
03-15-2010, 05:41 PM
...
NO CONVERGENCE IN SVDCMP....

The problem is described here: http://www.nr.com/forum/showthread.php?t=292&highlight=svdcmp+convergence

The fix described in post #11 of that thread worked on my system (GNU gfortran version 4.1.2 on Centos 5.4) for your matrix.

Regards,

Dave