C ++反转矩阵

时间:2012-03-08 14:12:14

标签: c++ matrix linear-algebra matrix-inverse

以下动态数组包含非对称n * n矩阵(n <= 100):

int **matrix;
matrix = new int*[n];
for (int i = 0; i < n; i++)
    matrix[i] = new int[n];

有一种非常简单的方法来反转它吗?理想情况下,我只使用STL中的某些内容或下载单个头文件。

2 个答案:

答案 0 :(得分:9)

使用Eigen。

http://eigen.tuxfamily.org/index.php?title=Main_Page

您可以将数组映射到Eigen矩阵,然后执行有效的矩阵求逆。

您只能包含它。

我补充说,通常如果你必须执行线性系统求解的反演,最好使用基于你可以利用的矩阵属性的矩阵分解。

http://eigen.tuxfamily.org/dox/TutorialLinearAlgebra.html

答案 1 :(得分:3)

不是非常简单但有效:Numerical Recipes in c第48页,使用LU分解。