ПОСТРОЕНИЕ БИКОМПАКТНЫХ СХЕМ ДЛЯ ЗАДАЧ В

advertisement
ОДНОМЕРНЫЕ И ДВУМЕРНЫЕ БИКОМПАКТНЫЕ СХЕМЫ В
СЛОИСТЫХ СРЕДАХ
Н.Н. Калиткин, П.В. Корякин
Институт математического моделирования РАН, Москва
Аннотация
Рассмотрен новый тип разностных схем - так называемые бикомпактные схемы.
Для записи таких схем уравнения в частных производных сводятся к эквивалентным
системам
обыкновенных
дифференциальных
уравнений.
Пространственные
производные аппроксимируются на двухточечном шаблоне, то есть в пределах одного
интервала сетки. В слоистых средах, при введении специальных сеток, на которых все
точки разрывов коэффициентов являются узлами сетки, бикомпактные схемы
сохраняют свою аппроксимацию. Подробно рассмотрены две схемы решения задачи
Коши для одномерного уравнения теплопроводности, а также приведены схемы для
двумерных задач на произвольных сетках.
Annotation
Considered a new type of differential schemes - so called bicompact schemes. To
derive such schemes we transform PDE into system of ODEs. Spatial derivatives are
approximated on 2-points pattern, i.e. within single grid step. In layered mediums bicompact
schemes keep their approximation if we set a special grid, such that all points where
coefficients have breaks are nodes of the grid. Two schemes for 1-dimensional hyperbolic
problem were considered in details and schemes for 2D problems are given.
Работа поддержана грантами РФФИ 08-01-00171 и грантом Фонда содействия
отечественной науке по программе "Лучшие аспиранты РАН"
1
Введение
Разнообразие задач математической физики приводит к необходимости
построения специфических методов решения для конкретных классов задач.
Например, для численного решения многих сложных задач математической
физики широко используют так называемые компактные разностные схемы [1].
Компактными называют схемы, имеющие высокий порядок точности при
небольшом числе узлов шаблона (например, 4-й – 6-й порядок точности при 3
узлах). Такие схемы сравнительно просто записываются, и обеспечивают
высокую точность расчёта при умеренном числе узлов сетки. Особенно
актуально применение таких схем при решении задач в слоистых средах, в
которых в каждом из слоёв коэффициенты уравнений являются многократно
дифференцируемыми функциями координат, но на границах сред коэффициенты
разрывны.
Решение задач в слоистых средах осложняется тем, что очень трудно
построить аппроксимацию, дающую высокий порядок точности на стыках сред.
Если задавать сетку так, что граница сред лежит между узлами сетки, то
построить
адекватную
аппроксимацию
практически
невозможно.
Будем
выбирать сетку так, чтобы её узлы попадали на границы слоёв. Такие сетки
называют специальными. Однако если шаблон аппроксимации содержит три и
более пространственных узла, то специальные сетки не спасают: когда
внутренний узел шаблона совпадает с границей, приходится использовать
аппроксимацию производных через разрыв. В этих узлах аппроксимация имеет
пониженный порядок точности, что кардинально ухудшает общую точность
расчёта. Использование в расчёте полуцелых узлов приводит к такому же
эффекту.
В данной работе предлагается новый тип разностных схем, позволяющий
решать такие задачи с высокой точностью. В одномерном случае будем
составлять схемы, шаблон которых имеет только два узла по пространству,
причём все величины берутся в целых узлах сетки. Такие схемы назовём
бикомпактными. На специальных сетках в них нет аппроксимаций через
2
разрывы, поэтому возможно построение бикомпактных схем высокого порядка
точности для слоистых сред. Ниже построены и исследованы бикомпактные
схемы точности O  h 2  и O  h 4  для одномерного параболического уравнения, а
O  hx2  hy2 
также выписаны схемы точности
для двумерной задачи на
треугольных и четырёхугольных сетках.
Построение схем
В
качестве
примера,
иллюстрирующего
методологию
построения
одномерных бикомпактных схем, рассмотрим задачу
u 
u
 (k ( x, t ) )  f ( x, t ), a  x  b;
t x
x
u ( x,0)  0 ( x), u (0, t )  a (t ), u (b, t )  b (t ),
C  x, t 
(1)
и построим бикомпактные схемы для её решения.
Метод прямых
Данный подход решения уравнений в частных производных позволяет
разделить задачу (1) на две подзадачи:
1)
аппроксимация
пространственных
производных
разностными
отношениями;
2) интегрирование по времени.
По пространству, таким образом, задача сводится к выбору метода
аппроксимации пространственных производных и его анализу. А по времени
необходимо выбрать метод интегрирования и анализировать его множитель
роста,
который
пространственного
в
свою
очередь
оператора.
зависит
Именно
от
множитель
спектра
выбранного
роста
определяет
устойчивость схемы. Метод прямых выгодно отличается от обычной разностной
замены
всех
производных,
включая
временные
тем,
что
позволяет
оптимизировать каждую подзадачу по отдельности. При этом исследователь
волен выбирать оптимальную для его целей аппроксимацию пространственных
3
производных и затем, исходя из спектра построенной аппроксимации, выбирать
метод интегрирования по времени.
Пространственная аппроксимация
Чтобы получить аппроксимацию производной точности O(h 2 ) нужен 3точечный шаблон. Однако наша цель построить бикомпактную схему, в которой
шаблон по пространству будет состоять из двух точек, то есть задачу мы будем
решать в пределах одного
интервала сетки
по пространству. Чтобы
воспользоваться 2-точечным шаблоном, заменим (1) эквивалентной системой
двух уравнений первого порядка:
u
1
w
u

w  x, t  ,
 C  x, t   f ( x, t ) ;
