首页 > 解决方案 > 在 C++ 中计算矩阵的行列式而不创建子矩阵

问题描述

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

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

标签: c++algorithmmatrix

解决方案


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

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


推荐阅读