Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разностные схемы

.pdf
Скачиваний:
86
Добавлен:
27.02.2016
Размер:
920.77 Кб
Скачать

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

q(1)n,m = Dx (snk

1,m , snk ,m , snk +1,m , τ,hx ),

 

n=1, …, N-1; m=0,…, M,

 

q(2)n,m = Dy (q(1)n,m1 , q(1)n,m , q(1)n,m+1 , τ,hy ),

(11.83)

n=0, …, N; m=1,…, M-1,

q(3) = D (q(2) , q(2) , q(2) + , τ,h ), n,m y n,m 1 n,m n,m 1 y

n=0, …, N; m=1,…, M-1,

skn+,m2 = Dx (q(3)n1,m , q(3)n,m , q(3)n+1,m , τ,hx ),

n=1, …, N-1; m=0,…, M.

Исходя из известного решения в момент времени tk, вычисления по этой схеме дают решение в момент времени tk+1+2τ, то есть через два шага по времени. Поэтому, в расчёте на один шаг по времени требуется приблизительно такой же объём вычислений, что и для схемы

(11.81).

Если одномерные схемы (11.79) и (11.80) имеют второй порядок аппроксимации по h и τ, то и схемы расщепления (11.82) и (11.83) аппроксимируют уравнения акустики со вторым порядком по h и τ.

Подводя итог нашему обсуждению, можно выделить следующие преимущества схем расщепления:

1)шаг по времени обусловливается устойчивостью одномерных схем и не зависит от размерности задачи,

2)упрощается построение разностной формы граничных условий,

3)упрощается программирование многомерных задач, так как решение одномерных задач (11.79) и (11.80) можно оформить в виде одной процедуры.

11.3.8.Заключительные замечания.

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

71

подходы могут использоваться и для других типов задач, таких как, например, распространение волн в твёрдых телах, распространение электромагнитных волн, теория глубокой воды и волновые модели распространения тепла.

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

1)конечно-разностная аппроксимация волнового уравнения второго порядка,

2)схема Лакса-Вендроффа,

3)методы основанные на характеристической форме волнового уравнения,

4)методы использующие решение задачи о распаде разрыва.

Вкачестве примера мы рассмотрели распространение одномерной волны в однородной среде. В этом случае рассмотренные схемы дают точное решение, когда параметр Куранта равен единице. В реальности мы часто имеем дело с неоднородными или нелинейными средами. Тогда скорость распространения возмущений будет переменной, и вычисления с параметром Куранта близким к единице в каждом узле разностной сетки станет невозможным. Следовательно, качество приближённого решения будет в значительной мере зависеть от того как свойства диссипации и дисперсии той или иной схемы зависят от параметра Куранта. Вот почему мы уделили большое внимание анализу этих свойств и привели зависимости коэффициента диссипации и сеточной групповой скорости от параметра Куранта для всех рассмотренных нами разностных схем.

11.4. Эллиптические уравнения

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

В этой главе мы обсудим некоторые основные идеи, на которых основаны методы решения стационарных уравнений. В качестве примеров мы рассмотрим следующие уравнения:

1) неоднородное уравнение Гельмгольца с переменными коэффициентами

72

3

 

 

 

 

 

 

u

+b (x)u = f (x) , x D,

(11.84)

 

 

 

 

 

 

a (x)

 

 

k=1 xk

xk

 

 

здесь x=(x1,x2,x3)=(x,y,z),

2) нелинейное уравнение вида

3

 

 

 

 

 

 

u

= f (x) , x D.

(11.85)

 

 

 

 

 

 

a (u)

 

 

k=1 xk

xk

 

 

Пусть G есть граница области D, тогда уравнения дополняются граничными условиями

 

u

 

 

 

= g (x).

 

α

 

+ βu

 

 

 

 

 

 

 

 

 

n

 

 

x G

 

 

 

 

11.4.1. Выбор метода.

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

1)видом уравнений, то есть линейностью, размерностью, наличием переменных или постоянных коэффициентов,

2)свойствами области и граничных условий.

Первым возникает вопрос о линейности рассматриваемого уравнения. Если уравнение нелинейно, то его разностную форму можно свести к системе нелинейных уравнений, а затем применить какой-нибудь метод для решения таких систем. Для некоторых уравнений можно также применить метод установления. Для линейных уравнений выбор метода определяется формой области, в которой ищется решение, видом коэффициентов и граничными условиями. Если область определения задачи является прямоугольником или параллелепипедом, а граничные условия имеют специальный вид, то можно использовать методы, основанные на быстром преобразовании Фурье (FFT, Fast Fourier Transform). Рассмотрим, например, двумерную область {0xlx,0yly}. Под специальными граничными

условиями мы будем понимать одно из следующих условий:

 

1)

u(0,y) = u(lx ,y) – периодическое условие,

(11.86)

