后注:这个函数只对2,3维矩阵有效,存档在此,权当自嘲,这里《python矩阵运算》实现了一个有效的求行列式的算法
python本身对科学计算支持的不够,相关算法都是numpy来实现的。最近数据挖掘的项目需求,需要复习久违的线性代数的知识,下面的一个计算矩阵行列式的算法实现,权当复习连手。
def MatrixGetDet(M):
length = len(M)
if length == 2:
return M[0][0]*M[1][1] - M[0][1]*M[1][0]
import itertools
# sum positive
positive = 0
indexer1 = itertools.cycle(range(length))
indexer2 = itertools.cycle(range(length))
for index in range(length):
indexer1.next()
_tmp = 1
for index in range(length):
index1 = indexer1.next()
index2 = indexer2.next()
_tmp *= M[index1][index2]
positive += _tmp
# sum negative
negat