首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >brightway2中的技术领域矩阵可以有多大

brightway2中的技术领域矩阵可以有多大
EN

Stack Overflow用户
提问于 2019-01-21 18:52:59
回答 1查看 103关注 0票数 0

在Brightway2中,有多大的技术球矩阵仍然是可逆的?据我所知,here Brightway使用Pardiso库的包装器来加速矩阵求逆。与标准的scipy库相比,Pardiso确实要快得多。但是当我测试它时,我遇到了超过10000行的矩阵的内存问题。为了反转矩阵,我需要定义一个numpy数组,它在我的笔记本电脑上不能超过1000000行。

代码语言:javascript
复制
from pypardiso import spsolve
import numpy as np
ar=csc_matrix(np.eye(10000))
%time spsolve(ar,np.eye(10000))

这是不是达到了极限,或者我可以绕过numpy数组的使用?

(PS:我使用标准的scipy求解器进行了测试,我可以求出10^5行的稀疏矩阵,但速度非常慢)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-23 19:52:35

我知道Adrian Haas使用的是超过10万行/列的稀疏矩阵。唯一的限制应该是你机器的内存,而不是软件本身。

您可以在合理的时间内逐列创建倒数,并获得更好的数值稳定性和pardiso的速度:

代码语言:javascript
复制
In [1]: from brightway2 import *

In [2]: import pyprind

In [3]: from time import time

In [4]: db = Database("ecoinvent 3.5 cutoff")

In [5]: def invert(database):
   ...:    lca = LCA({database.random(): 1})
   ...:    lca.lci()
   ...:    for act in pyprind.prog_bar(database):
   ...:        lca.redo_lci({act: 1})
   ...:

In [6]: start = time(); invert(db); print(time() - start)
0%                          100%
[##############################] | ETA: 00:00:00
Total time elapsed: 00:03:21
202.16850423812866

然而,根据我的经验,很少有人真正需要与技术领域相反的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54288383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档