Қазақстан Республикасының Министерство Білім және ғылым образования и науки

advertisement
Қазақстан Республикасының
Білім және ғылым
министрлігі
Министерство
образования и науки
Республики Казахстан
Д. Серікбаев атындағы
ШҚМТУ
ВКГТУ
им. Д. Серикбаева
УТВЕРЖДАЮ
декан ФИТЭ
_________Мухамедиев Г.Х.
«___» _____________ 2014 г.
НАУЧНЫЙ СЕМИНАР
ТЕОРИЯ РАЗНОСТНЫХ СХЕМ
Специальность: 6D060100 – «Математика»
Өскемен,
Усть-Каменогорск
2014
3
СОДЕРЖАНИЕ
1. Метод разделения переменных
2. Итерационные методы решения сеточных уравнений
3. Попеременно-треугольный метод
4. Попеременно-треугольный метод для разностной задачи Дирихле.
5. Выбор параметров попеременно-треугольного метода для разностной задачи
Дирихле.
6. Экономичные разностные схемы
7. Разностные схемы для уравнений с переменными коэффициентами
8. Разностные схемы для нелинейных уравнений
4
7
9
11
13
15
16
19
4
1. Метод разделения переменных
Система разностных уравнений для задачи Дирихле из:
y  y x1x  y x 2 x   f x , x   h ,
1
2
y  , x   n
(1)
имеет матрицу высокого порядка N1  1N 2  1 . Обычно берут N1 , N 2 ~ 50  100 , так
что число уравнений в системе (1) равно 10 3  10 4 . Решение систем столь высокого
порядка методом Гаусса потребовало бы числа действий порядка  1  13  2  13 , т.е.
10 9  1012 действий, если бы у системы (1) не было одного хорошего качества:
матрица системы является слабо заполненной и имеет лишь ~ 51  2 отличных от
нуля элементов. Поэтому для решения системы разностных уравнений удается
построить методы, требующие O ln  и даже O  действий, где   1  1 2  1 .
Опишем один из прямых методов решения разностной задачи Дирихле уравнения
Пуассона в прямоугольнике.
Перепишем задачу (1) в виде



 y  y x1ч1  y x 2 x25   x ,
x  h ,

y  h  0,
(2)

где yx   yx  при x   h , а  x  определяется по формулам (14).
Ее решение можно найти методом разделения переменных. Пусть
2 
 R x2 , R2  k  1, 2, ,  2  1 – собственные функции и собственные значения
задачи
2
2
 2    0,
 0   l 2   0.
x  h ;
(3)
Выражения для R2  и  R2 x2  даны
2
2

Разложим решение yx1 , x2  и правую часть  x1 , x2  по собственным функциям
 R2 :
2

y  x1 , x 2  
 x1 , x 2  
 2 1
 c x  x ,
R2 1
R2
1
R2
2
(4)
 2 1
  x  x ,
R2 1
R2
где x  i h ,
например,
1
R2
2
(5)
i  1, 2, ,    1,   1, 2, c R2 x1  и  R2  x1  – коэффициенты Фурье,
5
 R  x1  
N 2 1
2
 h  x , i h  i h .
i2 1
2
1
2
2
R2
2
2
Применим оператор   1   2 к произведению c R  R :
2
c R2 x1  R2 x 2    R2 x 2  1c R2 x1   c R2 x1  2 R2  x 2  

  R2  x 2  1c R2 x1   R22 c R2 x1  R2 x 2    1c R2 x1   
2 
R2
2

c R2  x1   R2  x 2 .
Подставляя затем это выражение в (2) и учитывая (5), получим
 2 1
  c x      c x    x  x   0.
R2 1
1 R2
2
R2
1
R2
1
R2
1
R2
(6)
2
В силу ортогональности  R x 2  это тождество возможно только при равенстве
нулю выражения в фигурных скобках:
2
1cR2 x1    R22cR2 x1    R2 x1 ,
x1  i1 h1 ,
0  i1   1 ,
k 2  1, 2, ,  2  1,
c R2 i1 h1   0,
i1  0,  1 .
(7)
В самом деле, умножая (6) скалярно на  R  x 2  , имеем
2
0   
R  R , R
2
     
