在不使用 scipy.linalg.det 的情况下使用 Python 求解行列式的代码

the*_*ist 4 python numerical matrix determinants

描述(这是一个 hwk 问题):

我不知道从哪里开始。我计划使用拉普拉斯扩展,但我不确定如何为 nxn 矩阵实现它。任何帮助,将不胜感激。

注意:我已经有一个函数可以为 nxn 矩阵生成随机矩阵。计算的时间也不是问题。我唯一有问题的是如何计算行列式。

不得不删除我的班级政策的问题描述 b/c。

sta*_*her 5

这是用于查找矩阵行列式的 adjucate 方法的递归 python 代码。

def getMatrixMinor(m,i,j):
    return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])]

def getMatrixDeternminant(m):
    #base case for 2x2 matrix
    if len(m) == 2:
        return m[0][0]*m[1][1]-m[0][1]*m[1][0]

    determinant = 0
    for c in range(len(m)):
        determinant += ((-1)**c)*m[0][c]*getMatrixDeternminant(getMatrixMinor(m,0,c))
    return determinant
Run Code Online (Sandbox Code Playgroud)

请注意,输入是表示 nxn 矩阵的数组数组