Скачиваний:
172
Добавлен:
15.06.2014
Размер:
672.39 Кб
Скачать

5. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ

5.1. Одномерное нестационарное уравнение теплопроводности

u

 

 

u

 

 

 

u(x,0) = u0 (x).

 

=

g

 

+ f ;

u(a,t) =α; u(b,t) = β;

(5. 1)

t

 

 

 

x

x

 

Ω ={0 x b, 0 t T}

 

 

Область интегрирования

покрываем равномерной

сеткой ωh,τ

={(i 1)h, kτ, i =1... n1, k = 0... K}, τ - шаг по времени; h - шаг по x ;

k– номер временного слоя; i – номер точки. Для нахождения таблицы решения

u

h ={

uik u(xitk )} используем интегроинтерполяционный способ с разбиением

Ω на подобласти Ωk ={x

x x

, kτ t (k +1)τ}. Построим следующую

 

 

i

i1/ 2

i+1/ 2

 

неявную конечно-разностную схему Кранка-Николсона, безусловно устойчи-

вую и имеющую погрешность аппроксимации второго порядка o τ2

+ h2

)

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

 

 

uik+1

uik

 

=ω

L

 

k+1 + (1ω

)L

 

k +

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

u

f

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

τ

 

 

 

 

 

 

r

 

x

i

 

 

 

 

r

 

x

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= ωr

g

 

 

u

k+1 (g

 

 

+ g

 

 

)

u

k+1

+ g

 

 

u

k+1

+

 

 

 

 

 

 

(5.2)

 

 

 

 

h2

 

i1/ 2 i1

 

 

i1/ 2

 

 

i+1/ 2

 

 

 

i

 

 

 

 

i

+1/ 2

i+1

 

 

 

 

 

 

 

 

 

+

1ωr

g

 

 

k

(g

 

 

+ g

 

 

 

)

 

k

+ g

 

 

 

k

+

 

; ω

 

= 0,5.

 

 

 

u

 

 

 

 

 

u

 

 

u

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

i1/ 2

i1

 

 

 

i1/ 2

 

 

i+1/ 2

 

 

 

i

 

 

 

 

i

+1/ 2

i+1

 

 

i

 

r

 

 

 

 

Каждое уравнение (4.2) связывает между собой значения искомого решения в шести узлах сетки (шеститочечный шаблон), три из которых берутся на нижнем k-м слое, три на соответствующих местах верхнего k+1 - го слоя.

Решение (4.2) находится следующим образом. Воспользуемся начальным

условием (4.1) зададим все значения uh на нулевом слое при k = 0

u

0

= u0 (x ).

 

i

 

i

Используя (4.2), для нахождения таблицы решения на следующем k +1

слое

решаем методом прогонки систему с трехдиагональной матрицей при следующих коэффициентах:

a uk+1

+ b uk+1

+ c uk+1

= d

,

 

uk+1 =α,

uk+1

= β;

 

 

i = 2... n.

i i1

 

i i

 

i i+1

 

i

 

 

1

n1

 

 

 

 

 

 

 

ai =

ωrτ

gi1/ 2

; ci =

ωrτ

gi+1/ 2

; bi = −ai

ci 1; ai =

(1 ωr )τ

gi1/ 2 ;

 

 

h2

 

 

 

h2

 

 

 

 

 

 

%

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

%

=

(1 ωr )τ

 

 

%

 

 

%

 

%

%

k

%

k

%

k

 

 

 

 

 

 

 

 

 

 

 

 

ci

 

h

2

gi+1/ 2 ; bi = −ai

ci +1; di = − aiui1

+ biui

+ ciui+1

τ fi .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В результате все значения на 1-м слое будут найдены. После этого переходим к вычислению значений на втором слое и т.д. до слоя K.

Заметим, что изменяя весовой параметр ωr , регулирующий распределение разностного оператора Lxuh , между соседними слоями k и k +1 можно изменять свойства конечно-разностной схемы. Так, при ωr = 0 , когда разностный оператор привязан к нижнему слою, получим явную ( aik+1 = cik+1 = 0, bik+1 =1)

49

