Построение обратной матрицы
| НЕТ ВОЙНЕ |
|
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. Антивоенный комитет России |
| Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. |
| meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки. |
Описание алгоритма
Пусть — исходная матрица. Тогда построим дополненную матрицу , где — единицная матрица соответсвующей размерности. Далее, в соответвии с преобразованиями Гаусса мы последовательно проходимся по всем строкам, вычитая из них линейные комбинации предыдущих. В итоге, мы получим матрицу , где — матрица, обратная к матрице .
Псевдокод
- — исходная матрица.
- — единичная матрица.
- — обратная матрица.
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