x k ( x, t )
x
t
u ( x,0)  0 ( x), u (a, t )  a (t ), u (b, t )  b (t ), w( x,0)  1 ( x).
(2)
Помимо температуры u , здесь появляется тепловой поток w , который мы для
удобства записи берём со знаком минус. Граничные условия задаются только
для температуры - поток в граничных точках не известен. В такой постановке,
помимо
начального
профиля
температуры
также
необходимо
задавать
начальный профиль потока.
В неподвижной слоистой среде коэффициент k ( x, t ) и свободный член
f ( x, t )
имеют
неподвижные
разрывы.
Между
разрывами
считаем
их
многократно непрерывно дифференцируемыми. Благодаря наличию разрывов
решение будет обобщённым. При этом физически правильным является
решение, в котором u ( x, t ) , w( x, t ) всюду непрерывны.
Введём по пространству специальную сетку так, чтобы все
точки, в
которых функции k ( x, t ) и f ( x, t ) имеют разрывы, являлись бы узлами сетки.
Схему для узловых значений построим методом прямых, интегрируя (2) по
пространству:
w( x, t )
dx
xn 1 k ( x, t )
un  un1  
xn
4
(3)
wn  wn1  
xn
xn 1
(C  x, t 
u ( x, t )
 f ( x, t ))dx
t
(4)
При этом под узловыми значениями функции надо подразумевать всегда
односторонние пределы изнутри данного интервала. Но для теплопроводности
величины u ( x, t ) и w( x, t ) непрерывны всюду, в том числе на разрывах
коэффициентов. Поэтому для них это просто узловые значения. Однако при
построении схемы аппроксимации O( 2  h4 ) для уравнения теплопроводности
возникает необходимость для начальных данных по потоку брать именно
односторонние пределы. Об этом будет сказано позже при описании вывода
схемы.
Схема точности
O  h2 
Для получения схемы второго порядка точности по пространству,
вычислим интегралы (3) со вторым порядком точности по формуле трапеций.
Сетка выбрана таким образом, что точки разрывов k ( x, t ) и f ( x, t ) , являются
узлами сетки и внутри интервалов сетки эти коэффициенты достаточно гладкие,
то можно использовать их значения в полуцелых точках. Интегрируя, получим
дифференциально-алгебраическую систему
un  un1 
hn
 wn1  wn  ;
2kn1/ 2
C
du 

 du
wn  wn1  hn  n1/ 2  n1  n   f n1/ 2  .
dt 
 2  dt

(5)
(6)
Полученную систему можно непосредственно интегрировать по времени,
однако придется решать систему уравнений довольно непривычного вида; кроме
того, потребуется задавать начальный профиль не только для температуры, но и
для потока. Чтобы избавиться от необходимости задавать начальный профиль
температуры и одновременно привести систему к привычному виду, проведём
ряд преобразований.
5
Первое уравнение преобразуем к виду
wn1  wn 
2
kn1/ 2  un  un1  .
hn
Запишем оба уравнения для индексов на единицу больше.
wn  wn1 
2
kn1/ 2  un1  un 
hn1
(7)
C

 du du 
wn1  wn  hn1  n1/ 2  n  n1   f n1/ 2 
dt 
 2  dt

(8)
Теперь из (7) вычтем (5), а к (8) прибавим (6). В результате получим
 1

1
wn 1  wn 1  2 
kn 1/ 2  un 1  un   kn 1/ 2  un  un 1  
hn
 hn 1

C

C
du 

 du du 
 du
wn 1  wn 1  hn 1  n 1/ 2  n  n 1   f n 1/ 2   hn  n 1/ 2  n 1  n   f n 1/ 2 
dt 
dt 
 2  dt

 2  dt

(9)
Видно, что левые части первого и второго уравнений в (9) совпадают. Отсюда
получаем следующую систему:
M
A N  2 N  2
M
 2  2

  
3
 3
0


4





...









du
 u   ,
dt
(10)
...
3 0
4  4
5
5
6
0
...
5 0
6  6
...
...
...
...
0
0
...
...
 N 5
0
...
...
 N 5
 N 4
 N 5
0
 N 4  N 4
 N 3
...
1
A , при  n  Cn1/ 2 hn , n  Cn1/ 2 hn  Cn1/ 2 hn1 ,  n  Cn1/ 2 hn1
2
  2A , при  n 
kn 1/ 2
k
k
k
,  n   n 1/ 2  n 1/ 2 ,  n  n 1/ 2
hn
hn 1
hn
hn 1
6
...
0
 N 3
 N 2
 N 3
0
 N 2  N 2
 N 1  N 1



















Хотя (10) формально является трёхточечной схемой, она эквивалентна
двухточечной схеме, тем самым она сохраняет аппроксимацию O(h 2 ) для
слоистых сред. Кроме того, (10) удобнее тем, что она не требует
дополнительного начального условия w( x,0) .
Традиционная схема для задачи (1) отличается от (10) тем, что вместо
матрицы M в ней будет иметь место диагональная матрица со значениями
коэффициента C на главной диагонали.
O  h4 
Схема точности
Для получения схемы четвёртого порядка точности по пространству
необходимо вычислить интегралы из (3) с точностью O(h 4 ) . Для этого
используем
формулу
Симпсона
точности
O(h 4 ) ,
которая
для
случая
произведения двух функций выглядит следующим образом

xn
xn1
y  x  z  x  dx 
hn
 yn1 zn1  4 yn1/ 2 zn1/ 2  yn zn 
6
(11)
Так как нам потребуются значения в полуцелых узлах сетки, которыми мы не
располагаем, то необходимо аппроксимировать их некоторой комбинацией
значений в целых узлах с точностью O(h 4 ) . Для этого воспользуемся формулой
zn 1/ 2 
1
1
 zn1  zn   hn  zn' 1  zn' 
2
8
(12)
Подставляя (12) в (11) получим окончательную формулу точности O(h 4 ) для
вычисления интеграла от произведения двух функций:

