说明(这是一个问题HWK):代码来解决决定使用Python不使用scipy.linalg.det
我不知道在哪里可以从这里开始。我打算使用拉普拉斯的扩展,但我不知道如何实现它的nxn矩阵。任何帮助,将不胜感激。
注:我已经有一个函数产生一个n×n的矩阵随机矩阵。计算时间也不是问题。我遇到的唯一问题是如何计算行列式。
不得不删除我的阶级政策的问题,说明B/C。
说明(这是一个问题HWK):代码来解决决定使用Python不使用scipy.linalg.det
我不知道在哪里可以从这里开始。我打算使用拉普拉斯的扩展,但我不知道如何实现它的nxn矩阵。任何帮助,将不胜感激。
注:我已经有一个函数产生一个n×n的矩阵随机矩阵。计算时间也不是问题。我遇到的唯一问题是如何计算行列式。
不得不删除我的阶级政策的问题,说明B/C。
好吧,这里有一个提示。
sum
)中提琴,你有一个决定因素。
另外,不要忘记,因为这样,我们用Python语言编写的列表,指数得到逆转。也就是说,如果
M = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
则M 0,1是2,而不是4,因为这将在正常符号。你可以把它想象成一个转置或使用zip
那么对于索引,首先计算列,然后计算行数? – 2010-09-29 07:46:27
@shagster否,首先是行然后是列。查看代码并思考它。 (至少对我来说,正常的方式是列,行)“首先你走下大厅,然后你走上电梯”)这里真的没什么意义,因为D(A^t)= D(A) – aaronasterling 2010-09-29 07:52:01
这里是用于找到矩阵行列式的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
注意,输入是代表NxN矩阵
这不是一个真正的规划问题数组的数组。也许如果你提出一些代码,那么有人可以帮你纠正它。你有什么尝试? – aaronasterling 2010-09-29 07:22:56
哦,是啊是的,我需要的是如何把这个转换成代码的策略。 – 2010-09-29 07:28:27
男人,我认为你真的需要应用自己。这听起来像是给了我codez – Anycorn 2010-09-29 07:36:23