2)

u(0,y) = g1(y) и u(lx ,y) = g3(y) - условие Дирихле,

(11.87)

3)

u

(0,y) = g

(y) и

u

(l

,y) = g

(y) - условие Неймана,

(11.88)

 

x

1

 

x

x

3

 

 

 

 

 

 

 

 

 

73

 

4)

u(x, 0) = u(x,ly ),

 

 

(11.89)

5) u(x, 0) = g2(x) и u(x,ly ) = g4(x) ,

(11.90)

6)

u (x, 0) = g2(x) и

u

(x,ly ) = g4(x) .

(11.91)

 

y

y

 

 

В случае трёхмерных уравнений специальные граничные условия определяются аналогичным образом.

Если область определения задачи имеет сложную форму, то разностная форма исходного уравнения представляется в виде системы линейных уравнений, и затем применяется тот или иной метод для решения полученной системы.

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

11.4.2. Формулировка разностных уравнений в виде системы сеточных уравнений

Мы начнём наше обсуждение с линейного уравнения (11.1)

прямоугольнике. Тогда задача принимает вид

 

 

 

u

 

 

 

 

 

u

 

 

 

a (x,y)

+

 

a (x,y)

 

+b (x,y)u = f (x,y),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x

y

y

 

D={0xlx,0yly},

заданного в

(11.92)

+ некоторые граничные условия на G.

Введём разностную сетку с узлами xn=nhx и ym=mhy (n=0,…,N; m=0,…,M), где шаги сетки hx =lx /N , hy =ly /M . Полученная сетка показана на рисунке 11.12. Для построения разностной аппроксимации уравнения (11.92) применим подход рассмотренный в пункте 11.2.2. В результате получим следующее разностное уравнение:

 

an+1/2,m

 

un+1,m - un,m

an-1/2,m

un,m - un-1,m

+

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

un,m+1 - un,m

 

x

 

 

un,m - un,m-1

x

 

,

(11.93)

 

 

 

a

 

 

 

 

a

 

 

 

 

+b u

 

= f

 

n,m+1/ 2

h

2

 

 

n,m-1/ 2

 

n,m

 

 

 

 

 

h2

 

n,m

n,m

 

 

 

y

 

 

 

 

y

 

 

 

 

 

an+1/2,m =a (xn + 21 hx ,ym ),

an,m+1/2 = a (xn ,ym + 12 hy ),

bn,m = b (xn ,ym ),

n=1, …, N-1 ; m=1, …, M-1.

74

2hx
u1,m u-1,m

После приведения подобных слагаемых это уравнение примет вид:

c(1) u

+c(2)

u

n-1,m

c(3) u

n,m

+c(2) u

n+1,m

+c(1)

u

n,m+1

= f ,

(11.94)

n,m-1 n,m-1

n-1,m

 

n,m

n,m

n,m

 

n,m

 

n=1, …, N-1 ; m=1, …, M-1.

где

 

 

c(1)

=

 

an,m+1/2

,

 

 

 

 

n,m

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

c(2)

 

=

an +1/2,m

,

 

 

 

 

n,m

 

 

 

h2

 

 

 

 

 

 

 

 

 

x

 

 

 

c(3)

=

an +1/2,m +an-1/ 2,m

+

an,m+1/2 +an,m-1/ 2

b

.

n,m

 

h2

 

 

 

 

h2

n,m

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

y

 

 

Если функция a(x,y) достаточно гладкая, то разностная схема (11.93) аппроксимирует дифференциальное уравнение (11.92) с точностью до членов O((hx)2+(hy)2). В дополнение к разностным уравнениям (11.93), которые справедливы для внутренних точек области, необходимо также записать граничные условия в разностном виде. Рассмотрим, например, аппроксимацию граничных условий при x=0. Разностная форма условия Дирихле u(0,y) = g1(y) имеет простой вид: u0,m =g1(ym ), m=0,…,M. Для условия Неймана

u

x (0,y)=g1(y) ,

как обычно, можно применить метод фиктивных областей, вводя дополнительные узлы с координатами (x-1,ym). Тогда производная в граничных точках аппроксимируется как

=g1(ym ), m=1, …, M-1.

В дополнение, запишем уравнение (11.94) при n=0:

c(1)

u

 

+ c(2)

u

-1,m

c(3) u

0,m

+ c(2) u

 

+ c(1) u

0,m+1

= f

 

 

.

 

 

 

0,m1 0,m -1

1,m

 

 

0,m

 

0,m

1,m

 

0,m

 

0,m

 

 

 

 

Исключая величину

u

 

из этих

двух

 

уравнений

и

 

полагая

c(2)

 

= c(2)

, окончательно

 

 

-1,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,m

 

 

0,m

 

получим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(1)

u

0,m -1

+ 2c(2) u

 

 

c(3) u

0,m