xn
xn1
y  x  z  x  dx 
hn
h2
 yn 1  2 yn 1/ 2  zn 1   2 yn 1/ 2  yn  zn   n yn 1/ 2  zn' 1  zn'  .
6
12
(13)
Взяв по формуле (13) интегралы из (2) получим чисто дифференциальную
систему порядка 2N (c учётом краевых условий) без алгебраических уравнений
7
hn2  dun
du 
 Cn 1 n 1  
 Cn
12kn 1/ 2 
dt
dt 
h
 un 1  un  n
6
 1
 2
hn2
2 
1 

  wn  
 f n  f n 1  ;

 wn 1  
 kn 1/ 2 kn   12Cn 1/ 2
 kn 1 kn 1/ 2 
 d  w
hn 
dun 1
dun  h
d  w 
C

2
C

2
C

C

C





n

1
n

1/
2
n

1/
2
n
n

1/
2


  

6 
dt
dt  12
 dt  k  n 1 dt  k  n 
h
 wn  wn 1  n  f n 1  4 f n 1/ 2  f n  ,
6
(14)
2
n
где
d  w  1 dw w dk

.
 
dt  k  k dt k 2 dt
К сожалению, к данной системе уравнений невозможно применить
преобразований аналогичных тем, которые были проведены со схемой (10) с
целью исключения теплового потока. Таким образом, систему (14) приходится
непосредственно интегрировать по времени и, кроме того, в такой постановке
помимо начального профиля тепла u  x,0 , требуется также задать начальный
профиль потока w  x,0 .
Чтобы записать схему в операторной форме M
du
 u   , объединим
dt
переменные в один вектор следующим образом:
{w1 , u2 , w2 , u3 , w3...ui 1wi 1ui wiui 1wi 1..., u N 1 , wN 1 , wN }
Тогда операторы M и  , а также вектор-столбец  примут вид:


 2




M 


 ...




2
2 2
3
 3 3
...
...
3
3 3
...
4
 4 4
4
4 4
...
...
...
...
...
...
N
 N N
8










... 



N 
n 
где
n 
hn2
Cn 1 ,
12kn 1/ 2
n 
hn2
Cn ,
12kn 1/ 2
n 
hn
 Cn1  2Cn 1/ 2  ,
6
n
hn2
Cn 1/ 2 ,
12kn 1
hn
h2
 2Cn1/ 2  Cn  , n  n Cn1/ 2 ,
6
12kn
 2

 2












где  n 
1  2
2
1 3
1 3
3
3
1 4
1  4
4
4
...
1 N
N
N
N















hn2
hn2
hn  1
hn  2
2 
1
,
,
,


C

1


1

Cn 1/ 2 ,







 n
n 1/ 2
n
n
12kn21
12kn2
6  kn1 kn1/ 2 
6  kn1/ 2 kn 

h22

 f 2  f1   u1
12C1.5


h2

 f1  4 f1.5  f 2 
6


h32

 f3  f 2 
12C2.5

 
h3

 f 2  4 f 2.5  f3 
6


...

hN2

 f N  f N 1   uN
 12C
N

1/
2

 hN
 f N 1  4 f N 1/ 2  f N 

 6









.










При этом N -число узлов сетки, а hn  xn  xn1 . Матрицы операторов для обоих
схем имеют ленточную структуру, причем лента состоит из ящиков размера 2*2.
Небольшие отклонения от ящичной структуры есть на концах, но они не меняют
ленточную структуру. Такие системы легко решаются адаптированным под
конкретную структуру методом Гаусса.
9
Интегрирование по времени
Для интегрирования по времени использовалось семейство одностадийных
схем Розенброка, имеющих следующий вид
uˆ  u   Re(v);
(15)
 M    v  .
где символ ^ означает новый слой t   , а черта – момент t   / 2 . Значение v
определяется решением линейной системы с трёхдиагональной матрицей, так
что схема (15) экономична.
В зависимости от значения управляющего параметра  свойства схемы
существенно разнятся. Так при   0 получаем явную схему,   1 - чисто
неявную,   1/ 2 - схему с полусуммой и, наконец, при  
1 i
получается
2
комплексная схема CROS, на уникальные свойства который мы неоднократно
указывали. Эта схема имеет аппроксимацию O(2 ) и L2-устойчивость, что
обеспечивает высокую надёжность.
Исследование устойчивости
Сначала найдём спектр построенных пространственных операторов
простейшим методом гармоник. Этим методом довольно просто найти спектр
схемы при некоторых упрощающих предположениях, а именно на равномерной
сетке и при постоянном коэффициенте k ( x, t ) . Аккуратное исследование схем
методом операторных неравенств (см. [2]) в большинстве случаев подтверждают
результаты такого примитивного исследования устойчивости схем.
Итак, будем искать решение задачи на отрезке
0 xa
в виде
N 1
u ( x, t )   exp(mt  im x) , при этом поток можно задать формулой w( x, t )   u ( x, t ) .
m 1
Шаг сетки постоянен и равен h  a / N , а частоты гармоник m удовлетворяют
условию m a   m , 1  m  N 1 .
10
Схема точности
O(h 2 )
Для схемы (10) спектр получим, подставляя в одно из уравнений системы
выражения для m -ых гармоник температуры и потока: um ( x, t )  exp(mt  im x) ,
wm ( x, t )   exp(mt  im x) . При этом x  nh .
k x
 k  xn0.5 


du du 
1  dun1
h
 2 n  n1   2 
 un1  un   n0.5 un  un1 
2  dt
dt
dt 
hn
 hn1

Подставив в уравнение выражения для m -х гармоник и сразу сократив на e t i
m
m nh
получим
m h
2k
 2  e  im h  eim h  
 2  e im h  eim h 
2
h 
Пользуясь тем, что ei  cos    i sin   , получим выражение для m
m 
4k 1  cos m h 
,
h 2 1  cos m h 
которое, используя формулы половинного угла и учитывая, что m a   m
преобразуем к виду
m 
Схема точности
4k 2   m 
tg 
 , 1  m  N 1
