following question: I am using TSVDUnfold to unfold a smearing matrix in three several kinematic variables. This makes the smearing matrix (detector response matrix) quite large, 1089x1089. I get the following error message:
Error in ;TDecompSVD::Diagonalize;: no convergence after 10988 steps
It also doesn’t converge when I let it run for some more time, I just get more error messages.
I don’t think the matrix looks very ill conditioned, it is mostly diagonal, with some off diagonal elements and off-diagonal ‘blocks’, since the coordinate in the matrix is made of the bins of three variables.
If I restrict the matrix to 99x99 by only using two kinematical variables it works without problems.
So my question is, should it work with a large matrix like that?
And if so, is there something I can do to make it converge (normalize in some way etc…)
thanks for the reply. I have the precompiled version, so I’ll try the rescaling. Any guidance on that? E.g. should I scale up or down, should I for a maximum value of 1?
I can try to compile myself and increase the maximum number of iterations. But if I understand you correctly, that just suppresses the error messages and wouldn’t help with the actual convergence…
I tried to increase the number of steps from 10 to 100 * number of columns but I get the same error message (albeit now after 10 times more iterations).
Any tips on how to rescale the matrix?