+ c(1) u

0,m+1

= f

0,m

+ 2c(2) h g

(y

m

),

0,m1

 

0,m 1,m

 

 

0,m

 

 

0,m

 

 

 

 

 

0,m

x 1

 

 

 

 

m=1, …, M-1.

Преобразуем сеточные функции un,m и fn,m в вектора v={vp} и d={dp}, соответственно, применяя следующее преобразование:

vp=un,m , dp=fn,m ,

75

p=m(N+1)+n+1,

n=0, …, N ; m=0, …, M.

Тогда разностное уравнение (11.11) и граничные условия можно представить в виде системы линейных уравнений

Fv=d,

(11.95)

где матрица F является блочно-трёхдиагональной:

 

*

*

 

 

 

 

 

 

 

 

B0

C0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

B1

C1

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

.

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Am

Bm

Cm

 

 

 

F =

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

.

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

A

 

B

C

 

 

 

 

 

 

 

 

 

 

 

 

 

M 1

M 1

 

 

 

 

 

 

 

 

M 1

 

 

 

 

 

 

 

*

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AM

BM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В свою очередь Am, Bm и Cm представляют собой квадратные матрицы размером N×N:

 

 

α

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c1,m1

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Am

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N 1,m1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α2,m1

 

 

 

 

 

β

β

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,m

2,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

(3)

