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

27.08.2022

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

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

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

Сравнение с методом конечных элементов

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

Пример

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

− d 2 u d x 2 = f ( x ) ,   x ∈ [ 0 , 1 ] {displaystyle -{frac {d^{2}u}{dx^{2}}}=f(x),~xin [0,1]}
u ( 0 ) = u ( 1 ) = 0 {displaystyle u(0)=u(1)=0}


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

− u i − 1 + 2 u i − u i + 1 h 2 = f i ,   i = 1 , 2 , 3 {displaystyle {frac {-u_{i-1}+2u_{i}-u_{i+1}}{h^{2}}}=f_{i},~i=1,2,3}


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

A = ( 1 0 0 0 0 − 16 32 − 16 0 0 0 − 16 32 − 16 0 0 0 − 16 32 − 16 0 0 0 0 1 )     b = ( 0 f ( 1 4 ) f ( 1 2 ) f ( 3 4 ) 0 ) {displaystyle A={egin{pmatrix}1&0&0&0&0-16&32&-16&0&0&-16&32&-16&0&0&-16&32&-16&0&0&0&1end{pmatrix}}~~b={egin{pmatrix}0f({frac {1}{4}})f({frac {1}{2}})f({frac {3}{4}})end{pmatrix}}} .

Метод конечных разностей для решения нестационарных задач

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

Пример решения обыкновенного дифференциального уравнения

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

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

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

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

Пример решения параболического уравнения

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

− Δ u + ∂ u ∂ t = f ( r , t ) ,   i n   Ω {displaystyle -Delta u+{frac {partial u}{partial t}}=f(mathbf {r} ,t),~in~Omega }
u = g   o n   ∂ Ω ,   u | t = 0 = χ ( r ) {displaystyle u=g~on~partial Omega ,~{Bigl .}u{Bigr |}_{t=0}=chi (mathbf {r} )}


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

− Δ u i + 1 + u i + 1 − u i τ = f ( r , t i + 1 ) {displaystyle -Delta u^{i+1}+{frac {u^{i+1}-u^{i}}{ au }}=f(mathbf {r} ,t^{i+1})}


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

− Δ u i + 1 + 1 τ u i + 1 = f i + 1 + 1 τ u i {displaystyle -Delta u^{i+1}+{frac {1}{ au }}u^{i+1}=f^{i+1}+{frac {1}{ au }}u^{i}}


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

( G + 1 τ M ) x i + 1 = b i + 1 + 1 τ M x i {displaystyle left(G+{frac {1}{ au }}M ight)x^{i+1}=b^{i+1}+{frac {1}{ au }}Mx^{i}} .

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

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



Имя:*
E-Mail:
Комментарий: