2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Консервативная схема для решения дифференциального уравнения
Сообщение26.12.2018, 16:30 


09/09/15
17
Добрый день. Разбирался с различными схемами решения квазилинейных дифференциальных уравнений в частных производных и возник вопрос касательно применимости консервативных схем. Я разбираюсь с применением разностных схем на примере уравнения Хопфа:
$u_t+uu_x=0$
Либо, если его записать дивергентной форме:
$u_t+\frac{(u^2)_x}2=0$
Пусть мы рассматриваем уравнение на отрезке $x\in(X_0, X_1)$ по координате и на отрезке $t\in(0, T)$ по времени и имеем "хорошее" начальное условие без разрывов, скажем $u(x, 0)=e^{-\frac{x^2}2}$.
Если проинтегрировать это уравнение по координате и по времени в этих пределах, получим закон сохранения:
$\int_{X_0}^{X_1}dx(u(x, T)-u(x, 0)) + \frac12 \int_{0}^{T}dt((u(x_1, t))^2-(u(x_0, t))^2) = 0$

Теперь построим разностную схему для решения уравнения в дивергентной форме на сетке $x_n=X_0+nh$, $n\in[0, N]$, $t_m=m\tau$, $m\in[0, M]$:
$\frac{u^{m+1}_n-u^{m}_n}\tau+\frac{(u^{m}_{n+1})^2-(u^{m}_n)^2}{2h}=0$
Верхний индекс $u$ обозначает слой по времени, нижний индекс - по координате.
Теперь попробуем просуммировать данное выражение по всей сетки, аналогично интегрированию уравнения:
$\sum_{0}^{N-1}\sum_{0}^{M-1}h(u^{m+1}_n-u^{m}_n) + \frac12 \sum_{0}^{M-1}\sum_{0}^{N-1}\tau({(u^{m}_{n+1})^2-(u^{m}_n)^2}) = 0$
Преобразуем суммы:
$\sum_{0}^{M-1}(u^{m+1}_n-u^{m}_n) = u^M_n-u^0_n$
$\sum_{0}^{N-1}({(u^{m}_{n+1})^2-(u^{m}_n)^2}) = (u^m_N)^2-(u^m_0)^2$
Тогда получим:
$\sum_{0}^{N-1}h(u^M_n-u^0_n) + \frac12 \sum_{0}^{M-1}\tau({(u^m_N)^2-(u^m_0)^2}) = 0$
Тут видно, что в пределе, когда разбиения сетки стремятся к нулю, то есть $h\rightarrow0$ и $\tau\rightarrow0$, то данные суммы стремятся к интегралу, по сути мы считаем интеграл методом прямоугольников, который как известно имеет ошибку порядка h:
$\sum_{0}^{N-1}h(u^M_n-u^0_n)=\int_{X_0}^{X_1}dx(u^M(x)-u^0(x)) + R(h)$
$\sum_{0}^{M-1}\tau({(u^m_N)^2-(u^m_0)^2})=\int_{0}^{T}dt({(u_N(t))^2-(u_0(t))^2}) + R(\tau)$
Тогда закон сохранения, общем случае, выполняется не абсолютно точно:
$\sum_{0}^{N-1}\sum_{0}^{M-1}h(u^{m+1}_n-u^{m}_n) + \frac12 \sum_{0}^{M-1}\sum_{0}^{N-1}\tau({(u^{m}_{n+1})^2-(u^{m}_n)^2}) = R(\tau)+R(h)  $
То есть мы получили, что в консервативной схеме, которая должна сохранять некоторую величину, это величина (в данном случае энергия), сохраняется с некоторой ошибкой, пропорциональной шагу сетки.
Но проделав аналогичные выкладки с недивергентной формой записи уравнения Хопфа, получим 3 члена, а не 2, и ошибка опять будет пропорциональна шагу сетки. В связи с чем возникает вопрос - либо оценка проведена неправильно, и где то есть ошибка, так что на самом деле консервативная схема дает сходимость более высокого порядка, либо же, если все верно, то в чем принципиальная полезность консервативной схемы? Обе схемы дают одинаковую сходимость, ошибки соизмеримые по величине (При расчете по данной схеме я получил, что ошибка неконсервативной схемы сего в 2-3 раза больше, чем консервативной). Зачем нужна консервативная схема?

 Профиль  
                  
 
 Re: Консервативная схема для решения дифференциального уравнения
Сообщение26.12.2018, 18:10 
Супермодератор
Аватара пользователя


09/05/12
19475
Кронштадт
А откуда следует, что рассматриваемая схема является консервативной? Того, что она получена разностной аппроксимацией уравнений в дивергентной форме, для консервативности недостаточно.

P.S. Необходимым условием консервативности дивергентная форма уравнений, кстати, тоже не является.

 Профиль  
                  
 
 Re: Консервативная схема для решения дифференциального уравнения
Сообщение26.12.2018, 19:15 


09/09/15
17
Pphantom в сообщении #1363847 писал(а):
А откуда следует, что рассматриваемая схема является консервативной? Того, что она получена разностной аппроксимацией уравнений в дивергентной форме, для консервативности недостаточно.

P.S. Необходимым условием консервативности дивергентная форма уравнений, кстати, тоже не является.


Ну данная схема все таки сохраняет величину $\int_{X_0}^{X_1}dx(u(x, T)-u(x, 0)) + \frac12 \int_{0}^{T}dt((u(x_1, t))^2-(u(x_0, t))^2)=0$ с точностью $R(h)+R(\tau)$. А схема для уравнения в недивергентной форме будет сохранять эту величину с точностью до $h\frac12\int|u_x|^2dxdt$, так что если будет иметь место разрыв, то производная $u_x$ будет таки не ограничена и сохранения, все таки, не будет. В моем понимании так.

 Профиль  
                  
 
 Re: Консервативная схема для решения дифференциального уравнения
Сообщение26.12.2018, 22:15 
Супермодератор
Аватара пользователя


09/05/12
19475
Кронштадт
Так ведь схема будет консервативной, если для интегральных соотношений (т.е. обобщенных решений) она будет выглядеть так же. У вас это есть?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Toucan, maxal, PAV, Karan, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: B@R5uk


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group