Main menu

Численное решение краевых задач: метод стрельбы и метод прогонки

Отличие краевой задачи от задачи Коши

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

Краевые задачи значительно сложнее вычислительно. Мы не можем просто взять метод Рунге-Кутты и начать интегрировать от одного конца к другому, потому что нам не хватает начальных данных (мы знаем координату, но не знаем производную). Приходится применять специальные алгоритмы, которые ищут решение, удовлетворяющее одновременно всем граничным условиям на обоих концах интервала.

Метод стрельбы: искусство прицеливания в математике

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

Алгоритм действует так: мы выбираем некоторый случайный или приближенный начальный угол (значение производной) и решаем систему как обычную задачу Коши методами Эйлера или Рунге-Кутты. Дойдя до конца интервала, мы смотрим, куда попал наш «снаряд». Скорее всего, мы промахнулись мимо требуемого граничного условия. Мы вычисляем величину промаха (невязку). Затем мы меняем начальный угол, стреляем еще раз и снова оцениваем промах. Задача сводится к поиску корня нелинейного уравнения: нам нужно подобрать такой начальный параметр, при котором невязка на правом конце станет равной нулю. Для быстрого поиска этого параметра обычно применяется метод Ньютона или метод секущих.

Метод конечных разностей и алгоритм прогонки

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

В результате дифференциальное уравнение превращается в систему линейных алгебраических уравнений. Особенность этой системы в том, что ее матрица является трехдиагональной (каждое уравнение связывает только три соседних узла: левый, центральный и правый). Для решения таких СЛАУ применяется специальный, невероятно быстрый и элегантный алгоритм Томаса (в русскоязычной литературе известный как метод прогонки). Прогонка состоит из прямого хода (последовательного исключения поддиагональных элементов) и обратного хода (нахождения неизвестных). Этот метод требует всего O(N) арифметических операций и является абсолютно устойчивым для задач с диагональным преобладанием, что делает его индустриальным стандартом в задачах теплопроводности и сопротивления материалов.

Подробнее

Дискретное вейвлет-преобразование: альтернатива Фурье в анализе сигналов

Анализ сигналов: выход за пределы синусоид

На протяжении почти двух столетий непревзойденным королем спектрального анализа оставалось преобразование Фурье. Его суть заключается в разложении любого сложного сигнала на сумму бесконечных, периодических, идеально гладких синусоид и косинусоид разных частот и амплитуд. Алгоритм Быстрого Преобразования Фурье (БПФ) сделал цифровую обработку звука и изображений реальностью. Однако классическое преобразование Фурье имеет один фундаментальный недостаток: оно глобально. Синусоида длится от минус бесконечности до плюс бесконечности. Фурье-анализ идеально показывает, какие частоты присутствуют в сигнале, но он абсолютно не способен сказать, в какой именно момент времени эта частота появилась или исчезла.

Для стационарных сигналов (например, равномерного гудения трансформатора) это не проблема. Но реальные сигналы (человеческая речь, электрокардиограммы, сейсмические толчки землетрясений, финансовые графики) нестационарны. Они содержат резкие всплески, разрывы и импульсы. Попытка аппроксимировать резкий короткий импульс бесконечными синусоидами требует огромного числа высокочастотных гармоник (явление Гиббса), которые «размазываются» по всему спектру. Для решения этой проблемы математикам потребовался новый инструмент, способный локализовать сигнал не только по частоте, но и по времени.

Вейвлеты: маленькие волны с конечной энергией

Этим новым инструментом стало вейвлет-преобразование, активно развивавшееся в 1980-х годах (труды Морле, Гроссмана, Ив Мейер и Ингрид Добеши). Слово «вейвлет» (wavelet) переводится как «маленькая волна» или «всплеск». В отличие от синусоиды, вейвлет отличен от нуля только на коротком отрезке времени, а за его пределами быстро затухает до нуля.

Анализ сигнала проводится не одной базовой функцией, а целым семейством функций, которые получаются из одной исходной (материнского вейвлета) путем двух операций: масштабирования (растяжения или сжатия) и сдвига (перемещения вдоль оси времени). Сжатые, узкие вейвлеты отлично улавливают кратковременные высокочастотные импульсы и разрывы, а растянутые, широкие вейвлеты анализируют медленные, низкочастотные тренды. Таким образом, вейвлет-анализ работает как математический микроскоп с изменяющимся фокусным расстоянием: мы получаем картину с высоким разрешением по времени для быстрых процессов и с высоким разрешением по частоте для медленных процессов, оптимально обходя принцип неопределенности Гейзенберга-Габора.