(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

c0,m

c1,m

c1,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

.

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

.

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

c

 

c

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

 

(3)

 

(2)

 

 

 

 

 

 

 

 

 

 

 

 

N 2,m

 

N 1,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N 1,m

 

 

 

 

 

 

 

 

 

 

 

 

β

 

 

β

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4,m

 

 

76

 

 

γ

 

 

 

1,m

 

 

 

 

 

 

 

(1)

 

 

 

0

 

 

c1,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

Cm

 

 

 

=

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

0

 

 

cN 1,m

 

 

 

 

. γ2,m

Коэффициенты матриц помеченных звёздочкой определяются граничными условиями при y=0 и y=ly, а коэффициенты α, β и γ в матрицах Am, Bm и Cm определяются граничными условиями при x=0 и x=lx. Например, если во всех точках границы задано условие Дирихле, то

B*0 = B*M = I , (I - единичная матрица),

C*0 = A*M = O , (O - нулевая матрица),

α1,m1 = α2,m1 = 0 , β1,m = β4,m = 1, β2,m = β3,m = 0 , γ1,m = γ2,m = 0 .

m=0, …, M.

Таким образом, матрица F представляет собой ленточную пятидиагональную матрицу и ширина ленты равна 2N+1. Наиболее универсальным методом для решения системы (11.95) является метод LU-разложения (смотри п. 3.6.1). Он применим для различных граничных условий и произвольных коэффициентов a(x,y) и b(x,y). Однако объём вычислений в этом методе сильно возрастает с увеличением числа сеточных узлов. Так в двумерном случае число операций Nops~(Ns)3/2, где Ns=N M – число сеточных узлов. Поэтому метод LUразложения обычно применяется для малых систем с Ns~1000. Если коэффициенты уравнения остаются неизменными для большого количества правых частей, то требуется только одно разложение и этот метод будет вполне приемлем для решения систем из нескольких тысяч уравнений.

Если коэффициенты уравнения меняются для каждой правой части или количество сеточных узлов превосходит 10000, то используются итерационные методы решения систем

77

уравнений. Одним из популярных методов является метод последовательной верхней релаксации (SOR) (смотри п. 3.7.4). Можно непосредственно применить метод SOR к системе (11.12), но лучше использовать эквивалентную форму, основанную на сеточных уравнениях (11.11). Пусть на границе задано граничное условие Дирихле. Тогда итерационная схема SOR для сеточных уравнений (11.11) может быть записана в следующем

виде:

u0,(km+1) = g1(ym ) , uN(k,+m1) = g3(ym ) ,

m=0, …, M,

un(k,0+1) = g2(xn ), un(k,M+1) = g4(xn ),

n=0, …, N,

 

 

 

un(k,m+1) = (1 ω)un(k,m)

 

 

 

, ,

 

ω

c(1)

u(k+1)

+ c(2)

u(k+1)

+ c(2)

u(k )

+ c(1)

u(k )

f

(11.96)

 

( n,m1 n,m1

n1,m

n1,m

n,m

n+1,m

n,m

n,m+1

n,m )

 

 

c(3)

 

 

n,m

 

 

 

 

 

 

 

 

 

 

 

n=1, …, N-1 ; m=1, …, M-1 ; k=0, 1, … .

Итерации начинаются с некоторого начального решения u(0) и продолжаются до тех пор, пока не выполнится условие

 

u(k+1) u(k )

2

ε,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u(k+1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

где ε - заданная точность. Напомним, что сходимость итерационного процесса определяется максимальным по модулю собственным значением (спектральным радиусом) итерационной матрицы

 

s(B) = max

λp (B)

.

 

При этом относительная ошибка

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u u(k )

 

 

 

 

2

~ sk (B) ,

(11.97)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u u(0)

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где u* обозначает точное решение системы уравнений. Отсюда следует, что для сходимости необходимо s(B)<1. Чем меньше значение s(B), тем быстрее сходимость и, следовательно, требуется меньше итераций, чтобы вычислить приближённое решение с заданной точностью. В методе SOR, s(B) зависит от параметра ω, который называется параметром релаксации. Если метод сходится, то существует такое значение ω=ωopt, при котором s(ω)

78

имеет минимум. В нашем случае мы решаем систему с матрицей F. Если она симметричная и положительно определённая, то для матриц такого типа

ωopt =

 

 

2

 

,

 

+

1 s2

 

1

(BJ )

где BJ=I-D-1F – матрица Якоби матрицы

F и

D есть диагональ матрицы F. Тогда

s(BSOR ) = ωopt 1. Рассмотрим свойства метода SOR на примере модельной задачи (11.92) с a(x,y)=const, b(x,y)=0 в квадрате {0x1,0y1} и граничными условиями u(0,y)=u(1,y)=0, u(x,0)=u(x,1)=0. В этом случае

s(BJ ) = cos(πN ).

Тогда параметр релаксации в схеме (11.13) задаётся как

ωk = ωopt =

2

 

1 + sin(πN )

 

 

 

и спектральный радиус –

 

 

 

 

s(BSOR ) =

1

sin(πN )

 

 

 

.

1

+ sin(πN )

Это выражение показывает, что при увеличении N сходимость метода замедляется, так как s(BSOR) приближается к единице. Оценим число итераций k, необходимое для уменьшения ошибки начального приближения в 10p раз. Из соотношения (11.97) получим

 

 

 

 

 

 

 

 

1

sin

π

 

k

 

p

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

N )

10 = s

 

(BSOR ) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ sin(

π

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

N )

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p ln(10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(1

sin(πN ))ln(1 + sin(πN ))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При больших значениях N, когда π/N

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p ln(10)

 

 

p

 

 

 

 

 

k

=

 

 

N

 

N

.

 

 

 

 

 

 

 

 

 

 

2π

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, если требуется точность 10-3 (p=3), то число итераций приближённо равно количеству сеточных узлов в каждом направлении. Для достижения точности 10-6 необходимо удвоить это число итераций. Из соотношения (11.96) следует, что для

выполнения одного шага итерационного процесса требуется 11Ns операций. Тогда общее

79

количество операций будет ~11(Ns)3/2 для двумерных задач и ~11(Ns)4/3 для трёхмерных задач.

Применять метод SOR для решения задач подобных рассмотренной нами модельной задачи не имеет смысла, так как для такого сорта задач существуют более эффективные методы. Итерационные методы обычно применяются для решения уравнений с переменными коэффициентами в областях сложной формы. Однако в этом случае получить аналитические выражение для спектрального радиуса матрицы Якоби невозможно. Тогда спектральный радиус матрицы Якоби можно вычислить, используя, например, степенной метод.

Метод SOR можно применять только для решения определённого типа задач, для которых известно, что метод сходится и можно определить оптимальное значение параметра релаксации. Таким типом, например, являются уравнения вида (11.84) с граничными условиями Дирихле при b(x)0. При b(x)>0 матрица F перестаёт быть положительно определённой.

В случае нелинейных задач разностная аппроксимация приводит к системе нелинейных уравнений. Рассмотрим, например, построение такой системы для уравнения (11.84) с граничными условиями Дирихле. Для построения разностной схемы используем соотношение для аппроксимации (a(u)u/x)/x, которое мы применили при выводе

схемы (11.34). В результате получим

u0,m = g1(ym ) , uN ,m = g3(ym ) , m=0, …, M,

un,0 = g2(xn ) , un,M = g4(xn ) , n=0, …, N,

a

n+1/ 2,m

 

un+1,m un,m

a

n1/2,m

 

un,m un1,m

+

 

 

h2

 

 

 

h2

 

 

 

 

 

 

x

 

 

 

 

 

x

 

(11.98)

 

 

un,m+1 un,m

 

 

 

un,m un,m1

 

an,m+1/ 2

an,m1/2

= f (xn ,ym ),

 

h2

 

h2

 

 

 

 

y

 

 

 

 

 

y

 

 

n=1, …, N-1 ; m=1, …, M-1,

здесь

 

(

 

 

 

 

) .

an+1/2,m = a

 

1

 

(un+1,m

+ un,m ) ,

 

2

 

an,m+1/2 = a

(

 

 

(un,m+1

)

21

 

 

+ un,m )

После несложных преобразований приведём схему к виду

80