By "converge" you of course mean "terminate", convergence being a property
of an infinite sequence...
It is true that the DVSDC code does not always terminate but I have only
seen that happen when IEEE rounding is disabled by optimization. [On the
other hand, with exact arithmetic the DSVDC iteration is, so far as I
know, guaranteed to converge.]
I am sure there is reasonable rule of thumb for the number of iterations
to required but it is beyond my competence. Golub and Van Loan give
nominal flops required but their termination criterion is different.
Maybe someone could look into getting another SVD from somewhere.
On Thu, 21 Nov 2002, Brendan McCane wrote:
> In message <Pine.LNX.4.44.0211201044030.12401100000@...>,
> Frederik Schaffalitzky writes:
> >
> > This is a common problem with big matrices; I use maxit = 1000. It is
> > strange that the linpack SVD code has a fixed upper bound on the number of
> > iterations since that limits the size of the matrices that can be used. It
> > would probably be safe to remove the limit altogether.
>
> Hmmm. I really don't know what I'm talking about here, but I thought there was
> some small chance that the svd won't converge, in which case removing the
> limit is a bit risky. Also, I think it would be worth documenting this maxit
> problem in the svd documentation  ie move the comments from inside the svd
> code to the doxygen svd docs.
>
> Also, does anyone know if there is a simple relationship between the size of
> the matrix and the max number of iterations needed? Perhaps we could make an
> educated guess at the maximum number maxit should be?
