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

