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

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

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

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

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

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

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

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

Зачем всё это нужно и что за пробные функции? Выше, при построении аналитического решения, мы видели, как решение раскладывается в ряд Фурье — здесь происходит то же самое: если выбрать функции ортогональными, задача распадается на несколько независимых друг от друга решений, которые финально сложатся в искомое. Свобода выбора очень большая, поэтому функции можно взять максимально простыми и удобными для вычислений. Достаточно взглянуть на уравнение выше, и станет понятно, что решение может быть представлено суммой u(M,t)u(M, t) =i=1naiυi(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],υ)\displaystyle (L[u], \upsilon) =(f,υ).\displaystyle = (f, \upsilon).
(5.3)

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

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

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

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

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

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

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