h2
 2N 
(16)
O(h 4 )
Учитывая то, что устойчивость схем мы исследуем для однородных задач,
на равномерной сетке, при постоянных k ( x, t ) и C  x, t  , подставим выражения для
m -ых гармоник в схему (14), сразу сократив выражения на e t
m

h 2  im h n 1 im hn 
h
m 
e
e
 m eim hn  eim h ( n 1)    eim hn  eim h ( n 1) 




12k
2

2
 h eim h n 1  eim hn   eim hn  eim h ( n 1)   h eim hn  eim h ( n1) 
m



2k 
 12k 
Сократив уравнения на e
1
im h ( n  )
2
, получаем

h2
 m h 
 m h 
 m h 
 m 6k sin  2   m h cos  2   2 sin  2 








2
 h sin  m h   2sin  m h    h cos  m h 






 m 6k
k
 2 
 2 
 2 
11
Из первого уравнения получим  
m h
 h
tg  m  . Подставляя выражение
2
2  m h 6k  2 
для  во второе уравнение, получим квадратное уравнения относительно m :
m2
2
h4
  h 
 m h2   ctg 2  m    4k  0
36k
 2 
3
(17)
Решая его, получим две ветви корней
2
m 
  ctg 2 

3
 2N 
m ,   18k
1
m  4
2 m 
ctg 4 
  ctg 

 2N  3
 2 N  18
, 1  m  N 1
2
h
(18)
Иллюстрация спектров
Выше мы получили спектры для двух исследуемых схем. Напомним так
же,
что
для
классической
аппроксимируется
на
схемой,
трёхточечном
следующим образом - m 
в
которой
шаблоне,
вторая
спектр
будет
производная
выглядеть
4k
m 
sin 2 
 , 1  m  N  1 . Для точного же решения
2
h
 2N 
m 
m   
 , 1 m   .
 Nh 
2
На рисунке 1 изображены графики всех приведённых спектров.
12
150000
classic
2
o(h )
4
o(h )
exact

100000
50000
0
20
40
60
80
m
Рис. 1. Спектры схем.
Видно, что для классической схемы высокие гармоники затухают
несколько медленнее, чем у точного решения. Для бикомпактной схемы
точности O  h 2  высшие гармоники затухают гораздо быстрее не только
классической схемы, но и точного решения, следовательно решение будет
получаться более гладкое. У спектра бикомпактной схемы точности O  h 4 
имеются две ветви, физичная и жёсткая не физичная. Спектр мягкой физичной
ветви близок к спектру точного решения.
Функция устойчивости
Для (10) в сочетании с семейством одностадийных схем Розенброка
множитель перехода со слоя на слой (функция устойчивости) для m-й гармоники
имеет следующий вид, в зависимости от значения параметра  :
  0, m  1   m ,    m  1 ;
13
(19)
  1, m 
1
, 0  m  1 ;
1  m
1
1  m 2
  , m 
,  1  m  1
2
1  m 2
(20)
(21)
1

1 i
 2m 

, m  1   m   , 0  m  1
2
2 

(22)
 m   4k  h 2  tg 2  m 2 N  , h  (b  a ) N .
(23)
Отсюда видно, что для схемы CROS, по которой проводились все расчёты,
0  m  1, так что схема А-устойчива и, тем самым, безусловно устойчива.
Наличие члена с  2m обеспечивает L2-устойчивость схемы.
Структура выражения (22) такова же, как для традиционных не
бикомпактных схем с использованием метода CROS. Однако имеется
интересное отличие: в (23) стоит тангенс, а в традиционных – синус. Для низших
гармоник с m
m
N это отличие почти незаметно. Однако, старшие гармоники с
N в (22) затухают гораздо быстрее, чем в традиционных схемах. Это
существенно усиливает подавление высокочастотных шумов и обеспечивает
лучшее качественное поведение численного решения.
Для бикомпактной схемы точности O  h 4  в сочетании с одностадийной
схемой Розенброка, множитель  m по-прежнему имеет вид (19)-(22), однако,
вместо величин  m (23) в него входят следующие две ветви:
 m  ,   18k
2
m 
  ctg 2 

3
 2N 
1
m  4
2 m 
ctg 4 
  ctg 

 2N  3
 2 N  18
2
h
(24)
Плюсовая ветвь не появляется в традиционных схемах. Её значения так
велики, что все связанные с ней возмущения быстро исчезают. Минусовая ветвь
похожа на традиционные. Её начало близко к (23), но далее она соответствует
зависимости не с тангенсом, а с синусом. Тем самым, в схеме (14) шумы
подавляются примерно как в классических схемах и гораздо слабее, чем в схеме
14
(10). Поэтому можно ожидать несколько худшего поведения этой схемы на
решениях с особенностями.
Расчёты
Для тестирования схем использовался набор задач, покрывающий
разнообразные сочетания начальных условий, типов сред и сеток. В
пространстве задачи рассматривались на отрезке от -1 до 1, при этом
тестирование проходило на двух видах сеток:
1) равномерной;
2) пилообразной, с соотношением шагов h2 n  2h2 n1  h2 n1 .
Среда бралась двух видов:
1
8
1) сплошная, с коэффициентом теплопроводности k  ;
2) слоистая, с k 
1
1
при x  0 и k  при x  0 .
16
8
Начальный профиль тепла выбирался из:
1) непрерывного - u ( x, 0)  sin 
x
;
 2 
1, x  0
1
2) разрывного - u  x, 0    u ' , x  0 , где u '  0 для равномерной сетки и u '  
3
 1, x  0

