Построение обратной матрицы

Материал из Викиконспекты
Перейти к: навигация, поиск

Описание алгоритма[править]

Пусть [math]A[/math] — исходная матрица. Тогда построим дополненную матрицу [math](A|E)[/math], где [math]E[/math] — единицная матрица соответсвующей размерности. Далее, в соответвии с преобразованиями Гаусса мы последовательно проходимся по всем строкам, вычитая из них линейные комбинации предыдущих. В итоге, мы получим матрицу [math](E|N)[/math], где [math]N[/math] — матрица, обратная к матрице [math]A[/math].

Псевдокод[править]

  • [math]\mathtt{A}[/math] — исходная матрица.
  • [math]\mathtt{E}[/math] — единичная матрица.
  • [math]\mathtt{N}[/math] — обратная матрица.
function buildInverseMatrix(A: int[n][n])
   N = E
   for i = 0 to nonabs - 1
      if A[i][i] [math] \neq [/math] 1
         mul = A[i][i]
         for j = 0 to nonabs - 1
            A[i][j] /= mul
            N[i][j] /= mul
      for row = 0 to nonabs - 1
         if i [math] \neq [/math] row
            mul = E[row][i]
            for j = 0 to nonabs - 1
               A[row][j] -= mul * A[i][j]
               N[row][j] -= mul * N[i][j]
   return N

Источники информации[править]