Нахождение обратной матрицы C#
static int Determinant(int[,] mas, int m)
{
int i, j, d, k, n;
int[,] p = new int[m, m];
j = 0; d = 0;
k = 1; //(-1) в степени i
n = m - 1;
if (m < 1)
{
Console.WriteLine("Определитель вычислить невозможно!");
}
if (m == 1)
{
d = mas[0, 0];
return (d);
}
if (m == 2)
{
d = mas[0, 0] * mas[1, 1] - (mas[1, 0] * mas[0, 1]);
return (d);
}
if (m > 2)
{
for (i = 0; i < m; i++)
{
GetMatr(mas, p, i, 0, m);
d = d + k * mas[i, 0] * Determinant(p, n);
k = -k;
}
}
return d;
}
static void GetMatr(int[,] mas, int[,] p, int i, int j, int m)
{
int ki, kj, di, dj;
di = 0;
for (ki = 0; ki < m - 1; ki++)
{ // проверка индекса строки
if (ki == i) di = 1;
dj = 0;
for (kj = 0; kj < m - 1; kj++)
{ // проверка индекса столбца
if (kj == j) dj = 1;
p[ki, kj] = mas[ki + di, kj + dj];
}
}
}
Определитель вроде находиться. Но не факт то правильно. Подскажите пожалуйста дальше алгоритм, как найти обратную матрицу?