Main menu
Численные методы

Численные методы (100)

Эволюция численных методов: квантовые алгоритмы и алгоритм HHL для линейных систем

Квантовое превосходство в вычислительной линейной алгебре

Наш цикл из ста статей, посвященный классическим численным методам, логично завершить взглядом в будущее, где зарождается новая, революционная вычислительная парадигма — квантовые вычисления. Вся классическая математика, которую мы обсуждали (методы Гаусса, Крылова, многосеточные алгоритмы), опирается на архитектуру процессоров фон Неймана и детерминированные биты, принимающие значения 0 или 1. Как бы мы ни оптимизировали эти алгоритмы, решение системы из N линейных алгебраических уравнений (СЛАУ) всегда будет требовать времени, по меньшей мере пропорционального количеству неизвестных O(N). Компьютеру банально нужно время, чтобы просто прочитать все числа из памяти.

В 2009 году физики Арам Харроу, Авинатан Хасидим и Сет Ллойд опубликовали алгоритм HHL (Harrow-Hassidim-Lloyd algorithm), который вызвал настоящий шок в академическом мире. Этот квантовый алгоритм предназначен для решения систем линейных уравнений Ax = b. Его теоретическая вычислительная сложность составляет феноменальные O(log N)! Экспоненциальное ускорение означает, что система из триллиона уравнений, на которую лучшему классическому суперкомпьютеру потребовались бы годы работы, квантовый компьютер сможет решить за доли секунды. Как возможна такая математическая магия?

Суперпозиция, фазовая оценка и квантовое состояние

Квантовый компьютер работает не с обычными регистрами, а с кубитами, которые находятся в суперпозиции (одновременно во всех возможных состояниях от 0 до 1). Алгоритм HHL не вычисляет вектор решения x в виде обычного массива чисел. Он кодирует правую часть уравнения b в квантовое состояние регистра (амплитуды вероятностей), а затем с помощью квантовых вентилей трансформирует это состояние так, чтобы оно пропорционально отражало вектор решения x.

Главный математический механизм HHL основан на Квантовой оценке фазы (Quantum Phase Estimation, QPE). Алгоритм симулирует квантовую гамильтонову эволюцию матрицы A во времени (оператор exp(iAt)). Применяя квантовое преобразование Фурье (QFT), алгоритм «извлекает» собственные значения матрицы A в специальный вспомогательный регистр кубитов. Затем применяется контролируемый поворот кубита, который физически делит амплитуды на эти собственные значения (эквивалент инвертирования матрицы A^-1). Наконец, обратная фазовая оценка возвращает систему из спектрального пространства, выдавая готовое квантовое состояние |x> = A^-1 |b>.

Проблема извлечения данных и перспективы

Квантовое ускорение HHL содержит серьезные практические оговорки (caveats). Вы не можете просто «распечатать» полученный миллиономерный вектор решения на экран. Квантовая механика позволяет вам только произвести измерение состояния, что разрушит суперпозицию и выдаст лишь одно случайное число. Алгоритм HHL полезен не тогда, когда вам нужны все значения x, а тогда, когда вам нужно найти глобальное свойство решения (например, скалярное произведение x*M*x или среднюю кинетическую энергию системы).

Кроме того, матрица A должна быть разреженной (sparse) и хорошо обусловленной, а данные правой части b должны загружаться в компьютер с помощью сверхбыстрой квантовой памяти (QRAM), которая пока не существует на аппаратном уровне. Несмотря на эти технические преграды, алгоритм HHL заложил фундамент для Квантового Машинного Обучения (QML). Решение гигантских СЛАУ лежит в основе методов наименьших квадратов, обучения нейросетей и дифференциальных уравнений Навье-Стокса. Как только квантовые процессоры преодолеют барьер ошибок (Quantum Error Correction), алгоритмы типа HHL полностью перепишут правила игры в вычислительной физике, экономике и криптографии.

Подробнее

Метод моментов в электродинамике (MoM): численное решение интегральных уравнений

Как рассчитать антенну мобильного телефона?