Дискретное преобразование и индустриальные стандарты

На практике в вычислительной технике используется Дискретное Вейвлет-Преобразование (ДВП). В нем масштабы и сдвиги изменяются не плавно, а по степеням двойки (диадическая сетка). Алгоритм Малла (Stephane Mallat) позволил вычислять ДВП с помощью каскада цифровых фильтров: на каждом шаге сигнал пропускается через низкочастотный и высокочастотный фильтры, разделяя данные на аппроксимирующие (грубые) и детализирующие коэффициенты.

Благодаря своей способности концентрировать энергию сигнала в небольшом количестве коэффициентов (большинство коэффициентов ДВП для реальных сигналов оказываются близки к нулю), вейвлеты совершили революцию в сжатии данных. Именно вейвлет-преобразование (конкретно, вейвлеты Коэна-Добеши-Фово) лежит в основе графического стандарта JPEG 2000, обеспечивая сжатие изображений высокого разрешения без характерных для обычного JPEG раздражающих квадратных «артефактов блочности». Также вейвлеты стали золотым стандартом для очистки медицинских и акустических сигналов от шумов (алгоритмы wavelet denoising/shrinkage).

Подробнее

Итерационные методы подпространств Крылова для гигантских матриц

Как решать системы с миллиардами уравнений?

При дискретизации трехмерных дифференциальных уравнений в частных производных (например, в аэродинамике или гидрогеологии) методом конечных элементов возникают колоссальные системы линейных алгебраических уравнений (СЛАУ). Размерность таких матриц может достигать сотен миллионов и даже миллиардов строк. Использование прямого метода Гаусса для таких гигантов невозможно: даже суперкомпьютеру не хватит оперативной памяти для хранения матрицы, не говоря уже о годах, необходимых для расчетов.

К счастью, такие матрицы являются крайне разреженными. Более 99% их элементов — это нули. Для их хранения используются специальные форматы (например, CSR — Compressed Sparse Row), в которых хранятся только ненулевые элементы и их координаты. Однако прямые методы в процессе исключения неизбежно превращают нули в ненулевые элементы (проблема заполнения). Поэтому для решения таких огромных разреженных СЛАУ применяются исключительно современные итерационные методы, вершиной эволюции которых являются алгоритмы на основе подпространств Крылова.

Подпространства Крылова: выжимание максимума из умножения матрицы на вектор

В 1931 году русский математик Алексей Крылов опубликовал работу, которая заложила основы нового класса методов. Идея состоит в следующем: поскольку мы можем быстро умножать нашу гигантскую разреженную матрицу (назовем ее A) на вектор, почему бы не использовать операцию умножения для построения базиса, в котором мы будем искать решение?

Если мы возьмем начальный вектор невязки (r) и начнем последовательно умножать его на матрицу A, мы получим последовательность векторов: r, Ar, A^2r, A^3r и так далее. Линейная оболочка (пространство, натянутое на эти векторы) называется подпространством Крылова. Гениальность подхода заключается в том, что вместо решения системы в исходном пространстве с миллионами измерений, мы ищем приближенное решение (проекцию) в подпространстве Крылова, размерность которого мала (например, 50 или 100). На каждом шаге (итерации Арнольди или Ланцоша) к подпространству добавляется новый ортогональный вектор, и приближение становится все точнее.

GMRES и Метод сопряженных градиентов (CG)

В зависимости от свойств матрицы A применяются различные алгоритмы подпространств Крылова. Если исходная матрица симметричная и положительно определенная (что типично для задач теплопроводности и теории упругости), используется легендарный Метод сопряженных градиентов (CG). Он использует короткие рекуррентные формулы: для вычисления нового вектора нужно хранить в памяти только данные с предыдущего шага. Это делает метод фантастически быстрым и экономным по памяти.

Однако если матрица несимметричная (что часто бывает в задачах конвекции-диффузии и гидродинамики), метод CG не работает. Для таких матриц в 1986 году Саадом и Шульцем был разработан метод GMRES (Generalized Minimal Residual method). Метод GMRES минимизирует норму невязки на всем подпространстве Крылова. В отличие от CG, он вынужден хранить в памяти все базисные векторы, поэтому на практике применяется с «рестартами» (GMRES(m)): после достижения m итераций накопленные векторы сбрасываются, и процесс начинается заново с текущего наилучшего приближения. Сегодня алгоритмы подпространств Крылова, оснащенные мощными предобуславливателями (preconditioners) типа ILU или Algebraic Multigrid (AMG), являются абсолютным индустриальным стандартом при суперкомпьютерном моделировании.

Подробнее

Соц. сети