R
RR2
   R  RR2   R2  0,
где  R – содержимое фигурной скобки (6).
Задачи (7) решаются методом прогонки; всего требуется  2 – 1 раз использовать
алгоритм прогонки для k 2  1, 2, ,  2  1. Зная c R x1  , найдем по формуле (4) решение
задачи (2). Для этого надо сначала вычислить коэффициенты Фурье
 R x1 k 2  1,2, ,  2  1 . Из формул (4) и (5) видно, что yx1 , x2  и  R  x1  вычисляются
по формулам одного и того же вида:
2
2
2
2
 1
wi    R sin
R 1
ki

(8)
Разработан специальный алгоритм быстрого преобразования Фурье для
вычисления сумм, который позволяет вычислить сумму (8) за 5 log 2 
арифметических действий (при   2 n , n – целое число) вместо при обычном
способе суммирования. Этот алгоритм позволяет найти решение исходной задачи
(2) за O1 2 log 2  2  действий. Метод разделения переменных можно
6
комбинировать с методом редукции или декомпозиции, являющимся
модификацией метода Гаусса. В результате получим алгоритм с числом действий
Q  51  2 log 2  2 , что в два раза меньше, чем для алгоритма разделения,
приведенного выше.
7
2. Итерационные методы решения сеточных уравнений
Для решения разностной задачи Дирихле для уравнения Пуассона в
прямоугольнике наиболее экономичными являются прямые методы. В настоящее
время имеются стандартные программы на алгоритмических языках фортран и
алгол для решения уравнений Пуассона в прямоугольнике с краевыми условиями
трех типов, а также со смешанными краевыми условиями. Однако в случае, когда
область не является прямоугольником или рассматриваются уравнения с
переменными коэффициентами, применяются итерационные методы. Фактически
прямые методы экономичны лишь в случае, когда переменные разделяются.
В гл. III рассматривалась теория итерационных методов для уравнения
y   ,
где    *  0 . Сравнение различных методов проводилось для модельной
одномерной задачи на отрезке
0  x  1:
y xx   f x , x  ih, 0  i  , y 0  y   0.

Для нее оператор  имеет вид y   y xx . . Границы оператора определяются
постоянными

4
h
sin 2
,
2
2
h

4
h
cos 2 .
2
2
h
Число итераций для рассмотренных. В гл. III методов зависит от отношения



 tg 2
h
2

 2h2
4
(9)
.
Рассмотрим теперь в качестве модельной двумерную задачу Дирихле в
единичном квадрате l1  l2  1 на квадратной сетке с шагом h  h1  h2 :


y   y x1x1  y x 2 x2   ,
 , y  .
(10)
Число интервалов по каждому из направлений равно  , так что h  1/ .
Границы  и  оператора  найдены в, отношение    /  совпадает с (9).
Отсюда следует, что число итераций не зависит от числа измерений (если
h1  h2
l1  l 2 , то слабо зависит). Поэтому те оценки числа итераций различных
итерационных методов, которые мы получили для одномерной модельной задачи,
справедливы и для двумерного случая.
8
В случае неквадратной сетки число итераций для двумерной задачи может
несколько отличаться от числа итераций для одномерной задачи.
Мы рассмотрим здесь лишь попеременно-треугольный итерационный метод для
решения разностной задачи Дирихле (10).
9
3. Попеременно-треугольный метод
Для решения операторного уравнения
u  f ,
  *  0,
 :   ,
(11)
в гл. III рассматривались двухслойные одношаговые итерационные методы,
которые записывались в следующей канонической форме:

y R 1  y R
 R 1
 y R  f ,
