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

3.ТЕОРЕТИЧЕСКИЕ ОСНОВЫ МЕТОДА СЕТОК

3.1.Теоретические основы метода сеток

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

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

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

Постановка задачи

Будем иллюстрировать реализацию метода сеток на решении простейшей

одномерной краевой задачи Дирихле для ОДУ второго порядка:

 

 

 

 

 

 

 

 

g(x,u)

u

= f (x,u);

u(0) =α; u(b) = β.

(3.1)

 

 

 

x

x

 

 

 

В общем случае задачу Дирихле для дифференциального уравнения запишем в виде

Lu = f ; u

 

Г =ϕ(Г),

(3.2)

 

 

 

где L - дифференциальный оператор u = u(x) , Г - граница многомерной об-

ласти Ω, внутри которой необходимо получить решение. В рассматриваемом частном случае Ω представляет собой отрезок [0,b], Г - точки [0], [b].

Решение методом сеток предполагает следующие этапы.

1. Построение сетки, представляющей собой набор узлов (точек), «рав-

номерно» распределенных по области Ω. Множество таких узлов будем обо-

значать

ωh ={xi , xi Ω}.

Для

одномерного

случая

ωh ={0 = x1 < x2 <... < xn+1 = b}, hk = xk+1 xk шаг сетки. Если hk = h = b / n , сетка

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

равномерные

по

координатам

сетки:

ωh ={(i 1)h, i =1...n +1},

ωh ,h

y

={ (i

1)hx , ( j 1)hy , i =1...n +1,

j =1...m +1} и т.д. Параметр h (в общем

x

 

 

 

 

 

38

случае hr = (hx , hy ,...) ) является основным параметром метода сеток. Главное

требование к выбору сетки состоит в том, чтобы при h 0 узлы сетки покрывали все точки Ω, а при конечном h таблица должна обладать хорошими аппроксимационными свойствами.

2. Получение конечно-разностной схемы. Решение u(x) ищется в виде таблицы значений в узлах выбранной сетки uh ={ui = u(xi )}(для двухмерной области uh ={uij = u(xi , y j )}). При этом дифференциальное уравнение заменяет-

ся системой алгебраических уравнений, связывающих между собой значения искомой функции в соседних узлах. Такая система алгебраических уравнений называется конечно-разностной схемой.

Для записи конечно-разностной схемы, полученной для уравнения (3.2),

введем следующие обозначения:

 

 

Lh

 

h =

 

 

 

 

 

 

(3.3)

u

fh ,

здесь

u

h = (

u1,

u

2 ,...,

u

n+1 )полученные

в результате решения конечно-

разностной схемы значения искомой функции u(x) в узлах сетки. Ввиду погрешностей расчета значения uh заведомо будут отличны от точных значений uh , поэтому расчетные значения будем отмечать «крышкой»; Lh - оператор, обычно это матрица системы; fh таблица усредненных значений функции f (x) в узлах сетки.

Имеется несколько способов получения конечно-разностной схемы. Приведем для примера один из универсальных – интегроинтерполяционный. Согласно этому способу, область Ω = [0,b] разобьем на элементарные непересе-

кающиеся подобласти, в центре каждой

 

из

которых

имеется

узел

сетки:

Ωi

=[xi1/ 2 , xi+1/ 2

], xi1/ 2

= xi h / 2, xi+1/ 2 = xi

+ h / 2,

 

i = 2...n . После

чего

проин-

тегрируем (4.1) по каждой области Ωi

и получим следующую систему

n 1

уравнений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi+1/ 2

 

 

 

 

xi+1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g u

dx =

 

f (x) dx;

i = 2...n.

 

 

 

 

(3.4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi1/ 2

 

 

xi+1/ 2

 

xi1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обозначим

 

= 1h x

f (x) dx f (xi );

fh ={

 

 

fn}.

 

 

 

 

 

 

fi

f2 ,...,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Левую часть уравнения (4.4) преобразуем следующим образом:

 

 

 

 

 

1

xi+1/ 2

 

u

 

 

1

 

 

 

 

u

 

 

 

 

1

 

 

 

 

ui ui1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

dx

=

g u

 

 

g

 

 

 

 

gi+1/ 2 ui+1 ui gi1/ 2

.

h

 

x

x

h

 

 

x

 

 

 

h

 

 

 

 

 

x

 

xi+1/ 2

 

 

 

 

 

 

h

 

 

h

 

 

 

xi1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В результате из (3.4) получаем следующую конечно-разностную схему, каждое уравнение которой связывает значения таблицы в трех смежных узлах сетки (т.е. используется трехточечный шаблон):

39

 

g

i1/

 

 

g

i1/ 2

+ g

i+1/ 2

 

 

g

i+1/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

ui1

 

 

 

 

ui

+

 

2

ui+1

= fi , i = 2...n.

(3.5)

 

 

2

 

 

 

h

2

 

 

2

 

 

 

h

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

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

u1 =α,

u

n+1 = β, являющихся следстви-

ем граничных условий (3.1), имеем систему из n +1 уравнений с n +1 неизвестными, которая является конкретной реализацией общей записи (3.3).

3. Решение системы конечно-разностных уравнений. Если коэффициен-

ты исходного дифференциального уравнения g и f не зависят от u , конечно-

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

b1

c1

0

0 ...

0

0

0

 

u1

 

d1

 

 

 

a

b

c

0 ...

0

0

0

 

u

2

 

d

2

 

 

 

 

2

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

a3

b3

c3 ...

0

0

0

 

 

 

 

 

 

 

 

 

 

,

(3.6)

 

 

 

 

 

 

 

u3

 

= d3

 

... ... ...

... ... ... ...

...

...

 

...

 

 

 

 

0

0

0

0 ...

a

b

c

 

u

 

 

 

d

 

 

 

 

 

 

 

 

 

n

 

n

n

 

 

n

 

 

 

n

 

 

 

 

0

0

0

0 ...

0

a

n1

b

 

u

n1

 

d

n1

 

 

 

 

 

 

 

 

 

 

n1

 

 

 

 

 

 

здесь n1 = n +1; b1 =1; c1 = 0; d1 =α; an1 = 0; bn1 =1; dn1 = β;

a = g

 

;

c = g

 

;

b = −a c ;

d

 

= h2

 

; i = 2...n.

i1/ 2

i+1/ 2

i

f

i

 

i

 

i

i i

 

 

i

 

Решение такой системы получают эффективным методом прогонки, который реализуется в 2 цикла:

1) прямой ход

 

