我有以下类型的20x20大小的矩阵。我想在MCMC(马尔可夫链蒙特卡洛)中加快矩阵乘法T。在每个模拟中,矩阵矩阵乘法发生近360次。除了几乎总是有值的最后一列(s20)之外,它几乎可以三重诊断。
s1 s2 s3 s4 ....... s20
-------------------------------------------
s1 | p11 p12 0 0 ...0... p1_20
s2 | p21 p22 p23 0 ...0... p2_20
s3 | 0 p32 p33 p34 ...0... p3_30
: |
s20| 0 ...0... 1
我的问题是:
对于这种大小,我应该考虑使用稀疏矩阵而不是现有的密集矩阵吗?在给定的每个时间步都增加了转换为稀疏格式的步骤的情况下,稀疏表示是否会在节省内存的同时节省计算时间?
在这种特定情况下,应使用什么稀疏表示形式。它不是对角线,而是几乎
我应该使用哪种稀疏矩阵乘法算法?
在稀疏矩阵形式和乘法算法方面是否有任何以python3 SciPy为中心的建议?