#algorithm #linear-algebra
#алгоритм #линейная алгебра
Вопрос:
Учитывая матрицу полного ранга m на n с n> m, каков эффективный алгоритм выбора m строк из матрицы для формирования обратимой (полного ранга) подматрицы m на m?
Ответ №1:
Попробуйте это:
Пусть M
— матрица, M(j)
j
-й столбец и M(i,j)
запись в строке i
и столбце j
.
для j
от 1
до m
:
- Выберите первую строку с ненулевой записью
M(i,j)
в столбцеj
. Эта строка называетсяi
. - Используется
M(i,j)
для установки каждой другой записи этой строки в ноль путем вычисленияM(k) = M(k) - M(i,k)/M(i,j) * M(j) for 1 <= k <= n and k != j
- обновите матрицу столбцами, вычисленными на шаге 2.
Поскольку матрица имеет ранг m
, вы найдете m
строки с ненулевой записью.
Этот алгоритм выполняется O(n*m^2)
.
Ответ №2:
Вы хотели выбрать m столбцов, а не m строк.
Строка — уменьшите транспонирование и выберите сводные строки транспонирования. Они соответствуют одному допустимому выбору столбцов.