для пилообразной.
Таким образом, комбинируя два вида сеток, две вида среды и два начальных
профиля, мы получаем 8 разнообразных тестовых примеров.
Тестовые примеры подобраны так, чтобы исследовать все свойства
бикомпактных схем и вместе с тем обозначить ограничения на их применение.
Одной из основных задач тестовых расчётов являлось установление
структуры
ошибки
классическом
исследуемых
методе
схем.
апостериорной
Ричардсоном в 1929 году.
15
Исследование
оценки
основывалось
точности,
на
предложенной
Пример расчёта по схеме точности
O( 2  h2 )
Бикомпактная схема (10) тестировалась на всех тестовых примерах. Во
всех случаях апостериорная оценка точности по методу Ричардсона показывала,
что схема реализует свою теоретическую точность O  2  h 2  . Здесь мы
проиллюстрируем результаты работы схемы на примере решения самой
сложной из рассмотренных задач: разрывный начальный профиль, слоистая
среда и пилообразная сетка.
Использование пилообразной сетки накладывает некоторые ограничения
на задание начального условия. Так как схема выводилась из предположений о
непрерывности начального профиля температуры, то возникает вопрос, как
задать начальные данные в точке разрыва. Оказалось, что задавать начальное
условие следует из соображений сохранения тепла в системе:
 un  un1  hn  un1  un  hn1, t  0.
Таким образом, в точке x  0 начальный профиль тепла должен иметь значение
0 ( x)  1/ 3 , при данном соотношении шагов сетки (
h2 n
 2 ).
h2 n 1
На рисунке 2 приведены результаты расчётов по схеме: показаны
начальный профиль температуры, профиль в моменты времени T / 2 и T . На
рисунке 3 показана зависимость погрешности решения, полученной по методу
Ричардсона, от числа узлов сетки. График построен в двойных логарифмических
осях, а, следовательно, тангенс угла наклона графиков соответствует
эффективному порядку точности схемы, полученному при расчёте.
16
1.0
u(x,0)
u(x,T/2)
u(x,T)
U
0.5
0.0
-0.5
-1.0
-1.0
-0.5
0.0
0.5
1.0
x
Рис. 2. Результаты расчёта по схеме (10).
norm C (t=)
norm C (t=T)
norm L2 (t=)
norm L2 (t=T)
0.01
log(err)
1E-3
1E-4
1E-5
1E-6
1
log(N)
Рис. 3. Эффективный порядок точности схемы (10). Пунктирная линия – теоретический
17
порядок точности, равный 2.
Пример расчёта по схеме точности
o( 2  h4 )
Схема четвертого порядка точности по пространству помимо задания
начального профиля температуры также требует задания начального профиля
потока. Это создаёт дополнительные трудности в постановке задачи. Кроме
того, оказывается, что схема не устойчива к разрывам начальных профилей и
для
реализации
своего
теоретического
порядка
точности
требует
согласованности данных, а именно непрерывности начальных профилей. Но с
точки зрения физики это требование естественно, так как невозможно создать
систему с термодинамической историей и одновременно с разрывными
профилями температуры или потока. Для иллюстрации работы схемы
рассмотрим следующую задачу:
a  1, b  1, h2 n  2h2 n1  8/ 3 N , T  1;
k ( x, t )  1/16, u ( x,0)   x  1  1, w( x,0)  2  x  1 k ( x,0), при x  0;
2
(25)
k ( x, t )  1/ 8, u ( x,0)  x, w( x,0)  k ( x,0), при x  0.
В этой постановке хоть среда и является слоистой, начальные профили
температуры и потока непрерывны всюду. Апостериорная оценка точности
показывает, что схема реализует свой теоретический порядок точности. На
рисунках 4 и 5 приведены графики профилей температуры и потока для
моментов времени t  0 , t   и t  T . Рисунок 6 аналогичен рисунку 3 из
предыдущего примера для схемы (10). Жирная пунктирная линия на рисунке 6
соответствует теоретическому четвёртому порядку точности, равному 4-м.
18
1.0
u(x,0)
u(x,T/2)
u(x,T)
U
0.5
0.0
-0.5
-1.0
-1.0
-0.5
0.0
0.5
1.0
x
Рис. 4. Профиль температуры для задачи (25).
0.12
0.10
w(x,0)
w(x,T/2)
w(x,T)
U
0.08
0.06
0.04
0.02
0.00
-1.0
-0.5
0.0
0.5
x
Рис. 5. Профиль потока для задачи
19
(25).
1.0
1E-4
norm C (t=)
norm C (t=T)
norm L2 (t=)
norm L2 (t=T)
1E-5
1E-6
log(err)
1E-7
1E-8
1E-9
1E-10
1E-11
log(N)
Рис. 6. Эффективный порядок точности схемы
(25).
Метод Ричардсона
Пусть на данном классе решений схема сходится с порядком точности p .
Напомним, что имея решения на двух сетках с числом узлов N и rN ,
погрешность решения U rN на более подробной сетке можно вычислить по
формуле
RrN 
U rN  U N
 O h p 
p
r 1
(26)
Формула (26) асимптотически точна. Численное решение U rN может быть
уточнено добавлением к нему найденной ошибки RrN
U rN  U rN  RrN  U rN 
U rN  U N
r p 1
(27)
При этом U  U rN  O h p s  , где s  1 для несимметрично записанных схем и s  2
симметричных.
Итак, имея расчёт на двух вложенных сетках можно вычислить ошибку
расчёта на более подробной сетке и уточнить расчёт на 1-2 порядка. Имея расчёт
20
на трёх сетках N , rN и r 2 N , можно провести уточнение дважды по тому же
самому принципу: сначала уточнить решение на сетке r 2 N , затем на сетке rN , и
потом снова на сетке r 2 N , по уже уточнённому решению на вложенной сетке.
Заметим, что, так как после уточнения эффективный порядок точности
схемы меняется, его следует вычислять и при вычислении ошибки уже
уточнённого решения использовать именно эффективный порядок, а не
теоретический порядок схемы. Имея расчёт на трёх сетках, эффективный
порядок точности можно вычислить по следующей формуле
peff
 u  uN