В мире вычислительной электродинамики, помимо дифференциальных сеточных методов вроде FDTD (Метод конечных разностей во временной области), существует мощнейший альтернативный класс численных алгоритмов. Когда инженерам необходимо спроектировать сложную проволочную антенну (как на Wi-Fi роутере), рассчитать эффективную площадь рассеяния (ЭПР) истребителя-невидимки или спроектировать микрополосковую плату смартфона, классические 3D-сетки FDTD оказываются крайне неудобными. Моделирование тонких проводов толщиной в доли миллиметра в свободном безграничном пространстве требует слишком мелкой объемной сетки и абсурдного расхода памяти.

В этих случаях индустрия обращается к интегральной формулировке уравнений Максвелла. Физическая суть этой формулировки заключается в законе Био-Савара-Лапласа и потенциалах: электрические токи, текущие по металлическим поверхностям антенны, излучают электромагнитное поле. Интегральное уравнение (например, EFIE — уравнение электрического поля) связывает неизвестное распределение токов на поверхности металла с заданным падающим возбуждающим полем (например, от кабеля питания). Для численного решения этого интегрального уравнения в 1968 году Роджер Харрингтон формализовал универсальный алгоритм, названный Методом моментов (Method of Moments, MoM).

От физического интеграла к матрице сопротивлений

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

Затем интегральное уравнение умножается на весовые (тестовые) функции и интегрируется по всей поверхности детали. В результате этой математической операции бесконечномерное интегральное уравнение превращается в плотную систему линейных алгебраических уравнений (СЛАУ): [Z] * [I] = [V]. В этой формуле вектор [I] — это неизвестные токи, вектор [V] — напряжения (возбуждение), а гигантская матрица [Z] имеет глубочайший физический смысл. Она называется обобщенной матрицей взаимных импедансов (сопротивлений). Каждый элемент этой матрицы описывает электромагнитное влияние (излучение) одной базисной функции тока на другую через открытое пространство.

Сингулярности функции Грина и открытое пространство

Вычисление элементов матрицы импедансов [Z] является самой сложной и ресурсоемкой частью Метода моментов. Внутри интегралов содержится функция Грина свободного пространства (ядро интегрального оператора), которая имеет вид exp(-ikr)/r. Эта функция обратно пропорциональна расстоянию (r) между током источника и точкой наблюдения. Если мы вычисляем самовоздействие элемента (то есть расстояние r стремится к нулю), функция уходит в бесконечность!

Попытка вычислить такой сингулярный интеграл обычным методом Гаусса даст математический мусор. Инженерам приходится использовать специальные аналитические методы выделения особенности для точного вычисления диагональных элементов матрицы. Огромным, неоспоримым преимуществом MoM является то, что этот алгоритм автоматически и идеально строго учитывает условие излучения Зоммерфельда на бесконечности. Волна беспрепятственно улетает в космос, и алгоритму не нужны никакие искусственные поглощающие слои (PML) на границах расчетной области. Сегодня алгоритм MoM (часто ускоренный Быстрым мультипольным методом FMM для борьбы с плотной матрицей) лежит в основе ведущих радиотехнических САПР, таких как Altair FEKO и CST Microwave Studio.

Подробнее

Интерполяция Эрмита: учет значений функции и ее производных в геометрии

Недостатки классической интерполяции Лагранжа

Как мы уже изучали в разделе об аппроксимации функций, классический интерполяционный многочлен Лагранжа строится так, чтобы его график строго проходил через заданный набор дискретных точек (узлов). Однако в инженерном проектировании, компьютерной графике (CAD) и вычислительной гидродинамике простого прохождения кривой через точки часто бывает недостаточно. Представьте, что вы проектируете профиль автомобильной дороги или траекторию движения резца станка с ЧПУ. Если вы используете полином Лагранжа, кривая пройдет через все контрольные точки, но в самих этих точках ее наклон (первая производная) или кривизна (вторая производная) могут изменяться непредсказуемым и диким образом, порождая рывки и изломы скорости.

Инженеру необходимо жестко контролировать не только то, ГДЕ должна оказаться кривая в данный момент времени, но и КУДА она должна быть направлена (какова ее скорость и ускорение). Эту фундаментальную задачу решает метод интерполяции Шарля Эрмита. Алгоритм Эрмита обобщает интерполяцию Лагранжа на случай, когда в узлах сетки известны (и должны строго соблюдаться) не только значения самой функции, но и значения ее производных до заданного порядка.

