Построение обратной матрицы — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Описание алгоритма== | ==Описание алгоритма== | ||
Пусть <tex>A</tex> {{---}} исходная матрица. Тогда построим дополненную матрицу <tex>(A|E)</tex>, где <tex>E</tex> {{---}} единицная матрица соответсвующей размерности. Далее, в соответвии с преобразованиями Гаусса мы последовательно проходимся по всем строкам, вычитая из них линейные комбинации предыдущих. В итоге, мы получим матрицу <tex>(E|N)</tex>, где <tex>N</tex> {{---}} матрица, обратная к матрице <tex>A</tex>. | Пусть <tex>A</tex> {{---}} исходная матрица. Тогда построим дополненную матрицу <tex>(A|E)</tex>, где <tex>E</tex> {{---}} единицная матрица соответсвующей размерности. Далее, в соответвии с преобразованиями Гаусса мы последовательно проходимся по всем строкам, вычитая из них линейные комбинации предыдущих. В итоге, мы получим матрицу <tex>(E|N)</tex>, где <tex>N</tex> {{---}} матрица, обратная к матрице <tex>A</tex>. |
Текущая версия на 19:42, 4 сентября 2022
Описание алгоритма
Пусть
— исходная матрица. Тогда построим дополненную матрицу , где — единицная матрица соответсвующей размерности. Далее, в соответвии с преобразованиями Гаусса мы последовательно проходимся по всем строкам, вычитая из них линейные комбинации предыдущих. В итоге, мы получим матрицу , где — матрица, обратная к матрице .Псевдокод
- — исходная матрица.
- — единичная матрица.
- — обратная матрица.
function buildInverseMatrix(A: int[n][n]) N = E for i = 0 to nonabs - 1 if A[i][i]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 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