ln  rN
 u 2  urN
  rN
ln  r 



(28)
Эффективный порядок точности вычисляют, например, когда теоретический
порядок метода не доказан. Следует также заметить, что результаты уточнения
зависят от структуры ошибки численного метода.
Структура ошибки
Структура ошибки схем выяснялась по каждой переменной отдельно.
Сначала фиксировалась сетка по времени, и проводились расчёты на вложенных
сетках по пространству. Затем переменные менялись местами.
Рассмотрим расчёт, проведённый на
m
сетках с числом узлов
N , rN , r 2 N ,..., r m N . Так как метод Ричардсона даёт асимптотическую оценку
погрешности, то для вычисления эффективного порядка точности расчёта по
формуле (28) используем максимально подробные сетки. В нашем случае это
сетки с номерами m  2 , m 1 и m . Однако, заметим здесь, что всегда необходимо
аккуратно следить за тем, не вышел ли расчёт на ошибки округления. В этом
случае вычисления будут некорректными.
Эффективный порядок точности расчёта peff выясним для последнего шага
по времени. Полученный порядок точности соответствует порядку первого
члена в разложении ошибки по степеням шага сетки, на которой проводился
расчёт. Если задача соответствует тем условиям, для которых выводилась схема,
21
то эффективный порядок peff должен совпасть с теоретическим порядком
точности схемы p .
Получив значение peff , можно вычислить ошибку расчёта по формуле (26)
для сеток с номерами 2,3,..., m . Согласно (26), величина полученной ошибки
составит O  h p
eff
.
Прибавив полученную ошибку к исходному численному
решению сеток 2,3,..., m , получим уточнённое решение, в котором отсутствует
главный член ошибки.
Повторив действия, описанные выше, применительно к уже уточнённому
решению, мы можем точно так же узнать порядок следующего члена
разложения ошибки ( peff ), вычислить погрешность и уточнить решение второй
раз. Заметим только, что второй раз уточнение можно сделать только для сеток
3, 4,..., m .
Таким образом, имея расчёты на m сетках, мы можем провести уточнение
m  3 раза и установить структуру ошибки вплоть до m  3 -го члена. В таблицах
1-4 приведены значения эффективного порядка точности расчётов всех тестовых
примеров, а также порядки, получаемые на трёх последовательных уточнениях.
Таки образом для каждого тестового примера установлена структура ошибки по
каждой переменной вплоть до 4-го члена разложения. Для схемы второго
порядка точности по пространству результаты приводятся не только для
исследуемой бикомпактной схемы, но также и для классической схемы, в
которой
вторая
производная
по
пространству
аппроксимируется
на
трёхточечном шаблоне.
Таблица 1. Эффективные порядки точности для бикомпактной схемы точности O  2  h 2  на
тестовых примерах при сгущении сетки по пространству.
u0
Среда
Сетка
Порядок
peff после
peff после
peff после
точности
первого
второго
третьего
решения
уточнения
22
уточнения уточнения
гладк./
сплош./
разр.
слоист.
гладк./
сплош./
разр.
слоист.
равномерн.
2
4
6
8
пилообр.
2
3
4
5
Таблица 2. Эффективные порядки точности для классической схемы точности O  2  h 2  на
тестовых примерах при сгущении сетки по пространству.
u0
Среда
гладк./
сплош./
разр.
слоист.
гладк./
сплош./
разр.
слоист.
Порядок
peff после
peff после
peff после
точности
первого
второго
третьего
решения
уточнения
равномерн.
2
4
6
8
пилообр.
2
3
4
5
Сетка
уточнения уточнения
Таблица 3. Эффективные порядки точности для бикомпактной схемы точности O  2  h 2  на
тестовых примерах при сгущении сетки по времени.
u0
Среда
Сетка
гладк./
сплош./
равномерн./
разр.
слоист.
пилообр.
Порядок
peff после
peff после
peff после
точности
первого
второго
третьего
решения
уточнения
2
3
уточнения уточнения
4
5
Таблица 4. Эффективные порядки точности для классической схемы точности O  2  h 2  на
тестовых примерах при сгущении сетки по времени.
u0
Среда
Сетка
Порядок
peff после
peff после
peff после
точности
первого
второго
третьего
решения
уточнения
23
уточнения уточнения
гладк./
сплош./
равномерн./
разр.
слоист.
пилообр.
2
3
4
5
Таким образом, получается, что для схемы (10) ошибка имеет структуру

(, h)   a 
 
 ...   b h
 для равномерной сетки
 ... для пилообразной сетки.
(, h)  a12  a23  ...  b1h 2  b2h 4  b3h 6  ...
1
2
 a23
2
1
 b2h3  b3h5
и
Если проводить расчеты на равномерной сетке по пространству,
одновременно сгущая сетку по обоим переменным с сохранением условия

h
 const , то ошибку для схемы (10) можно переписать в следующем виде:




(, h)  a1 2  b1 h 2  a23h3  a3 4  b2 h 4  a45h5  ... .
(29)
То есть теряется то достоинство схемы на равномерной сетке, что ошибка по
пространству раскладывается только по чётным степеням шага. После первого
уточнения решения, полученного при таком подходе к сгущению, сетки мы
сможем исключить главный член ошибки a1 2  b1h 2 , однако исключить член
a2 3  b2 h 4 уже не удастся.
Таблица 5. Эффективные порядки точности для бикомпактной схемы точности O  2  h 4  на
тестовых примерах при сгущении сетки по пространству.
u0
гладк.
гладк./
разр.
разр.
Среда
сплош.
слоист.
сплош.
Сетка
равномерн./
пилообр.
равномерн./
пилообр.
равномерн./
пилообр.
Порядок
peff после
peff после
peff после
точности
первого
второго
третьего
решения
уточнения
4
6
8
10
2
3
4
5
2
4
6
8
24
уточнения уточнения
Таблица 5 содержит значения эффективного порядка точности решения,
полученного при сгущении сеток только по пространству, при интегрировании
по схеме точности O  2  h 4  . По времени структура ошибки у данной схемы
такая же, как у предыдущей схемы. Таким образом, видно, что при
согласованности начальных условий, то есть когда начальные условия физичны
и не содержат разрывов (оба начальных условия, и для температуры и для
потока тепла), ошибка по пространству раскладывается в ряд по чётным
степеням шага сетки, то есть

 