ξ1 = −c1 / b1; η1 = d1 / b1;

 

для

i = 2...n вычисляем: ξi = −ci / (bi + aiξi1 ); ηi = (di aiηi1 )/ (bi

+ aiηi1 );

 

2) обратный ход

 

 

u

n1 = (dn1 an1ηn )/ (bn1 + an1ηn );

 

для

i от n до 1 вычисляем:

ui =ξi

ui+1 +ηi .

 

 

Достаточным (хотя не необходимым) и легко проверяемым условием ус-

тойчивости прогонки является выполнение неравенства

 

 

 

 

bi

 

 

ai

 

+

 

ci

 

,

(3.7)

 

 

 

 

 

 

 

 

причем хотя бы для одного i 1...n1 должно быть выполнено строгое неравенство. В нашем примере b1 > c1 и bn1 > an1 .

В случае нелинейной задачи, когда g(x,u) , f (x,u) , решение (3.6) ищется итерационным методом задается некоторое начальное приближение искомого решения uh0 , находятся gh (uh0 ), fh (uh0 ), ai , bi , ci , di , после чего решается система (4.6) и находится новое приближение uh1 . Итерации производятся до

достижения сходимости или же до констатации расходимости итерационного процесса.

4. Нахождение погрешности аппроксимации. При замене дифференци-

ального уравнения системой алгебраических уравнений вносится так называе-

40

мая погрешность аппроксимации конечно-разностной схемой дифференци-

ального уравнения, которая получается следующим образом: подставим в ко- нечно-разностную схему (3.3) вместо uh значения точного решения uh . Ввиду

того, что Lhuh fh = 0 , но uh uh , после такой подстановки получается невязка:

ψh = Lhuh fh 0 .

(3.8)

Эта невязка и называется погрешностью аппроксимации. Если погрешность аппроксимации велика, то, естественно, никакого приближения полученного решения к искомому нет. Поэтому основное требование к конечно-разностной схеме – погрешность аппроксимации должна стремиться к нулю при h 0 , т.е. должна иметь место оценка:

 

ψ

h

 

 

C h p ;

(3.9)

 

 

 

 

 

 

 

 

 

ψ

 

 

 

 

 

 

 

 

Сψ не зависит от h ; р – порядок погрешности аппроксимации.

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

схемы (4.5)

 

 

 

 

 

h u (x

+ h)u (x )

 

 

 

 

h u(x )u

(x

h)

 

 

 

 

1

 

 

 

 

 

 

 

 

 

ψ

h

=

 

 

g

 

x

+

 

 

i

i

g

 

x

 

 

i

i

 

 

f (x ) .

 

 

 

 

 

 

 

 

 

 

h

 

i

 

2

 

h

 

i

 

2

h

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Используем начальные члены разложения u (x) в ряд Тейлора:

 

+

h

ui+1/ 2 +

h

ui+1/ 2

+

h2

ui′′+1/ 2 + o(h3 ),

u (xi + h)= u xi+1/ 2

 

2

4

 

 

2

 

 

 

 

 

 

 

h

 

ui+1/ 2

h

ui+1/ 2

 

+

h2

ui′′+1/ 2 o(h3 ),

 

u (xi )= u xi+1/ 2

2

 

2

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u (xi )= ui1/ 2 +

h

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

2 ui1/ 2 +

4 ui′′1/ 2 + o(h3 ),

 

 

 

 

 

 

u (xi1 h)=u (xi1/ 2 h

/ 2)= ui1/ 2

h

 

 

h2

 

 

 

2 ui1/ 2 +

 

4 ui′′1/ 2 o(h3 ).

После подстановки получим

 

 

 

 

 

 

 

 

 

 

 

 

 

ψh =

1

 

h

 

+

h

 

 

 

 

h

 

 

h

 

f (xi ).

g xi +

2

uxi

2

g xi

2

uxi

2

+ o(h2 )

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

±

h

, и учи-

Проделывая аналогичные разложения с функцией υ = guxi

 

 

 

2

 

тывая, что υ(xi ) = f (xi ), получим окончательную оценку ψh o(h2 ) .

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

5. Оценка погрешности решения и проверка устойчивости схемы. Раз-

ность между uh и uh называется погрешностью решения:

 

εh = uh uh .

(3.10)

Аппроксимация является необходимым, но еще не достаточным условием того, чтобы погрешность решения εh было мала. Необходимым условием мало-

41