"纽比.利纳格.利纳格.LinAlgError:SVD没有在一个非常简单的examp上收敛

2024-10-02 00:39:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个非常简单的任务,求矩阵m1203的奇异值分解。原料.mat'是一个非常稀疏的矩阵,只包含少数值,即

awk '{for(i=1;i<=NF;++i){print $i}}' m1203.raw.mat | sort | uniq -c

退货

^{pr2}$

但是矩阵的大小几乎是一个MB(否则我会附上它)

无论如何,这个简单的任务

import numpy

a = numpy.loadtxt('m1203.raw.mat')

s = [float(i) for i in range(-7,8)]

for r in a :
  for c in r :
    assert(c in s)

numpy.linalg.svd(a)

给予

Traceback (most recent call last):
  File "trial.py", line 4, in <module>
    numpy.linalg.svd(a)
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 1327, in svd
    u, s, vt = gufunc(a, signature=signature, extobj=extobj)
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 99, in _raise_linalgerror_svd_nonconvergence
    raise LinAlgError("SVD did not converge")
numpy.linalg.linalg.LinAlgError: SVD did not converge

有什么想法吗?在


Tags: inpynumpyforrawlibusrdist

热门问题