C++ 单元测试3X3或4X4行列式

C++ 单元测试3X3或4X4行列式,c++,unit-testing,math,C++,Unit Testing,Math,是否有类似于A*A-1=I的数学属性可用于以类似单元测试的格式测试行列式的计算?手动计算已知数组的行列式,并将结果与该数字进行比较 尝试不同大小、排列等的阵列 顺便说一下,我不会用A*A-1=I作为求逆或乘法的最终测试。单元测试通常针对特定的、恒定的结果测试一件事情。测试两个偏移操作可能会导致误报-例如,“乘法”代码可能只返回常量标识数组,测试不会失败。手动计算已知数组的行列式,并将结果与该数字进行比较 尝试不同大小、排列等的阵列 顺便说一下,我不会用A*A-1=I作为求逆或乘法的最终测试。单元

是否有类似于A*A-1=I的数学属性可用于以类似单元测试的格式测试行列式的计算?

手动计算已知数组的行列式,并将结果与该数字进行比较

尝试不同大小、排列等的阵列


顺便说一下,我不会用A*A-1=I作为求逆或乘法的最终测试。单元测试通常针对特定的、恒定的结果测试一件事情。测试两个偏移操作可能会导致误报-例如,“乘法”代码可能只返回常量标识数组,测试不会失败。

手动计算已知数组的行列式,并将结果与该数字进行比较

尝试不同大小、排列等的阵列

顺便说一下,我不会用A*A-1=I作为求逆或乘法的最终测试。单元测试通常针对特定的、恒定的结果测试一件事情。测试两个偏移操作可能会导致误报-例如,“乘法”代码可能只返回常量标识数组,测试不会失败。

您可能需要检查。 其中一些在单元测试中非常容易检查(例如,det(I)=1、det(AT)=det(a)和det(cA)=cn-det(a)),可以直接检查,也可以用于导出特定的“角案例”

其他属性取决于其他矩阵操作的正确实现。这可能会使它们在单元测试中变得不那么有趣,因为您无法轻松地确定测试失败。

您可能需要检查。 其中一些在单元测试中非常容易检查(例如,det(I)=1、det(AT)=det(a)和det(cA)=cn-det(a)),可以直接检查,也可以用于导出特定的“角案例”


其他属性取决于其他矩阵操作的正确实现。这可能会使它们在单元测试中变得不那么有趣,因为您不能很容易地确定测试失败。

您可以在链接的符号中使用一些测试用例,如果您将a作为列向量,B作为行向量,那么右边就是标量的行列式,也就是那个标量

更明确地说,如果A和B是向量,m是矩阵

M[i,j] = I[i,j] + A[i]*B[j]
(I)单位矩阵)然后


您可以在链接符号中使用一些测试用例,如果您将A作为列向量,B作为行向量,那么右侧是标量的行列式,也就是那个标量

更明确地说,如果A和B是向量,m是矩阵

M[i,j] = I[i,j] + A[i]*B[j]
(I)单位矩阵)然后


你所说的“测试行列式的计算”是什么意思?你的意思是如果你能反转一个矩阵?Gauss-Jordan消去法可用于检查矩阵是否是不可逆的。我认为OP希望使用一些已知的特征来验证行列式计算(例如,通过与原始值相乘并获得单位数组来“验证”逆)。你所说的“测试行列式的计算”是什么意思?你的意思是如果你能反转一个矩阵?Gauss-Jordan消元法可用于检查矩阵是否为不可逆矩阵。我认为OP希望使用一些已知特征来验证行列式计算(例如,通过与原始矩阵相乘并获得单位数组来“验证”逆矩阵)。