схему: для получения значений uik+1 нет необходимости решать систему уравнений типа (4.6). Такая явная схема имеет погрешность аппроксимации o(τ1 + h2 ) и условно устойчива, т.е. ее можно использовать лишь при τ < h2 / 4 . Другой предельный случай ωr =1 соответствует чисто неявной схеме, когда

Lxuh привязан к верхнему слою ( di = uik ). Этот вариант схемы также имеет первый порядок аппроксимации по времени, т.е. o(τ1 + h2 ) , однако, она безусловна устойчива (при любых τ ) и константа устойчивости C0 значительно

меньше, чем у схемы Кранка-Николсона. Поэтому чисто неявную схему используют или при расчетах быстро изменяющихся во времени процессов, или при нахождении стационарных режимов методом установления. В последнем случае сам процесс установления не важен для приложений и для ускорения сходимости ωr и τ выбирают эмпирически в широких пределах 0 <ωr 2 , до-

биваясь установления процесса за минимальное количество шагов по времени.

5.2. Задача Дирихле для двухмерного уравнения Пуассона

 

g(x, y,u) u

+

g(x, y,u)

u

= f .

 

 

 

 

 

x

x

 

y

 

 

 

y

Область интегрирования Ω ={0 x a, 0 y b}.

На границе Г :

u(0, y) =α0 ( y);

u(a, y) =α1( y);

 

 

 

u(x,0) = β0 (x);

u(x,b) = β0 (x).

Выбираем равномерную

сетку ω

h h

y

={(i 1)hx , ( j 1)hy , i =

 

 

 

 

 

 

 

x

 

 

 

(5.3)

1...n1, j =1...m1}.

При нахождении таблицы

u

h

=

{

u

ij

u(x , y )

 

 

разбиваем область Ω на подобла-

 

 

 

 

 

 

 

 

 

 

 

 

i i

}

 

 

 

 

 

 

 

 

 

 

 

 

сти Ωij ={xi1/ 2 x xi+1/ 2 , yi1/ 2 y yi+1/ 2}

 

и построим следующую конечно-

разностную схему:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

gi1/ 2, j

ui1, j (gi1/ 2, j + gi+1/ 2, j )

ui, j + gi+1/ 2, j

ui+1, j

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

gi, j1/ 2

ui, j1

(gi, j1/ 2 + gi, j+1/ 2

)

ui, j

+ gi, j+1/ 2

ui, j+1

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hy2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= Lx

 

 

 

=

 

 

, j ;

 

 

 

 

i = 2... n1, j = 2... m1.

 

 

ui, j + Ly

ui, j

 

fi

 

 

 

 

 

