Scipy溶解比Matlab mldivide慢几个数量级

时间:2019-05-11 22:35:57

标签: python matlab numpy scipy linear-algebra

好,所以我有一个线性系统。 A是稀疏的29791 x 29791,具有202771个存储的元素。 B是29791 x 1,其中存储了4561个元素。

我尝试通过将A存储为csr_matrix和csc_matrix以及将B存储为常规numpy数组来解决此系统。 csr和csc矩阵都需要大约一分钟才能解决。然后,我尝试将三胞胎(行,列,数据)保存为csv格式,并将其导入到matlab中,然后执行以下操作:

Asp = sparse(data(:, 1), data(:, 2), data(:, 3))
P = Asp\b

这大约需要一秒钟,甚至更少。为什么MATLAB比scipy快近2个数量级,我如何加快计算速度?甚至matlab mldivide也只需不到2秒的时间。

A = csc_matrix((data, (np.asarray(rows), np.asarray(cols))), shape=A_shape)
P = spsolve(A, csc_matrix(B))

我希望scipy的最大溶解速度是matlab反斜杠的两倍,但不是。

0 个答案:

没有答案