是否存在类似于A * A -1 = I的任何数学属性,可用于测试单位测试中格式的行列式的计算?
答案 0 :(得分:3)
手动计算已知数组(或数组)的行列式,并将结果与该数字进行比较。
尝试不同大小,排列等的数组。
顺便说一下,我不会使用A * A -1 = I作为反向或乘法的确定性测试。单元测试通常针对特定的常量结果测试一件事。测试两个抵消操作可能会导致误报 - 例如你的“乘法”代码只能返回常量标识数组,你的测试不会失败。
答案 1 :(得分:1)
您可能需要查看http://en.wikipedia.org/wiki/Determinant#Properties_of_the_determinant。 其中一些在单元测试中非常简单(例如det(I)= 1,det(A T )= det(A),det(cA)= c n det(A)),直接或用于推导特定的“极端情况”。
还有其他属性依赖于其他矩阵操作的正确实现。这可能会使它们对于单元测试目的而言不那么有趣,因为您无法轻易确定测试失败。
答案 2 :(得分:0)
你可以使用Sylvester's theorem获得一些测试用例在链接的符号中,如果你将A作为列向量而将B作为行向量,那么右边是标量的行列式,这就是那个标量。
更明确地我说如果A和B是向量而M是矩阵
M[i,j] = I[i,j] + A[i]*B[j]
(我是单位矩阵)然后
det( M) = 1 + Sum{ i | A[i]*B[i]}