Python中(大)1554 x 1554矩阵的行列式

Python中(大)1554 x 1554矩阵的行列式,python,numpy,matrix,Python,Numpy,Matrix,我需要在python中以单精度计算大型15541554值矩阵的行列式。在执行此操作时,我遇到一个运行时警告: import numpy as np from numpy import linalg as LA a = np.random.random((1554, 1554)) b = np.random.random((1554, 1554)) c = np.dot(a,b) det = LA.det(c) RuntimeWarning:det中遇到溢出 r=\u umath\u

我需要在python中以单精度计算大型15541554值矩阵的行列式。在执行此操作时,我遇到一个运行时警告:

import numpy as np

from numpy import linalg as LA

a = np.random.random((1554, 1554))

b = np.random.random((1554, 1554))

c = np.dot(a,b)

det = LA.det(c)
RuntimeWarning:det中遇到溢出 r=\u umath\u linalg.det(a,签名=签名)

关于我如何解决这个问题有什么想法吗?非常感谢


编辑:这个问题的独特之处在于,它特别指的是以双精度计算大型矩阵的行列式,尽管这里包含了一个可能的答案:

您可以使用这个关系:

因此,将矩阵除以平均值,然后计算行列式以避免溢出。之后,可以将平均值乘以n的幂(一个轴的长度)


编辑:我不确定平均值是否是理想的选择。这更像是一个数学问题

为什么你需要行列式?它是否会对较小的矩阵发出溢出警告?@JamieMac check@Warren Why not?公平地说,你的问题不是链接问题的重复,即使其中一个答案解决了你的特定问题…OP使用np.random.random()生成他的矩阵,这意味着平均值约为0.5。这不会使计算更复杂吗?