Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ invert matrix

The following dynamic array contains a non-symmetric n*n matrix (with n <=100):

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

Is there an extremely easy way to invert it? Ideally I'd only use something from the STL or download a single header file.

like image 369
pockethook Avatar asked Dec 12 '22 04:12

pockethook


2 Answers

Using Eigen.

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

You can map your array to an Eigen matrix and then perform efficient matrix inversion.

You must only include it.

I add that usually if you have to perform your inversion for linear system solving, it's better to use a matrix decomposition based on the properties of the matrix that you can exploit.

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

like image 50
linello Avatar answered Dec 27 '22 09:12

linello


Not extremely easy but it works: Numerical Recipes in c page 48, using LU decomposition.

like image 44
assylias Avatar answered Dec 27 '22 08:12

assylias