Вейвлет-сжатие матриц в вычислительной математике: алгоритмы Добеши и Хаара
Плотно заполненные матрицы: проклятие интегральных операторов
При численном решении интегральных уравнений (например, уравнений Фредгольма) или при использовании метода граничных элементов (МГЭ) в электродинамике инженеры сталкиваются со страшной проблемой. В отличие от дифференциальных операторов, которые связывают только соседние узлы сетки и порождают удобные разреженные матрицы с нулями, интегральные операторы глобальны. Каждая точка на поверхности антенны электромагнитно взаимодействует со всеми остальными точками антенны. В результате получается СЛАУ, матрица которой заполнена на 100% (dense matrix). Если сетка содержит миллион узлов, матрица будет содержать триллион ненулевых элементов, что потребует 8 терабайт оперативной памяти и сделает матричное умножение катастрофически медленным.
На помощь приходит гениальная концепция из теории обработки изображений — вейвлет-сжатие. В 1991 году Бейлким, Койфман и Рохлин (BCR) предложили алгоритм, который радикально решает эту проблему. Идея основана на математическом свойстве вейвлетов (в частности, ортогональных вейвлетов Добеши и Симлета): они блестяще сжимают гладкие сигналы. Большинство матричных элементов интегрального оператора описывают взаимодействие удаленных частей поверхности друг с другом, которое является плавным и гладким, изменяясь без резких скачков.
От плотной матрицы к разреженной через пороговую фильтрацию
Алгоритм вейвлет-сжатия работает следующим образом. Вместо того чтобы вычислять СЛАУ в стандартном (узловом) базисе, мы применяем к матрице системы двумерное дискретное вейвлет-преобразование (ДВП). Эта операция эквивалентна умножению матрицы слева и справа на ортогональные матрицы вейвлет-фильтров. Преобразование можно выполнить очень быстро, за время O(N^2) (или даже быстрее с помощью специальных алгоритмов).
После преобразования матрица меняет свое физическое лицо. Теперь ее элементы — это не интенсивность взаимодействия узлов, а коэффициенты взаимодействия различных вейвлет-масштабов. Поскольку оператор (например, функция Грина) гладкий вдали от сингулярности, подавляющее большинство (более 95-99%) этих новых вейвлет-коэффициентов оказываются микроскопически малыми числами, очень близкими к нулю. Алгоритм просто обнуляет все коэффициенты, которые по модулю меньше заданного порога отсечения (Thresholding). Плотно заполненная матрица волшебным образом превращается в сильно разреженную (Sparse matrix) без потери физической точности решения! Теперь для ее хранения требуется ничтожный объем памяти, а итерационные решатели (например, GMRES) выполняют умножение матрицы на вектор за время O(N log N) вместо O(N^2), превращая нерешаемые электромагнитные задачи в повседневные инженерные расчеты.