(, h)  a12  a23  ...  b1h 4  b2h6  b3h8  ... .
(30)
Если проводить расчеты, одновременно сгущая сетку по обоим переменным с

сохранением условия
h
 const , то ошибку для схемы (14) можно переписать в
следующем виде:
  , h   a1 2 h 2  a2 3h3   a3 4  b1  h 4  a4 5 h5   a5 6  b2  h 6  ... .(31)
При таком подходе к одновременному сгущению сеток мы теряем то
достоинство схемы, что ошибка по пространству раскладывается только по
чётным степеням шага.
выполнения условия

h2
Однако, если вместо условия

h
 const потребовать
 const , тогда ошибка для схемы (14) запишется как
  , h    a1 2  b1  h 4   a2 3  b2  h 6   a3 4  b4  h8  ... ,
то есть каждое уточнение решения повысит эффективный порядок точности
схемы на два порядка.
Заметим здесь, что хотя при выводе бикомпактной схемы точности
O( 2  h2 ) использовался подход, оперирующий всего двумя соседними узлами
сетки и исключающий аппроксимацию производных через границу сред, схема
не даёт явных преимуществ перед классической схемой, в которой используется
трёхточечный шаблон по пространству. Этот факт подтверждает то, что
25
классическая схема, которая многие годы отшлифовывалась в отделах
Александра Андреевича Самарского, исключительно надёжна. Однако, как было
показано, исходя из тех же соображений, может быть легко выведена схема с
четвёртым порядком точности по пространству, что несколько сложнее сделать
классическими методами.
Природа нечётных степеней в разложении ошибки. Интересно
разобраться, почему в разложении ошибки численного решения на
пилообразной сетке возникают нечётные степени шага. Ведь, например, схема
(10) выводится в пределах одного интервала сетки, интегралы берутся по
формуле трапеций, разложение ошибки которой содержит только четные
степени шага. Рассмотрим здесь подробнее вычисление интеграла по формуле
трапеций.
1 N
 hn  un1  un   R
2 n 1
(32)
N
1

R    hn3un'' 1/ 2  Chn5un''''1/ 2  ... 

n 1  12
(33)

xN
x0
u  x  dx 
Введём понятие нормы шага сетки:
h  hn , hn
C
 max hk , hn
0 k  N
l2

   hk3
 0 k  N
1/ 2

hk  .

0 k  N

(34)
С учётом (34) можно переписать (33) как
R
1 2 N
2
h  hn  hn / h  un'' 1/ 2  O  h 4 
12 n 1
(35)
Видно, что на равномерной сетке погрешность разлагается в ряд по
чётным степеням h . На квазиравномерной сетке с производящей функцией 
выполняется условие
hn  dx 

, и нетрудно доказать, что ошибка также будет

h  d n 1/ 2
разлагаться в ряд по h 2 .
На пилообразной сетке объединим в пары интервалы  n  1, n и  n, n  1 , и
преобразуем слагаемые в последней сумме следующим образом:
26
2
2
h 
h 
hn  n  un'' 1/ 2  hn 1  n 1  un'' 1/ 2 
h
 h 
h 2  hn2  hn hn 1  hn 1  hnun'' 1/ 2  hn 1un'' 1/ 2 
h 2 hn hn 1  hn  hn 1   un'' 1/ 2  un'' 1/ 2 
h2
Суммируя по парам соседних интервалов и учитывая множитель
12
получим
R  R I  R II
RI 
b
1 2
hn  hn hn 1  hn21   u ''  x  dx  O (h 2 )

a
12
R II  
b
1
hn hn 1  hn 1  hn   u '''  x  dx
a
24
Второе слагаемое на равномерной или квазиравномерной сетке даёт O  h 4  , но на
пилообразной лишь O  h3  . Это и объясняет появление нечётных степеней в
структуре ошибки численного решения по схеме (10). Для схемы (14) можно
показать то же самое.
Двумерные задачи
Интересно рассмотреть возможные пути обобщения предложенного
подхода вывода схем на двумерный случай. Для начала рассмотрим задачу в
простейшей постановке: изотропная теплопроводность в прямоугольной области
на прямоугольной сетке  xn , ym ;0  n  N ,0  m  M  . В каждой точке поверхности
уравнение теплопроводности будет выглядеть следующим образом
C
u w v
u
u

  f, wk , vk
t x y
x
y
(36)
где w, v -компоненты вектора теплового потока по осям x и y соответственно.
Введём обозначения: n1/ 2  xn  xn1 , m1/ 2  ym  ym1 . Тогда схема точности
O  hx2  hy2  запишется следующим образом
27
 n 1/ 2

 wn1,m  wnm  , 1  n  N , 0  m  M ;
unm  un 1,m  2k
n 1/ 2, m


m 1/ 2
 vn,m1  vnm  , 0  n  N , 1  m  M ;
unm  un ,m 1 
2kn ,m 1/ 2

 1
 dun 1,m 1 dun ,m 1 dun 1,m dunm 



 Cn 1/ 2,m 1/ 2 

4
dt
dt
dt
dt



1
  m 1/ 2  wnm  wn , m 1  wn 1, m  wn 1, m 1  
2
1
  n 1/ 2  vnm  vn 1,m  vn ,m 1  vn 1,m 1   f n 1/ 2,m 1/ 2, 1  n  N , 1  m  M .
 2
