Изменения

Перейти к: навигация, поиск

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

1609 байт добавлено, 21:39, 20 марта 2018
Создание страницы
==Описание алгоритма==
Пусть <tex>A</tex> {{---}} исходная матрица. Тогда построим дополненную матрицу <tex>(A|E)</tex>, где <tex>E</tex> {{---}} единицная матрица соответсвующей размерности. Далее, в соответвии с преобразованиями Гаусса мы последовательно проходимся по всем строкам, вычитая из них линейные комбинации предыдущих. В итоге, мы получим матрицу <tex>(E|N)</tex>, где <tex>N</tex> {{---}} матрица, обратная к матрице <tex>A</tex>.
==Псевдокод==
*<tex>\mathtt{A}</tex> {{---}} исходная матрица.
*<tex>\mathtt{E}</tex> {{---}} единичная матрица.
*<tex>\mathtt{N}</tex> {{---}} обратная матрица.

'''function''' buildInverseMatrix(A: '''int'''[n][n])
N = E
'''for''' i = 0 '''to''' nonabs - 1
'''if''' A[i][i] <tex> \neq </tex> 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 <tex> \neq </tex> 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

== Источники информации ==
* [https://en.wikipedia.org/wiki/Invertible_matrix Wikipedia: Invertible matrix]
19
правок

Навигация