k  0, 1,, n,
для всех y0  , (12)
где B :   ,
  *  0. Для  и  выполнены условия
 1     2 ,
 1  0,
где  1 ,  2 – постоянные.
(13)
Минимальное число итераций min n   при заданных  1 ,  2 достигается при
 R 
выборе чебышевских параметров
R 
0
,
1   0 R
0 
2
,
1   2
0 
1 
,
1 

1
,
2
k  1, 2, , n,
(14)
где  R принадлежит некоторому специально упорядоченному множеству нулей
полинома Чебышева; при таком упорядочении метод (12) является вычислительно
устойчивым.
Для определения k  1-й итерации имеем уравнение
FR  y R   R1 y R  f .
y R1  FR ,
Число действий при вычислении y R 1 зависит от  . Выбирая
  D  A1 D 1 D  A2 ,
(15)
где A1 и A2 – операторы с треугольными матрицами A1*  A2 ,
A1  A2  A, а
D  D*  0 – произвольный оператор, получаем попеременно-треугольный метод.
Обычно D  d i i  – диагональная матрица. В главе III дана теория этого метода и
найдены постоянные  1 ,  2 и  при заданных условиях
12
A  D,
A1 D 1 A2 

A,
4
  0,
    0,
(16)
10
которые можно записать в эквивалентном виде:
D
 Ay, y    Dy , y ,
1

A2 y, A2 y 

 Ay, y .
4
В этом случае имеем

2

,

2 
1 
,



,
(17)
а для числа итераций верна оценка
n   n0   
1
2
ln .
2 24  3
(18)
11
4. Попеременно-треугольный метод для разностной задачи Дирихле.
Обратимся к задаче (10). Оператор A представим в виде суммы A  A1  A2 , где
A1 y 
y x1
h1

y x2
h2
A2 y  
,
y x1
h1

y x2
h2
,
и положим D  E . Сопряженность A1 и A2 : A2  A1* устанавливается сравнением их
матриц или с помощью первой разностной формулы Грина:
 A1 y,    y, A1*    y, A2 .
Для определения получаем уравнение
y R1     A1 E   A2 y R1  FR ,

