Description
Original ticket http://projects.scipy.org/numpy/ticket/990 on 2009-01-31 by trac user MikeTrumpis, assigned to @charris.
I'm running into a "!LinAlgError: SVD did not converge" in both numpy and scipy for a given matrix (npy file linked below). The matrix is very badly conditioned (but SVD is meant for that).
np version 1.3.0.dev6083
mac os 10.4, lapack_lite built with -Wl,-framework -Wl,Accelerate
I can get results for this matrix using the SVD routines of either Matlab or Octave.
This is similar to ticket #1304, but the solution there (r4914) can't help me, since my build doesn't use dlapack_lite.c. Since I can get solutions in Matlab and Octave, perhaps there is some post-LAPACK solution for numpy too?
https://cirl.berkeley.edu/twiki/pub/User/MikeTrumpis/sinc_operator.npy
Mike
In [156]: [u,s,vt] = np.linalg.svd(snc_op, 1, 1)
---------------------------------------------------------------------------
LinAlgError Traceback (most recent call last)
/Users/miket/sandbox/trunk/testdata/siemens/<ipython console> in <module>()
/opt/local/lib/python2.5/site-packages/numpy/linalg/linalg.pyc in svd(a, full_matrices, compute_uv)
1024 work, lwork, iwork, 0)
1025 if results['info'] > 0:
-> 1026 raise LinAlgError, 'SVD did not converge'
1027 s = s.astype(_realType(result_t))
1028 if compute_uv:
LinAlgError: SVD did not converge
In [157]: [u,s,vt] = sp.linalg.svd(snc_op, full_matrices=1, compute_uv=1)
---------------------------------------------------------------------------
LinAlgError Traceback (most recent call last)
/Users/miket/sandbox/trunk/testdata/siemens/<ipython console> in <module>()
/opt/local/lib/python2.5/site-packages/scipy/linalg/decomp.pyc in svd(a, full_matrices, compute_uv, overwrite_a)
919 else: # 'clapack'
920 raise NotImplementedError,'calling gesdd from %s' % (gesdd.module_name)
--> 921 if info>0: raise LinAlgError, "SVD did not converge"
922 if info<0: raise ValueError,\
923 'illegal value in %-th argument of internal gesdd'%(-info)
LinAlgError: SVD did not converge