(37)
Также к этим уравнениям необходимо добавить граничные условия.
Основная сложность заключается в том, что схема записана методом прямых, и
возникает вопрос, как устойчиво разрешить задачу по времени. Этот вопрос мы
в данной работе не разбираем.
Треугольная сетка. Более сложный и интересный случай – это та же задача на
произвольной треугольной сетке, которая позволяет учитывать косые разрывы.
Запишем бикомпактную схему для отдельно взятого треугольника. Обозначим
координаты вершин треугольника через  xi , yi ; i  1, 2,3 . В них зададим значения
температуры ui , а также по две компоненты вектора теплового потока wi , vi .
Введём также необходимые геометрические характеристики ячейки сетки, центр
тяжести x 
x x
y y
x1  x2  x3
y  y2  y3
; y 1
и середины сторон xij  i j ; yij  i j .
3
3
2
2
Площадь треугольной ячейки есть половина длины псевдовектора со сторонами
r2  r1 и r3  r2 .
S
1
1
 x2  x1  y3  y2    x3  x2  y2  y1     x1  y2  y3   x2  y3  y1   x3  y1  y2  
2
2
Второе выражение для площади удобнее с точки зрения записи, так как его вид
симметричен, а слагаемые получаются циклической перестановкой индексов.
Однако первое выражение уменьшает ошибки округления при вычислениях.
Уравнение потока в векторной форме имеет вид w  k grad u  , w  w, v .
Поделив его на коэффициент теплопроводности k  x, t  и интегрируя вдоль
28
каждой из сторон треугольника, получим первую группу разностных уравнений.
Аналогично одномерному случаю интегрируем с точностью O  h 2  :
u j  ui 
1
 w j  wi  x j  xi    v j  vi  y j  yi 

2kij 
(38)
где i, j   1, 2 ,  2,3 , 3,1 . Впрочем, порядок индексов здесь не важен.
Уравнение баланса энергии записывается в интегральной форме как
du
 C dt ds   wdl   fds .
Первый интеграл удобно взять по аналогу формулы
трапеций для двумерного случая, но со средней теплоёмкостью C  C  x , y , t  .
Третий берётся по формуле средних с f  f  x , y , t  . При вычислении второго
интеграла возникают псевдовекторы  w, v  -векторные произведения. Чтобы
разностная схема не зависела от порядка нумерации вершин (по или против
часовой стрелки), удобнее площадь тоже взять как псевдоветор, без модуля:
S
1
 x2  x1  y 3  y1    x3  x1  y2  y1   ,
2
тогда S  0 при нумерации вершин против часовой стрелки и S  0 в противном
случае. Тогда разностное уравнение баланса примет следующий вид:
1
 du du du 
CS  1  2  3  
3  dt
dt
dt 
 w2  w1  y2  y1    w3  w2  y3  y2   

1
 w1  w3  y1  y3    v2  v1  x2  x1     fS
2

 v3  v2  x3  x2    v1  v3  x1  x3 

(39)
На каждую ячейку приходится одно уравнение (39), на каждое ребро – одно
уравнение (38). На каждую граничную вершину треугольников приходится одно
граничное условие. При корректном построении сетки число всех условий будет
3N , где N есть полное число узлов с учётом границ. Приведём примеры
некорректных сеток.
29
На первых трёх сетках нет ни одной внутренней точки. В четвертой они есть, но
на ней всё портит выступ, все три вершины которого граничные. По-видимому,
достаточно того, чтобы из каждой граничной точки исходило хотя бы одно
внутреннее ребро.
Произвольные сетки. Приведём также вывод бикомпактных схем для
двумерных задач на сетках, состоящих из произвольных многоугольников. При
чем не будем требовать даже равенства числа сторон у разных ячеек сетки.
Возьмём
произвольный
P -угольник
и
занумеруем
его
вершины
 x p , y p ,1  p  P  , нумеруя подряд в одном направлении. Введём центр тяжести
и середины сторон
x0 
x p1/ 2 

1 P
1 P
x
,
y

 p 0 P  yp
P p1
p 1



1
1
x p  x p1 , y p1/ 2  y p  y p1 .
2
2
Для единообразия формул будем полагать xP 1  x1 . Тогда легко обобщить
разностные схемы на случай произвольных P -угольников:
u p1  u p 
1

 wp1  wp
2k p1/ 2 
C0 P du p 1 P 
  2s   wp1  wp
P p1 dt
p 1

 x p1  x p    v p1  v p  y p1  y p  , 1  p  P (40)
 y p1  y p    v p1  v p  x p1  x p   f0 .
30
(41)
Площадь многоугольника можно определить так. Возьмём внутри него
любую точку, например,  x0 , y0  , и разобьём его на треугольники. Суммируя их
площади с учётом знака, получим:
s
1 P 
 x p  x0
2 p1 


 
y p1  y0  x p1  x0

1 P
y p  y0    x p y p1  x p1 y p .(42)
 2

p 1


Формула применима даже к невыпуклым многоугольникам, при этом в пределах
одного многоугольника возможно появление треугольников с площадями
разных знаков.
Аналогичные схемы легко записываются и для трёхмерных задач.
Литература
1. Толстых А.И. Компактные разностные схемы и их применение в задачах
аэрогидродинамики. // Наука, 1990, 230 с.
2. Самарский А.А., Теория разностных схем. // Наука, 1989, 616 с.
3. Rosenbrock H.H. Some general implicit processes for the numerical solution of
differential equations. // Comput. J. 1963. V.5. №4. P.329330.
4. Калиткин Н.Н., Кузнецов Н.О., Панченко С.Л. Метод квазиравномерных сеток
в бесконечной области. // ДАН, 2000. – Т.374, № 5. – С. 598-601
5.
Альшина
Е.А.,
Калиткин
Н.Н.
Вычисление
спектров
линейных
дифференциальных операторов. // ДАН, 2001. – Т.380, № 4. – С.443-447.
31
Download