FR  B y R   R 1 y R   
( yR  ,

y R  0 при x   h  .
Значения y R 1 находятся последовательно из уравнения
 1
E  A1  y R

 1
E  A2  y R1  y R
 FR ,
.
Отсюда получаем формулы
 1
  1

1 y R i1  1, i2    2 y R i1 , i2  1  FR i1 , i2 

y R i1 , i2  
,


1  1   2 


 1
1 

2
1
h
,
2 

h22
,

 1
 

1 y R 1 i1  1, i2    2 y R 1 i1 , i2  1  y R i1 , i2 

y R 1 i1 , i2  
.


1  1   2 



Чтобы определить
тогда
остальные
i1 ,

y
1
i2 ,
i1  1,
i1  1,

i2   y
1
i2 ,
(19)
 1
y R i1 , i2  , выбираем узел i1  1, i2  1 в левом прямоугольника;
два
узла
i1 , i2  1
i1  1,
лежат
i1 , i2  1  0 известны. Зная
i2 
на
 1
и
границе
i1 ,
и,
i2  1
шаблона
следовательно,
y R при i1  1, i2  1, последовательно
12
 1
находим y R при i1  2, 3, , 1  1 и i2  1 (на первой строке). Далее, полагаем i2  2
 1
и находим последовательно y R на второй строке при
i1  1, 2, , N  1. Для

определения
проводим
вычисления
на
шаблоне
i1 , i2 , i1  1, i2 , i1 , i2  1 по столбцам сверху вниз: фиксируем
i1  N1  1, N1  2, ,2, 1, и при каждом i1 меняем i2  N 2  1, N 2  2, ,2, 1. Начинаем
y R 1

счет y R 1 с узла i1  N1  1, i2  N 2  1 в верхнем правом углу. Следует отметить, что
счет

можно
также вести по строкам справа налево: фиксируем
i2  N 2  1, N 2  2, ,2, 1 и при каждом i 2 меняем i1  N1  1, N1  2, ,2, 1. Впрочем,
y R 1
 1
вычисление y R можно вести не по строкам, а по столбцам снизу вверх. Это видно
из самих формул.
Вычисления ведутся по рекуррентным формулам (19); счет, очевидно, устойчив.
Алгоритм подобного типа, как уже отмечалось, называют алгоритмом бегущего
счета.
Подсчитаем число арифметических действий на один узел сетки: вычисление FR
требует 10 операций сложения и 10 операций умножения; вычисление y R 1 при
заданном FR требует 4 операции сложения и 6 операций умножения.
Итого требуется для определения y R 1 в одном узле провести 14 операций
сложения и 16 операций умножения. Число действий можно уменьшить, если
хранить в оперативной памяти не одну, а две последовательности y R  и wR1  и для
определения y R 1 пользоваться алгоритмом

   A1  w R1 2  y R  f ,


   A2  w R1  w R1 2 ,

y R 1  y R   R 1 w R 1.
В этом случае для перехода от y R к y R 1 достаточно 10 операций сложений и 10
операций умножения на один узел.
13
5. Выбор параметров попеременно-треугольного метода для
разностной задачи Дирихле.
Чтобы воспользоваться общей теорией гл. III надо найти постоянные  и  ,
входящие в условие (16). В нашем случае A  A1  A2   , где  -наименьшее
собственное значение оператора A , равное
 1
h
h 
1
  4 2 sin 2 1  2 sin 2 2 .
2l1 h2
2l 2 
 h1
(20)
Рассмотрим оператор A1 D 1 A2  A1 A2 . Учитывая, что
a1b1  a 2 b2 2  a12  a 22 b12  b22 ,
A1*  A2 ,
Находим
 A1 A2 y,
y    A2 y, A2 y  
2
 1
   1
1
1 

  y x1 
y x2  , 1   2  2  y x1
  h1
h2
   h1 h2 

   y  , 1 
 1
1  N1 1
 2  2  
 h1 h2  i1 1
2
2
x2
 y   y  
 1
1 
h1 h2   2  2   Ay, y ,
 h1 h2 
N1 1
N 2 1
N 2 1
i2 1
2
2
x1
x2
i1i2
так как
N 2 1
 Ay, y    h2  y x i2i
i2 1
i1  0
1
12
h1 
N1 1
 
 h1  y x2
i1 1
i2  0
2
i1i2
h2 .
Сравнивая неравенства
 1

1 
  Ay, y  и A1 A2  A,

2
2 
4
 h1 h2 
 A1 A2 y, y   
заключаем, что
 1
1 
  4 2  2 .
 h1 h2 
(21)
Зная  и  , находим     и по формулам находим параметры  1 ,  2 ,  , после
чего оцениваем число итераций по формуле
14
n   ln
2

ln
1
1
,
1 
1 
1 
.
Пользуясь n  , выбираем устойчивый набор чебышевских параметров  R ,  R1 и
  2  .
Приведем результат сравнения методов решения по числу итераций n0   : метода
простой итерации n01  , явной схемы с чебышевским набором n02    и
попеременно-треугольного метода n03   для двумерной модельной задачи (10),
пользуясь приближенными формулами
n01    2 h 2 ,
h
1 10
1 50
1 100
n02     3.2 h,
n0(1) ( )
200
5000
20 000
n03    2.9
h при   10 4 (табл. 2).
n0( 2 ) ( )
32
160
320
n0( 3) ( )
9
21
29
15
6. Экономичные разностные схемы
Схема предиктор – корректор.
В этом случае переход со слоя n на слой n  1 осуществляется в два этапа.
На первом этапе решается неявная линейная система уравнений
 y j  12  y n
h 1
i
 i
  a yin y x 2   f ( yin ),
i  1, N  1,

 x ,i
 0.5
 n 1 2
n 1
 y0  1 (t n  0.5 ),
y N 2   2 (t n  0.5 ).
 
n 1
Здесь находятся промежуточные значения yi
2
, i  0, N .
На втором этапе используем симметричную шеститочечную схему, в которой
n 1
нелинейные коэффициенты a( y ), f ( y ) вычисляются при y  yi
yin1  yin

1


1    n 
n 1
n 1
   a yi 2  y xn1    a yi 2  y xn    f  yi 2 ,

  x ,i 


2   

 x ,i  


y0n1   2 t n1 ,
y Nn1   2 t n1 .
i  1, n  1,
2
:
16
7. Разностные схемы для уравнений с переменными коэффициентами
Рассмотрим
первую краевую задачу для уравнения теплопроводности с
переменными коэффициентами:

u  
u 
 x, t    k x, t    f x, t ,
t x 
x 

u x, 0  u x ,
u 0, t   1 t ,
0

0  x  1,
0  t  T,
u 1, t    2 (t ).
(1)
 x, t , k x, t , f x, t  достаточно гладкие функции, удовлетворяющие условиям
0  c1  k x, t   c2 ,
 x, t   c3  0
(2)
В начале аппроксимируем оператор
Lu 
d 
du 
 k x   .
dx 
dx 
Заменим её разностным соотношением
Lhu  au x x ,i 
u u
u  ui 1 
1
 ai 1  i 1 i  ai i
,
h
h
h 
(3)
a(x) – функция определена на сетке  h .
Найдем условие, которым должна удовлетворять функция a(x), чтобы отношение
au x x,i аппроксимировал (ku ) в точке xi со вторым порядком.
Используем разложением:
 
h
h2
u x ,i  ui  ui  ui о h3 ,
2
6
 
h
h2
u x ,i  ui  ui  ui о h3 .
2
6
Подставляя их в (3), получим
Lhu 
ai1  ai
a a
h ai 1  ai 
ui  i 1 i ui 
ui o h 2 ,
h
2
6
 
учитывая, что
Lu  (ku)  ku  k u, определим разность
17
hai 1  ai 
a a

a a

Lhu  L u  xi    i1 i  ki  ui   i 1 i  ki  ui 
ui oh 2 ,
6
 h

 2

отсюда видно, что Lhu  Lu xi   0h 2 , если
ai1  ai
 k  xi   о h 2 ,
h
 
(4)
ai1  ai
 ki  о h 2 .
2
 
Условиям (4), удовлетворяют, например функции
ai  0.5 k xi   k xi 1 ,

ai  k xi  0.5h ,

ai  k xi  k xi 1  .
(5)
Учитывая аппроксимацию дифференциальное выражение
Lu 
 
u 
 k  x, t   при каждом фиксированном t , аппроксимируем следующим
x 
x 
образом:
t  yi  a xi , t  y x x ,t 
y  yi
y  yi 1 
1
axi1 , t  t 1
 a xi , t  i
.

h
h
h 
Здесь условие (4) примет вид:
 
axi1 , t   a xi , t   2k xi , t   о h 2 ,
a xi1 , t   a xi , t 
 k  xi , t   о h 2 .
h
 
Условие (5) имеет вид:
axi , t   0.5k xi , t   k xi1 , t ,
h 

a xi , t   k  xi  , t ,
2 

2k  xi 1 , t k  xi , t 
a xi , t  
.
k  xi 1 , t   k  xi , t 
Разностная схема с весами имеет вид
(6)
18

yin 1  yin



x
,
t
 t   yin1  1    yin  f xi , t ,
 i


 y n   t ,
y Nn   2 t n ,
yi0  u 0 xi .
1 n
 0


i  1, 2, , N  1,
(7)
При исследовании устойчивости разностных схем с переменными
коэффициентами применяют принцип замороженных коэффициентов.
Рассмотрим явную схему, соответствующую уравнению (7), т.е.   0, f x, t   0.
 xi , t 
y in1 yin


 a xi , t  y nx

x ,i
(8)
.
Предположим, что  xi , t     const ,
yin1  yin


axi , t   a  const , тогда (8) примет вид
 a y x x ,i ,
(9)
или
y in1 y in
 y x x ,i ,

 
a

(9/)
Известно, что (9/) устойчиво, если
   0.5 h 2 , т.е.
 a h2

 2
(10)
Принцип замороженных коэффициентов утверждают, что схема (8) устойчива, если
условие (10) выполнено при всех x, t , т.е.
 axi , t  h 2

 xi , t  2
Если известно, что
0  c1  axi , t   c2 ,  xi , t   c3  0,
то неравенство (7) будет выполнено.

h
2

c3
- условие условной устойчивости.
2c 2
(10)
19
8. Разностные схемы для нелинейных уравнений
Рассмотрим краевую задачу для нелинейного уравнения теплопроводности:
u  
u 
  k u    f u 
t x 
x 
(1)
Когда изменение функции k (u )
- неизвестно, то явные схемы применять
нецелесообразно.
А) Чисто неявная схема имеет вид:
yin1  yin

