如何在C中找出NXN矩阵的逆矩阵

问题描述

大家好,我对代码进行了一些更改,以便于理解,到目前为止,我将函数的原型保留在代码的开头,并且可以正常工作,但仅当我工作时,它才能正常工作尝试使用2x2矩阵,因为如果尝试使用3x3、4x4或6x6矩阵,它将无法正常工作,行列式计算不正确,我想这就是行列式的问题,但我不知道如何解决。这是代码

asyncio

解决方法

似乎您正在通过Cramer's rule找到逆矩阵。尽管它对于2x2或3x3矩阵大小都可以正常工作,但是实现Cramer规则的困难部分通常是评估行列式。如果按照该定义计算NxN行列式,则该计算是递归的,并且具有阶乘O(N!)计算复杂度(Wikipedia)。

我建议切换到另一种算法。 LUP分解快速且相对简单,Wikipedia has an example implementation