Hello all

First, I have to say I'm a chemist, so my knowledge of compu sci and linear algebra is somewhat limited.

I am modelling something and am using the routine dgesdd_ once per time step. It works fine for my first ~100 time steps, but more often than not ( I played around with some parameters) I end up with a 1-error, which corresponds to: "DBDSDC did not converge". Here are the characteristics of my matrix:

- Start around 40 x 40 and grow at each time step. SVD crashes at about 200 x 200.

- The matrix is somewhat sparse (about 2/3 of entries are 0)

- Typical Eigenvalues between 2e-18 and 0.05 , but my SVDtreshold is either 0.01 or 0.001, so about only 4-10 Eigenvalues are retained to define the solution space.

- Of course, matrix size and such (ie:workspace size) is changed everytime I access dgesdd

So, can anybody help me with any the following:

Q1 To identify the features of the matrix that make DBDSDC unable to converge

Q2 To find a way around this (specifically, I was thinking to identify the iterative loop in DBDSDC and increase the number of loop. Unfortunately, I do not have the computer skills to tackle this juggernaut:

http://www.netlib.org/lapack/double/dbdsdc.f

Q3. Maybe anybody knows another way of inverting singular (and almost singular) matrices or other packages that I could try.

Q4. If this is an inappropriate place to post this kind of question (then, I am really sorry) to point me to other forum/documentation on the subject.

Thanks y'all