2014 dxdy logo

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

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




 
 Граничные условия периодичности в разностной схеме
Сообщение08.11.2013, 15:08 
Добрый день, решаю численно систему диф. ур в частных производных.
Разностную схему построил, но заметил интересную вещь.
У меня есть граничные условия вида:
$u(r,0,t)=u(r,2\pi,t)$
В разностном виде записываю как
$u_{i,1}^k=u_{i,n}^k$
где n- число узлов по второй переменной.
Получается, что в данном случае они не зависят от других посчитанных значений сетки и остаются неопределенны.
Как быть с такими условиями?
Была идея добавить -1 слой по этой переменной и посчитать на левой границе по формулам для самих уравнений, а потом приравнять значения на правой границе к посчитанным значениям. Но мне кажется это слишком грубо и не точно.
Спасибо за ответы.

 
 
 
 Re: Граничные условия периодичности в разностной схеме
Сообщение08.11.2013, 15:33 
gear в сообщении #786321 писал(а):
В разностном виде записываю как
$u_{i,1}^k=u_{i,n}^k$
где n- число узлов по второй переменной.

Только не $u_{i,1}^k=u_{i,n}^k$, а $u_{i,0}^k=u_{i,n}^k$ (при естественной нумерации $n$ -- это количество отрезков, на которые разбивается период).

Просто внесите соответствующие коррективы в разностное уравнение для первого узла. Формально там должны зацепляться узлы $u_{i,0},\;u_{i,1},\;u_{i,2}$, фактически же это будет уравнение для $u_{i,n},\;u_{i,1},\;u_{i,2}$. В явном же виде никаких граничных условий по углу ставить не надо.

А, да, и ещё для последнего узла тоже, конечно: будет фактически уравнение не для $u_{i,{n-1}},\;u_{i,n},\;u_{i,{n+1}}$, а для $u_{i,{n-1}},\;u_{i,n},\;u_{i,1}$.

 
 
 
 Re: Граничные условия периодичности в разностной схеме
Сообщение08.11.2013, 17:52 
ewert в сообщении #786325 писал(а):
gear в сообщении #786321 писал(а):
В разностном виде записываю как
$u_{i,1}^k=u_{i,n}^k$
где n- число узлов по второй переменной.

Только не $u_{i,1}^k=u_{i,n}^k$, а $u_{i,0}^k=u_{i,n}^k$ (при естественной нумерации $n$ -- это количество отрезков, на которые разбивается период).

Просто внесите соответствующие коррективы в разностное уравнение для первого узла. Формально там должны зацепляться узлы $u_{i,0},\;u_{i,1},\;u_{i,2}$, фактически же это будет уравнение для $u_{i,n},\;u_{i,1},\;u_{i,2}$. В явном же виде никаких граничных условий по углу ставить не надо.

А, да, и ещё для последнего узла тоже, конечно: будет фактически уравнение не для $u_{i,{n-1}},\;u_{i,n},\;u_{i,{n+1}}$, а для $u_{i,{n-1}},\;u_{i,n},\;u_{i,1}$.


Понял, спасибо.

 
 
 
 Re: Граничные условия периодичности в разностной схеме
Сообщение09.11.2013, 00:55 
Аватара пользователя
Немного не в тему, но такое условие естественно возникает в 2D-моделировании на круге и 3D-моделировании на сфере. Для неявного метода эта проблема решается циклической прогонкой по углу (там, кстати, так и выходит, что значения $u^{n}_{k,1}$ и $u^{n}_{k,n}$ совпадают и никаких дополнительных условий ставить не нужно). Литература: Самарский А.А., Николаев Е.С. - Методы решения сеточных уравнений - 1978.

 
 
 
 Re: Граничные условия периодичности в разностной схеме
Сообщение09.11.2013, 08:43 
cool.phenon в сообщении #786435 писал(а):
Для неявного метода эта проблема решается циклической прогонкой по углу (там, кстати, так и выходит, что значения $u^{n}_{k,1}$ и $u^{n}_{k,n}$ совпадают и никаких дополнительных условий ставить не нужно).

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

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group