y n1  yin1
y n1  yin11 
1
  f yin ,
  ai1 i1
 ai i
h
h
h

i  1, N  1,
 

(2)

ai  0.5 k ( yin )  k ( yin1 ) .
Схема абсолютно устойчива, и порядок аппроксимации о  h 2 .
Решается методом прогонки.
Б) Нелинейная схема имеет вид.
n 1
n 1
n 1
 yin1  yin 1 
 yin11 
n 1 yi 1  yi
n 1 yi
  f yin1 ,
  a yi1
 a yi

h
h
h
 


n 1
n 1
 n1 k yi  k yi1
.
a yi 
2
 
 
 
     
(3)
в) Для реализации этой схемы применим итерационный метод, например:
 y i( s 1)  y in 1 
y ( s 1)  y i( s 1)
y ( s 1)  y i(s11) 
 f y i( s ) ,
  a yis1 i 1
 ai ( y i( s ) ) i


h
h
h




(0)
n
(M )
n 1
yi  yi ,
yi  yi .
s  0, 1,, M  1,
 
s – номер итерации.
 
(4)
20
Здесь нелинейные коэффициенты берутся с предыдущей итерации, а начальное
приближение yi( 0)  yin число итерации задается из соображения точности.
В случае гладких коэффициентов k (u)  c1  0 , достаточны 2-3 итерации.
Значение
yi( s 1) находятся методом прогонки.
Заметим, что при M  1 , схема (4) совпадает со схемой (3).
21
СПИСОК ЛИТЕРАТУРЫ
1. Марчук Г.И. Методы вычислительной математики.- М.:Наука,1989
2. Самарский А.А., Гулин А.В. Численные методы. -М.: Наука, 1989
3. Демидович Б.П., Марон И.А., Шувалова Э.З. Численные методы анализа.М.:Изд-во физ.-мат. лит-ры, 1962
4. Крикунов Ю.М. Лекции по уравнениям математической физики и
интегральным уравнениям./ Изд-во Казанского университета, 1970
5. Тихонов А. Н. Уравнения математической физики./ А. Н. Тихонов, А. А.
Самарский. Гостехиздат,1953
6. Самарский А.А. Введение в численные методы: Учебное пособие М.:
Наука,1982г.271с.
7. Тихонов А.Н., Костомаров Д.П. Вводные лекции по прикладной
математике: Учебное пособие. М.: Наука,1984г.190с.
8. Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач: Учебное
пособие. М.:Наука,1979г.285с.
9. Кошляков Н.С. Основные дифференциальные уравнения математической
физики./ Н.С. Кошляков, Э.Б. Глинер, М.М. Смирнов, Физматгиз, 1962.
10. Смирнов М.М. Дифференциальные уравнения в частых производных
второго порядка, Наука, 1964.
Download