Разделенные разности с кратными узлами

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

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

Кубические сплайны Эрмита и сплайны Акимы

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

На каждом интервале между двумя точками строится отдельный полином 3-й степени, который жестко фиксируется 4 условиями: двумя значениями функции по краям и двумя значениями производных по краям. В отличие от обычного кубического сплайна, где производные вычисляются алгоритмом глобально (через решение СЛАУ для обеспечения гладкости второй производной во всех точках), в сплайнах Эрмита производные задаются локально и вручную инженером (или локальными эвристиками). Одной из самых знаменитых реализаций является Сплайн Акимы (Hiroshi Akima, 1970). Алгоритм Акимы вычисляет производные в узлах локально, опираясь на геометрию нескольких соседних точек. В результате сплайн Акимы практически не подвержен паразитным выбросам (overshoots) и изломам в местах резкого изменения данных, являясь золотым стандартом для интерполяции физических табличных данных (например, термодинамических свойств газов) без искусственных осцилляций.

Подробнее

Вычислительная алгебраическая геометрия: базисы Грёбнера и полиномиальные системы

Когда метод Ньютона бессилен

Решение систем нелинейных уравнений — одна из сложнейших задач численного анализа. Если система состоит из многочленов (полиномиальная система), она возникает в криптографии, робототехнике (обратная кинематика манипуляторов), компьютерном зрении и молекулярной химии. Обычно для таких систем применяют многомерный метод Ньютона-Канторовича. Но метод Ньютона — локальный. Он найдет лишь один корень вблизи начальной точки. Что если инженеру нужно найти строго все корни системы (или доказать, что их вообще не существует)? Что если корней бесконечно много и они образуют кривые поверхности (алгебраические многообразия)? Здесь численные приближения пасуют, и в дело вступает вычислительная коммутативная алгебра.

Революционным прорывом в этой области стало создание в 1965 году Бруно Бухбергером (в его докторской диссертации под руководством Вольфганга Грёбнера) алгоритма построения базисов Грёбнера. Этот алгоритм стал для нелинейных полиномиальных систем тем же, чем является алгоритм Гаусса для линейных систем уравнений. Он позволяет строго алгоритмически, за конечное число шагов, преобразовать любую сложную систему полиномов в эквивалентную ей систему, но имеющую особую, «удобную» треугольную форму.

Алгоритм Бухбергера: нелинейный аналог исключения Гаусса

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

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

Триумф лексикографического порядка

Самая мощная магия базисов Грёбнера раскрывается при использовании лексикографического порядка сортировки одночленов (как слова в словаре). Если мы вычислим базис Грёбнера с таким порядком, то в полученной эквивалентной системе уравнений последний полином будет содержать только одну неизвестную переменную (например, только z)! Предпоследний полином будет содержать z и y, и так далее. Мы получаем строго треугольную систему.

Теперь решение нелинейной многомерной системы сводится к банальному вычислению корней одного полинома от одной переменной (что можно сделать численно с огромной точностью), а затем обратной подстановкой найденных значений в верхние уравнения системы. Алгоритм Бухбергера, интегрированный в системы компьютерной алгебры (Maple, Mathematica), требует гигантских объемов памяти (сложность алгоритма часто дважды экспоненциальная EXPSPACE), но его способность находить абсолютно все скрытые корни сделала его незаменимым аналитическим инструментом современной прикладной геометрии.

Подробнее

Метод простой итерации для нелинейных уравнений: теорема о сжимающих отображениях

Фундамент итерационной математики

В самых первых статьях нашего цикла мы рассматривали метод дихотомии и метод Ньютона для поиска корней нелинейных уравнений вида f(x) = 0. Метод Ньютона быстр, но требует вычисления производных и часто расходится при плохом выборе начального приближения. Существует еще один, невероятно элегантный и концептуально прозрачный класс алгоритмов — метод простой итерации (или метод последовательных приближений). Его глубокая математическая суть базируется не на геометрии касательных, а на фундаментальных понятиях топологии и функционального анализа.

