Метод конечных разностей

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Метод конечных разностей — численный метод решения дифференциальных уравнений, основанный на замене производных разностными схемами. Является сеточным методом.

Основные понятия[править | править исходный текст]

  • Шаблон — это множество точек с помощью которых аппроксимируются производные.
  • Разностная схема

Метод конечных разностей для решения эллиптических задач[править | править исходный текст]

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

Сравнение с методом конечных элементов[править | править исходный текст]

Другой метод решения эллиптических задач — метод конечных элементов, имеет как преимущества, так и недостатки перед методом конечных разностей.

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

Пример[править | править исходный текст]

Пусть дана одномерная эллиптическая задача:

 -\frac{d^2u}{dx^2} = f(x), ~ x \in [0, 1]
 u(0) = u(1) = 0


Построим сетку с постоянным шагом  h = \frac{1}{4} . Для аппроксимации выберем трёхточечный шаблон, то есть для аппроксимации производной в точке  x_i будем использовать точки  \left \{ x_{i-1}, x_i, x_{i+1} \right \} . Тогда разностное уравнение будет выглядеть следующим образом:

 \frac{-u_{i-1} + 2u_i - u_{i+1}}{h^2} = f_i, ~ i = 1, 2, 3


Учитывая краевые условия, система линейных уравнений вида  Ax = b , для нахождения решения, будет выглядеть следующим образом:

 A = \begin{pmatrix}
1 & 0 & 0 & 0 & 0 \\
\frac{-1}{16} & \frac{1}{8} & \frac{-1}{16} & 0 & 0 \\ 
0 & \frac{-1}{16} & \frac{1}{8} & \frac{-1}{16} & 0 \\
0 & 0 & \frac{-1}{16} & \frac{1}{8} & \frac{-1}{16} \\
0 & 0 & 0 & 0 & 1\\
\end{pmatrix}
~~ b = \begin{pmatrix}
 0 \\
 f( \frac{1}{4} ) \\
 f( \frac{1}{2}) \\
 f( \frac{3}{4} ) \\
 0 \\
\end{pmatrix}
.

Метод конечных разностей для решения нестационарных задач[править | править исходный текст]

Решение задач методом конечных разностей, когда процесс изменяется во времени представляет собой итерационный процесс — на каждой итерации мы находим решение на новом временном слое. Для решения таких задач используются явные, неявные схемы и предиктор-корректор (пара из специально подобранных явной и неявной схемы). Явные схемы и схемы предиктор-корректор просто пересчитывают значение, используя информацию с предыдущих временных слоёв, использование неявной схемы приводит к решению уравнения (или системы уравнений).
Для параболических и гиперболических уравнений часто прибегают к смешиванию методов — производные по времени аппроксимируют с помощью разностной схемы, а оператор по пространству аппроксимируется с помощью конечноэлементной постановки[1].

Пример решения обыкновенного дифференциального уравнения[править | править исходный текст]

Пусть дано уравнение  \frac{du}{dt} = u с начальным условием  u(0) = 1 . Для решения воспользуемся следующими разностными схемами:

  • Явная схема Эйлера  \Bigl. \frac{du}{dt} \Bigr|_{t=t_i} = \frac{u_{i} - u_{i-1}}{h} . Разностное уравнение:  u_{i+1} = (1 + h) u_i .
  • Неявная схема Эйлера  \Bigl. \frac{du}{dt} \Bigr|_{t=t_i} = \frac{u_{i+1} - u_{i}}{h} . Разностное уравнение:  u_{i+1} = \frac{1}{1-h}u_{i} .

С шагом  h = 0.25 . Точным решением является экспонента:  u = e^t

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

Пример решения параболического уравнения[править | править исходный текст]

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

 -\Delta u + \frac{\partial u}{\partial t} = f(\mathbf{r}, t), ~ in ~\Omega
 u = g ~on~ \partial \Omega, ~ \Bigl. u \Bigr|_{t=0} = \chi (\mathbf{r})


Для аппроксимации по времени, используя неявную схему Эйлера, получим:

 -\Delta u^{i+1} + \frac{u^{i+1} - u^{i}}{\tau} = f(\mathbf{r}, t^{i+1})


Поскольку значение на предыдущем слое уже известно, то, при перенесении его в правую часть, получается эллиптическое уравнение относительно u^{i+1}:

 -\Delta u^{i+1} + \frac{1}{\tau}u^{i+1} = f^{i+1} + \frac{1}{\tau}u^{i}


Для решения данного уравнения можно применить метод Галёркина, тогда полученная СЛАУ будет иметь следующий вид:

 \left( G + \frac{1}{\tau}M \right) x^{i+1} = b^{i+1} + \frac{1}{\tau}Mx^{i} .

Здесь: G — матрица жесткости, M — матрица массы, b — вектор, связный с правой частью исходного уравнения, x^i — вектор весов базисных функций на слое с номером i.

Однако, решение по пространству можно искать также и с помощью разностной схемы, аналогично показанному выше примеру.

См. также[править | править исходный текст]

Литература[править | править исходный текст]

  • Самарский А.А., Николаев Е.С. Методы решения сеточных уравнений. — Москва: Наука, 1978. — 592 с.

Примечания[править | править исходный текст]

  1. Соловейчик Ю.Г., Рояк М.Э., Персова М.Г. Метод конечных элементов для скалярных и векторных задач. — Новосибирск: НГТУ, 2007. — 896 с. — ISBN 978-5-7782-0749-9