np.linalg.eig()函数处理一个(15000,15000)矩阵需要10分钟以上的时间,这正常吗?我在colab环境下用标准运行时运行这个函数。
oxosxuxt1#
对于一个N × N矩阵,该算法的规模应该是O(N^3)。因此,如果N需要T时间,那么2N需要2^3T = 8 T时间,10 N需要10^3T = 1000 T时间。在我的旧笔记本电脑上,N=1500需要3.7秒。N=3000需要22秒,这不是真正的2^3 * 3.7 = 29.6,但足够接近。现在3000 * 5 = 15000,22 * 5^3 = 2750秒= 46分钟。所以这是我的电脑应该花费的时间。所以你的电脑更快,但15分钟似乎可以!
O(N^3)
1条答案
按热度按时间oxosxuxt1#
对于一个N × N矩阵,该算法的规模应该是
O(N^3)
。因此,如果N需要T时间,那么2N需要2^3T = 8 T时间,10 N需要10^3T = 1000 T时间。在我的旧笔记本电脑上,N=1500需要3.7秒。N=3000需要22秒,这不是真正的2^3 * 3.7 = 29.6,但足够接近。现在3000 * 5 = 15000,22 * 5^3 = 2750秒= 46分钟。所以这是我的电脑应该花费的时间。所以你的电脑更快,但15分钟似乎可以!