c++ - 在不创建子矩阵的情况下在 C++ 中计算矩阵的行列式

标签 c++ algorithm matrix

有没有一种方法可以在 C++ 中仅使用一个变量(第一个加载矩阵)并在下一个递归函数中仅使用该矩阵的引用来确定给定矩阵的行列式?

如何使用矩阵中元素的坐标来确定给定矩阵的子矩阵的行列式而不将它们创建为矩阵,仅使用第一个矩阵中的元素及其坐标?可以使用递归来完成还是不应该使用递归?

最佳答案

如果您尝试使用 Cramer 规则计算任何大于 3x3 的矩阵的行列式,那么您肯定做错了什么。性能会很糟糕。

对于您来说,最简单的方法可能是使用行缩减将其变成上三角矩阵。找到上三角矩阵的行列式很容易——只需向下乘对角线即可。至于其余部分,只需乘以您使用的常数因子,并记住每次交换都是 -1。

关于c++ - 在不创建子矩阵的情况下在 C++ 中计算矩阵的行列式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50608515/

相关文章:

c++ - OpenCV矩阵和int矩阵之间的转换

在c中复制矩阵

c++ - SetSuspendState() API 在 Win8 中永远不会返回

c++ - OpenCV:将 Mat 转换为 UChar4

algorithm - 逆向运动学的CCD算法的工作

java - 获得原始字符串所需的最小旋转次数

algorithm - 寻找具有零边界的岛屿

c++ - 函数调用的成本是多少?

c++ - OpenMP 和#pragma omp atomic

计算范数/内积的C算法