Чтобы применить этот метод, исходное уравнение f(x) = 0 необходимо алгебраически преобразовать к эквивалентному виду: x = phi(x). Это можно сделать бесконечным числом способов (например, просто прибавив x к обеим частям, или выразив x из сложного логарифма). Теперь наша задача поиска корня превратилась в задачу поиска неподвижной точки отображения phi (fixed point). Неподвижная точка — это такое значение x, которое при подстановке в функцию phi выдает на выходе в точности то же самое значение x. Вычислительный алгоритм становится тривиальным: мы берем начальное случайное приближение x0, вычисляем x1 = phi(x0), затем x2 = phi(x1) и так далее до бесконечности.

Сжимающие отображения и теорема Банаха

Главный вопрос вычислительной математики: при каких условиях эта бесконечная последовательность x_n действительно сойдется к истинному корню, а не улетит в бесконечность и не зациклится? Ответ дает знаменитая теорема Банаха о неподвижной точке (принцип сжимающих отображений), доказанная польским математиком Стефаном Банахом в 1922 году.

Теорема гласит: если функция phi(x) является сжимающим отображением на замкнутом интервале (то есть расстояние между любыми двумя точками после применения функции строго уменьшается с коэффициентом сжатия q < 1), то на этом интервале существует ровно одна неподвижная точка, и метод простой итерации гарантированно сойдется к ней из абсолютно любого начального приближения! С точки зрения дифференциального исчисления, условие сжатия означает, что модуль производной функции phi(x) в окрестности корня должен быть строго меньше единицы. Чем ближе производная к нулю, тем меньше коэффициент сжатия q, и тем феноменально быстрее алгоритм будет сходиться. Если же производная по модулю больше единицы (отображение растягивающее), алгоритм неминуемо разойдется, как бы близко к корню мы ни стартовали. Искусство применения метода простой итерации заключается именно в таком хитром алгебраическом преобразовании f(x) = 0 в x = phi(x), чтобы искусственно сделать производную phi(x) максимально близкой к нулю.

Подробнее

Алгоритмы роя частиц (PSO) и муравьиные колонии (ACO) в численной оптимизации

Коллективный интеллект на службе математики

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

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

Оптимизация роем частиц (Particle Swarm Optimization, PSO)

Алгоритм PSO был разработан в 1995 году Кеннеди и Эберхартом. Пространство поиска заполняется «частицами» (математическими векторами возможных решений). Каждая частица имеет свою координату и вектор скорости. На каждом шаге частица оценивает значение целевой функции в своей точке. Направление ее следующего шага (новая скорость) вычисляется как векторная сумма трех составляющих.

Первая составляющая — инерция: частица склонна двигаться туда, куда летела на предыдущем шаге. Вторая составляющая — личная (когнитивная) память: частица всегда помнит ту точку пространства, где она лично находила наилучший результат (наименьший минимум), и ее притягивает к этой точке. Третья составляющая — социальный опыт: частицу притягивает к той точке, которая является наилучшей среди всей стаи (глобальный лидер). Коэффициенты доверия к себе и к социуму являются настроечными параметрами. В результате этого простого математического взаимодействия частиц возникает невероятно сложный и целенаправленный танец роя, который быстро стягивается в самые глубокие минимумы сложных ландшафтов (функций Розенброка, Растригина и др.). PSO превосходно подходит для настройки весов в системах управления и проектирования СВЧ-антенн.

Муравьиные алгоритмы (Ant Colony Optimization, ACO)

Если PSO отлично работает в непрерывных пространствах, то для сложнейших задач дискретной комбинаторной оптимизации (например, задача коммивояжера, разводка печатных плат, маршрутизация пакетов в интернете) Марко Дориго в 1992 году создал Муравьиные алгоритмы (ACO). Идея заимствована из механизма стигмергии: непрямой коммуникации муравьев через отложение химических следов (феромонов).

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

Подробнее

Численное моделирование фазовых переходов: задача Стефана и метод энтальпии

Математика таяния льда и кристаллизации металлов

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

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

Методы явного отслеживания фронта (Front Tracking)

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

Этот подход (например, с использованием ALE сеток) дает высочайшую точность определения формы кристалла и распределения температур. Однако он терпит сокрушительное фиаско, если топология фронта начинает меняться. Если в процессе литья в форме образуется несколько независимых кусков льда, которые затем сливаются (или наоборот, одна жидкая ванна распадается на части), алгоритм отслеживания сетки запутывается в узлах, порождает математические ошибки и часто останавливает программу. Для сложной 3D-металлургии этот подход оказался слишком хрупким.