(5.4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После дополнения уравнений

u

 

=α0 ;

u

n1 j

=α1

; j = 2... m,

u

 

= β0 ;

u

= β1;

 

 

 

 

 

 

 

 

 

 

 

1 j

 

j

 

 

 

 

j

 

 

 

 

 

 

i1

i

i1m

i

i = 2...n получаем полностью определенную систему алгебраических уравне-

ний. Эта система имеет ленточную пятидиагональную матрицу, так как каждое уравнение связывает значение решения в пяти смежных узлах сетки (пятиточечный шаблон «крест»).

Ввиду очень большого количества неизвестных, решение системы (5.4), как правило, получают одним из итерационных методов, среди которых наибо-

50

лее часто используются метод простой итерации. Его модификация - метод Зейделя с последовательной релаксацией или более эффективный метод про- дольно-поперечной прогонки.

Метод простой итерации с релаксацией реализуется следующим обра-

зом: выразим в каждом уравнении (4.4) диагональный элемент и запишем следующую итерационную схему ( k номер итерации):

 

%k +1

 

 

k

 

 

k

 

k

 

 

k

+ eij ,

 

 

 

 

 

uij

= aijui1, j +bijui+1, j + cijui, j1

+ dijui, j+1

 

 

k +1

 

%k +1

 

 

 

 

k

 

 

 

 

 

(5.5)

 

 

 

 

 

 

 

 

 

 

 

 

 

uij

=ωruij

+ (1ωr )uij .

 

 

 

 

 

 

Здесь 0 <ωr < 2 некоторый эмпирически подбираемый параметр, получив-

ший название параметр релаксации. Если процесс сходимости монотонный и очень медленный, то для его ускорения обычно выбирают 1 ωr , что соответ-

ствует верхней релаксации. Если процесс развивается в виде ярко выраженных расходящихся колебаний, то его «релаксируют», выбирая ωr <1, что соответст-

вует нижней релаксации.

При программной реализации метода простой итерации используют два массива: Uk [1..n1, 1..m1] и Uk1[1..n1, 1..m1]. Вначале в массиве Uk помещается

начальное распределение u0 (xi , yi ) , после этого по формуле (5.5) получают ре-

зультат итерации в массиве Uk1. Затем массив Uk1 пересылается в Uk , и снова повторяется итерация до достижения условия сходимости.

Метод Зейделя отличается от метода простой итерации тем, что в нем используют только один массив Uk , а полученное по формуле (5.5) новое значе-

ние uijk +1 сразу засылается на место uijk и используется при вычислении следующих значений upk>+i1,l> j . За счет этого скорость сходимости возрастает при-

мерно вдвое. Однако следует отметить, что условия сходимости метода Зейделя более жесткие, поэтому если данный метод расходится при всех ωr , то реко-

мендуется попробовать использовать метод простой итерации.

Метод продольно-поперечной прогонки реализуется следующим образом.

Запишем для (4.34) итерационную схему:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

 

k +1/ 2

u

k

 

 

 

L

 

k +1/ 2

+ L

 

k

=

 

 

 

+

ij

 

 

ij

,

 

 

 

u

u

f

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x ij

y ij

 

 

 

 

 

 

 

 

ωr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

k+1

u

k+1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L

 

k +1/ 2

+ L

 

k +1 =

 

 

 

+

ij

 

 

ij

 

,

 

u

u

f

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

x ij

y ij

 

 

 

 

 

 

 

 

 

ωr

 

 

 

здесь ωr min (a2 / n, b2 / m)

 

 

 

 

 

 

 

 

 

 

 

 

- эмпирически подбираемый параметр, аналогич-

ный шагу по времени в схеме (5.2); k +1/ 2 - промежуточный шаг итерации.

Вначале по заданному распределению

uij , используя первое уравнение

(4.6), находим

u

k+1/ 2 , решая для каждого

j = 2...m систему с трехдиагональной

 

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

матрицей:

51

 

ak

u

k +1/ 2

+bk

u

k+1/ 2

+ ck

u

k+1/ 2

= d k ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

i1, j

 

ij

i, j

 

 

 

 

ij

i+1, j

 

 

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

k

 

 

 

k

 

k

 

 

 

h2

 

 

 

k

 

2

 

 

 

 

 

k

 

uijk

 

 

 

 

a

 

= g

i1/ 2, j

; c

 

= g

i+1/ 2, j

; b

 

 

= −a

 

c

 

 

 

 

 

; d

ij

= h

 

f

ij

L u

 

 

 

.

 

 

 

 

 

 

 

 

 

 

ω

 

 

 

ω

 

 

 

 

 

ij

 

 

 

 

ij

 

 

 

 

ij

 

 

ij

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

y ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

После этого, используя второе уравнение (5.6), находим

u

k +1 , решая для каждо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

го i = 2...n систему с трехдиагональной матрицей:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ak +1

u

k+1

+bk+1

u

k+1 + ck+1

u

k+1

= d k+1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

i, j1

 

 

ij

 

 

 

i, j

 

ij

 

 

i, j+1

 

 

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k+1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ak+1

= g

i, j1/ 2

; ck+1

= g

i, j

+1/ 2

; bk+1

 

= −ak+1

ck+1

 

 

; d k+1

= h2

f

ij

L uk+1/ 2

uij

 

.

 

 

 

 

 

 

ij

 

 

ij

 

 

 

 

 

 

 

 

ij

 

 

 

 

ij

 

 

ij

 

 

 

ω

 

 

 

ij

 

 

 

 

 

 

 

 

x ij

 

 

 

 

ω

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

Метод продольно-поперечной прогонки является одним из самых эффективных методов решения двухмерных задач для уравнения типа теплопроводности. Его развитием для трехмерных уравнений является метод расщепления.

52