Вариационная постановка задачи

Эта глава — ключевая: здесь закладывается база метода конечных элементов. Освоив её, вы сможете применять тот же подход к уравнениям других типов, содержащих линейный оператор.

Мы рассмотрели аналитический подход к решению уравнения теплопроводности, однако для более сложных геометрий он быстро становится громоздким или вообще неприменимым, поэтому теперь приступим к нашей главной теме — численному решению уравнения теплопроводности. Ещё раз запишем уравнение (1.8) для удобства, заменив TT на uu

u(M,t)t=a2Δu(M,t)+f(M,t).\frac{\partial u(M, t)}{\partial t} = a^2 \cdot \Delta u(M, t) + f(M, t).

Нам надо подобрать функцию u(M,t)u(M, t), удовлетворяющую уравнению и граничным условиям; граничные условия предварительно гомогенизируем, как это делалось в аналитической части: неоднородность уйдёт в функцию плотности тепловых источников и в начальное условие, а в конце добавится к решению. Сама задача может быть представлена в виде уравнения Эйлера

L[u]=f,L[u] = f,
(5.1)

где L=ta2ΔL = \frac{\displaystyle \partial}{\displaystyle \partial t} - a^2 \cdot \Delta — линейный оператор дифференциального уравнения, uu — искомая функция, ff — функция нагрузки. Как я сказал выше, наше уравнение тоже подпадает под эту форму, а значит, мы можем применить известный подход к решению уравнения Эйлера. Таким подходом является метод Бубнова-Галёркина: в слабой форме требуется, чтобы для любой пробной функции υ(M,t)\upsilon(M, t) в любой момент времени tt выполнялось равенство

ML[u(M,t)]υ(M,t)dM=Mf(M,t)υ(M,t)dM.\int_M L[u(M, t)] \cdot \upsilon(M, t) \,dM = \int_M f(M, t) \cdot \upsilon(M, t) \,dM.
(5.2)

Зачем всё это нужно и что за пробные функции? Выше, при построении аналитического решения, мы видели, как решение раскладывается в ряд Фурье — здесь происходит то же самое: если выбрать функции ортогональными, задача распадается на несколько независимых друг от друга решений, которые финально сложатся в искомое. Свобода выбора очень большая, поэтому функции можно взять максимально простыми и удобными для вычислений. Достаточно взглянуть на уравнение выше, и станет понятно, что решение может быть представлено суммой u(M,t)=i=1naiυi(M,t)u(M, t) = \sum_{i=1}^n a_i \cdot \upsilon_i(M, t), где aia_i — коэффициенты, которые нужно найти, а υi(M,t)\upsilon_i(M, t) — базисные функции; в методе Бубнова-Галёркина пробные функции берутся из того же семейства. Подход к численному решению аналогичен аналитическому и тоже по сути сводится к поиску коэффициентов при известных базисных функциях. Я бы сказал больше: никакого принципиального разделения на аналитические и численные методы нет — по сути это одно и то же.

Интегралы писать неудобно, поэтому запишем (5.2) в виде скалярного произведения

(L[u],υ)=(f,υ).(L[u], \upsilon) = (f, \upsilon).
(5.3)

Известно, что уравнение Эйлера связано с функционалом следующим образом

I(υ)=(L[υ],υ)2(f,υ).I(\upsilon) = (L[\upsilon], \upsilon) - 2 \cdot (f, \upsilon).
(5.4)

Минимизация этого функционала возвращает нас к уравнению Эйлера, а функция υ\upsilon, на которой достигается минимум, и есть искомое решение uu. Покажем это.

Если на функции uu достигается минимум функционала, дадим ей приращение u+ϵυu + \epsilon \cdot \upsilon, где ϵ\epsilon — малое число, а υ\upsilon — произвольная функция, и проведём преобразования, приняв во внимание очевидное соотношение I(u)I(u+ϵυ)I(u) \leq I(u + \epsilon \cdot \upsilon)

I(u+ϵυ)=(L[u+ϵυ],u+ϵυ)2(f,u+ϵυ),I(u + \epsilon \cdot \upsilon) = (L[u + \epsilon \cdot \upsilon], u + \epsilon \cdot \upsilon) - 2 \cdot (f, u + \epsilon \cdot \upsilon),
I(u+ϵυ)=I(u)+2ϵ[(L[u],υ)(f,υ)]+ϵ2(L[υ],υ).I(u + \epsilon \cdot \upsilon) = I(u) + 2 \cdot \epsilon \cdot \left[ (L[u], \upsilon) - (f, \upsilon) \right] + \epsilon^2 \cdot (L[\upsilon], \upsilon).

При раскрытии скобок мы воспользовались самосопряжённостью оператора: (L[υ],u)=(L[u],υ)(L[\upsilon], u) = (L[u], \upsilon). Для производной по времени это, строго говоря, не так — аккуратный разбор этого момента дан в приложении «Функционал метода Бубнова-Галёркина». Так как ϵ\epsilon может быть отрицательным, для выполнения условия минимума необходимо, чтобы линейный по ϵ\epsilon член обращался в нуль, то есть чтобы выполнялось (5.3). Таким образом, для того чтобы решить уравнение Эйлера методом Бубнова-Галёркина, нужно минимизировать функционал (5.4).

Решение уравнений аналитически показало нам подход разделения переменных, поэтому попробуем применить эти знания здесь. Логически понятно, что нестационарность не добавляет сложности, связанной с геометрией: геометрия отдельно, время отдельно. В идеале решение нестационарного уравнения должно сводиться к последовательному решению NN стационарных задач. В приложении «Функционал метода Бубнова-Галёркина» мы получили функционалы, минимизация которых даёт решение нестационарной (I.6) и стационарной (I.5) задач.