Метод энтальпии: сквозной счет без выделения границы

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

Математически скрытая теплота плавления не выделяется как сингулярный источник на границе, а искусственно «размазывается» (сглаживается) по небольшому температурному интервалу (например, между 0 и 1 градусом Цельсия). В этом искусственном интервале (называемом двухфазной зоной или mushy zone) эффективная теплоемкость материала становится просто гигантской. Теперь мы решаем одно единое, нелинейное уравнение энергии для всей расчетной области (и для твердой, и для жидкой фазы одновременно), вообще не задумываясь о том, где находится фронт! Позиция фронта легко восстанавливается после расчетов просто путем поиска изотермы, соответствующей температуре плавления. Метод энтальпии легко справляется с любыми топологическими изменениями (слиянием и распадом зон кристаллизации), легко программируется на фиксированных декартовых сетках и сегодня является стандартом во всех литейных CAE-модулях (например, в ProCAST или MAGMASOFT).

Подробнее

Анализ чувствительности в численных моделях: сопряженные системы (Adjoint method)

Оптимизация формы в условиях миллионов параметров

В современной промышленности численные методы не просто проверяют, выдержит ли деталь нагрузку; они используются для активной оптимизации дизайна. Классический пример — проектирование профиля крыла пассажирского авиалайнера. Цель инженера — найти такую форму крыла (распределение кривизны и толщины), которая минимизирует аэродинамическое сопротивление при сохранении заданной подъемной силы (чтобы сэкономить топливо). Форма крыла в CAD-системе может задаваться десятками тысяч контрольных точек. Таким образом, перед нами стоит задача многомерной оптимизации: у нас есть один целевой функционал (сопротивление) и 10 000 переменных (координаты точек).

Чтобы применить эффективный метод градиентного спуска (или алгоритмы типа BFGS), оптимизатору нужен градиент: массив производных целевого функционала по каждому из 10 000 параметров. Стандартный подход «черного ящика» (численное дифференцирование конечными разностями) требует немного изменить один параметр, перестроить сетку, запустить тяжелейший решатель уравнений Навье-Стокса (что может занять сутки на кластере), записать изменение сопротивления и повторить это 10 000 раз. Проектирование одного крыла заняло бы десятки лет. Математическое решение, которое спасло аэрокосмическую отрасль, называется методом сопряженных уравнений (Adjoint method).

Отклонения и операторы: математическая алхимия

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

Алгоритм работает в три шага. На первом шаге решается прямая (исходная) физическая задача — например, рассчитывается обтекание текущей базовой формы крыла. На втором шаге мы строим и решаем сопряженную систему УЧП. Сопряженное уравнение имеет ту же размерность и структуру, что и линеаризованное уравнение Навье-Стокса, но в нем изменено направление времени или потока (оно решается «назад»), а в качестве источника (правой части) выступает производная нашего целевого функционала (формулы аэродинамического сопротивления). Гениальность заключается в том, что сопряженная задача решается ровно один раз!

Градиент за цену одного решения

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

Результатом этого быстрого интегрирования является полный, 100% точный вектор градиента сразу по всем 10 000 геометрическим параметрам формы крыла! Вычислительная стоимость получения этого гигантского градиента абсолютно не зависит от количества параметров проектирования. Она всегда равна стоимости решения примерно одной прямой и одной сопряженной задачи. То есть вместо 10 000 запусков симулятора нам требуется всего 2. Внедрение метода Adjoint в пакеты типа ANSYS Fluent и OpenFOAM позволило конструкторам Формулы 1 и авиационным бюро (Boeing, Airbus) использовать топологическую оптимизацию для потоков жидкостей и газов, создавая сверхэффективные бионические каналы охлаждения и профили с минимальным волновым сопротивлением.

Подробнее

Численные методы решения обратных задач теплообмена (ОЗТ)

Поиск причины по ее следствиям

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

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

Итерационная регуляризация и метод Алифанова

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

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

Применение сопряженных уравнений для поиска градиента

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

