我知道如何在1x1 2x2和3x3中找到这些,但我想制作一个程序让我输入矩阵的维数,然后输入矩阵中的数字。输入数字后,我希望它给出确定性(如果能够得到一个)和矩阵的逆矩阵,但我不知道如何绕过维度部分。有什么好的开始呢?我应该使用什么标题?我在Linux上运行,所以我没有像Windows一样的标题,如果有帮助的话。 :)如何制作一个C++程序来查找任意大小的矩阵的确定和逆矩阵?
0
A
回答
1
首先挑选一本线性代数书。吉尔伯特斯特朗的一个。它看起来像一个不错的故事书。经过LU分解并进一步进入特征值和特征向量。在这个过程中,你会找到两个问题的答案。
1
一个简单的方法就是使用像Eigen这样的库。
如果你真的想自己做,你必须
- 决定如何表述你的存储矩阵,
- 编写代码读取和存储按照自己的定义的矩阵,
- 根据您的定义编写代码以计算矩阵的逆/行列式。
很明显,2.和3.取决于您对1的选择,并且找到一个好的表示并非微不足道,而是取决于您的应用程序,例如,矩阵将会变大或者稀疏或密集。
如果您不关心效率或只是假设您的矩阵很小,那么您可能想要将矩阵表示为一维向量。例如,你有一个4x4的矩阵,你可以分配一个长度为16的向量。
如果我正确理解你的问题,你实际上是在问怎么动态地(在运行时)这样做。使用数组,它看起来是这样的:
double* yourMatrix
yourMatrix = new double[columnCount * rowCount];
这种动态分配空间columnCount * rowCount
double
秒,您现在可以访问该存储器就像一个静态数组。当你完成后,你必须delete[] yourMatrix
以防止内存泄漏。
如果您知道如何计算纸张上的行列式/反比,您应该可以从这里开始。
相关问题
- 1. 查找3X3矩阵的小矩阵C
- 2. 查找逆矩阵
- 3. 从给定的矩阵中找出最大矩阵和最小矩阵
- 4. Python中的矩阵和逆矩阵
- 5. 矩阵大小确定
- 6. maxima中的任意大小矩阵
- 7. 良好的矩阵求逆程序C
- 8. 查找给定矩阵的子矩阵
- 9. Java中矩阵的Co因子(用于确定矩阵的逆矩阵)
- 10. 从另一个矩阵制作矩阵
- 11. 逆矩阵的在C++
- 12. C++的PETSc矩阵求逆
- 13. 找到一个可逆子矩阵
- 14. 创建2 x 2矩阵并查找其逆矩阵
- 15. Python的逆矩阵
- 16. 矩阵逆Swift
- 17. PHP逆矩阵
- 18. 逆矩阵3f
- 19. 在OpenCV中使用子矩阵制作一个大矩阵
- 20. 使用lapack在C/C++中计算矩阵的逆矩阵
- 21. 在python中有大值的矩阵的矩阵求逆
- 22. 如何计算巨大元素大小的休矩阵逆?
- 23. Armadillo C++没有找到矩阵逆
- 24. 矩阵模板库矩阵求逆
- 25. 矩阵大小限制
- 26. 如何使用JAMA(Java矩阵包)计算矩阵的伪逆矩阵?
- 27. 如何找到三个矩阵的每个最大元素作为新矩阵?
- 28. 如何在Java中创建任意大小的单位矩阵?
- 29. 固定大小的矩阵和也许
- 30. 在大矩阵中找到矩阵
首先,您是否理解采用NxN矩阵行列式的(纸)数学?并找到一个NxN矩阵的逆? – Cornstalks 2013-02-19 23:11:52
你应该了解你如何在纸上做这件事(即了解它背后的数学),那么它就会变得清晰。除非你只想反转矩阵,但不要自己写,那么你可以使用像Eigen这样的库。 – us2012 2013-02-19 23:12:03
假设矩阵是正方形的,你可能要找的是一个原地矩阵求逆算法。 你应该检查出http://math.stackexchange.com/questions/16940/in-place-inversion-of-large-matrices – user2051349 2013-02-19 23:12:10