c++ - 在 C++ 中计算矩阵的行列式而不创建子矩阵
问题描述
有没有办法在 C++ 中仅使用一个变量(第一个加载的矩阵)来确定给定矩阵的行列式,并且在下一个递归函数中仅使用该矩阵的引用来确定行列式?
如何使用矩阵中元素的坐标来确定给定矩阵的子矩阵的行列式而不将它们创建为矩阵,只使用第一个矩阵中的元素及其坐标?可以使用递归还是不应该使用递归来完成?
解决方案
如果您尝试使用克莱默规则计算任何大小大于 3x3 的矩阵的行列式,那么您肯定做错了。性能会很糟糕。
可能对您来说最简单的方法是使用行缩减来使其成为上三角矩阵。找到上三角矩阵的行列式很容易 - 只需沿对角线相乘即可。至于其余的,只需乘以您使用的常数因子,并记住每次交换都是-1。
推荐阅读
- bootstrap-4 - class="col" 和 class="col-xs/sm/md/lg-6" 的区别
- benchmarking - [alert] HTTP 的原因是什么:无法确定块大小
- javascript - Node.js:防止异步函数的多个同时调用
- sql - 如何在我的 SQL 查询中获取最大数量
- javascript - 动态创建模型
- javascript - 返回新数组的对象数组之间的差异
- rest - Websphere App Server 7.0.0.43 - IBM Java 1.6、Apache Wink、Rest Client TLSv1.2
- javascript - 将 URL 查询字符串解析为数组
- java - 银行账户不工作
- laravel - Laravel - 使用 eloquent 根据日期范围获取数据