Эта проблема элегантно решается с помощью метода сопряженных уравнений (Adjoint method). Составляется специальная вспомогательная краевая задача, называемая сопряженной, которая интегрируется «вспять» по времени (от конца эксперимента к его началу). Правой частью для этого сопряженного уравнения служит разность между показаниями датчиков и расчетом. Решив сопряженную задачу всего один раз, мы получаем функцию, которая путем простого умножения мгновенно дает нам точнейший градиент целевого функционала сразу по всем тысячам параметров времени! Этот красивый математический аппарат сегодня применяется не только в теплофизике, но и в обратных задачах сейсморазведки для поиска месторождений нефти по отраженным акустическим волнам.

Подробнее

Методы декомпозиции областей (Domain Decomposition): параллельные вычисления

Преодоление ограничений памяти и распараллеливание

С развитием суперкомпьютеров вычислительная математика столкнулась с новой, сугубо архитектурной проблемой. Когда мы решаем дифференциальные уравнения в частных производных (УЧП) на сетках, состоящих из десятков миллиардов узлов (например, при расчете глобальной климатической модели Земли или аэродинамики космического корабля в сборе), физически невозможно поместить глобальную матрицу системы в оперативную память одного вычислительного узла. Возникает острая необходимость разрезать гигантскую математическую задачу на тысячи более мелких кусков, раздать их независимым процессорам (или узлам кластера) и заставить эти процессоры общаться между собой по сети MPI для получения единого, математически строгого решения.

Эта концепция легла в основу методов декомпозиции областей (Domain Decomposition Methods, DDM). Идея метода невероятно стара: еще в 1870 году математик Герман Шварц придумал альтернирующий метод для аналитического решения уравнения Лапласа в сложных областях. Он показал, что если сложная область состоит из двух перекрывающихся простых фигур (например, круга и прямоугольника), можно поочередно решать задачу в каждой из них, используя на границе перекрытия значения, полученные у соседа на предыдущем шаге. Спустя сто лет эта абстрактная математическая теорема стала фундаментом параллельных суперкомпьютерных вычислений.

Методы с перекрытием (Метод Шварца) и без перекрытия

Современные численные реализации DDM делятся на две большие группы. Первая группа — это методы с перекрытием (Overlapping methods), прямые наследники классического метода Шварца. Расчетная сетка разбивается на субдомены, которые искусственно расширяются так, чтобы они немного наслаивались друг на друга. Итерационный процесс заключается в том, что каждый процессор решает свою локальную СЛАУ внутри своего домена, а затем пересылает значения из зоны перекрытия соседним процессорам, чтобы те использовали их как краевые условия Дирихле на следующей итерации. Этот метод очень надежен, но пересылка больших массивов данных в зонах перекрытия может замедлять сеть кластера.

Вторая группа — это методы без перекрытия (Non-overlapping methods, или методы подконструкций). Здесь граница между доменами представляет собой строгую математическую линию (или поверхность) толщиной в один узел сетки. Эти методы математически более сложны, так как на общей границе необходимо обеспечить не только непрерывность самой функции (температуры), но и непрерывность нормальной производной (теплового потока). Для этого используются специальные алгоритмы на интерфейсах (например, метод Дирихле-Неймана или метод Неймана-Неймана).

Дополнение Шура и предобуславливание FETI

Самым мощным математическим аппаратом для методов без перекрытия является матричное дополнение Шура (Schur Complement). Алгоритм алгебраически исключает все внутренние узлы каждого субдомена, сводя гигантскую глобальную СЛАУ к гораздо меньшей системе уравнений, которая записана исключительно относительно неизвестных значений на самих интерфейсах (границах разреза). После решения интерфейсной задачи каждый процессор абсолютно независимо и быстро восстанавливает решение внутри своего куска.

Для решения сложной интерфейсной системы обычно применяется метод сопряженных градиентов (CG). Чтобы он сошелся быстро, французский ученый Шарль Фархат разработал знаменитый алгоритм FETI (Finite Element Tearing and Interconnecting), который вводит множители Лагранжа (силы взаимодействия) на границах и использует сложные проекционные предобуславливатели. Сегодня алгоритмы типа FETI-DP (с двумя уровнями грубой сетки) обеспечивают идеальную масштабируемость: программа может эффективно задействовать сотни тысяч процессорных ядер, ускоряя решение пропорционально размеру суперкомпьютера.

Подробнее
Subscribe to this RSS feed

Соц. сети