Каков самый быстрый способ найти вектор столбцов и строк, чье внешнее произведение наилучшим образом аппроксимирует заданную (квадратную) матрицу?

#matrix #matrix-decomposition #qr-decomposition

Вопрос:

Я ищу самый быстрый способ вычисления вектора столбцов и строк, чье внешнее произведение наилучшим образом аппроксимирует заданную (квадратную) матрицу. В идеале мне нужен необработанный алгоритм, без необходимости во внешних зависимостях (например, для извлечения собственных значений матрицы и т. Д.).

Чтобы судить о том, что в данном случае означает «наилучшее приближение», может помочь получить контекст: цель этого состоит в том, что я хочу ускорить операцию 2D-фильтрации, разделив большое квадратное ядро 2D-фильтра (матрицу) на два ядра 1D-фильтра (вычисляемые векторы столбцов и строк). Я бы предположил, что сведение к минимуму квадратической разницы между исходной матрицей и приближением может быть лучшим выбором здесь.

Алгоритмическое объяснение помогло бы мне гораздо больше, чем очень сложная математическая нотация, если это возможно. 🙂