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

Учебное пособие 1993

.pdf
Скачиваний:
1
Добавлен:
30.04.2022
Размер:
3.63 Mб
Скачать

n

 

un ( 1) un (1)

 

0 ,

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

В качестве точек коллокации берем

x

 

0, x

1

, x

 

 

1

.

0

 

2

 

 

 

 

 

 

 

 

1

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ищем

 

 

решение

задачи

в

 

виде:

y

2

c (1 x2 ) c

2

(x2

x4 ) .

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Подставляя

 

y2 (x), y2 и y2

в

 

уравнение получим:

R(x, c , c

2

)

 

 

2c 2c

2

(1 6x2 ) c (1 x

4 ) c

2

x2

(1 x4 ) 1.

 

1

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

Потребуем,

 

чтобы

 

R(x0 )

R(x1 )

R(x2 )

 

0 .

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

c1

2c2

0

 

 

 

 

 

 

 

 

 

1

c1

 

 

2c2 0

 

1

c 1

 

1

c

 

2

 

11 1

 

0

1

 

17

c

 

49

c

 

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

16

 

2

 

 

4

64

 

 

 

16

 

1

64

 

2

 

Решая эту систему, получим

c1 0.023 c2 0.954.

Приближенное решение имеет вид:

y2 0.954 0.977x2 0.023x4 .

Задачи для самостоятельного решения

1. Составьте алгоритм решения методом пристрелки (с точностью 0 удовлетворения правому краевому условию) краевой задачи:

а)

x2 y ln(x)

xy

y

0 , x

1, e , y(1)

 

0, y(e) e 2 ;

 

 

 

 

 

 

 

 

2

.

б)

y

y ,

x

0,2 ,

y(0)

0, y(2)

3

 

 

 

 

 

 

 

 

 

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

160

y 2 y

3xy

 

2 8x

,

x

1,2 ,

y(1)

1,

y(2)

0.5

 

 

x3

 

 

 

 

 

 

 

 

 

 

 

на сетке с шагом h

 

0.2 .

 

 

 

 

 

 

 

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

решение

краевой

 

задачи

для

обыкновенного

дифференциального

 

уравнения

точностью

10 3 ;

шаг

h 0.1 :

 

 

 

 

 

 

 

 

 

 

 

 

y

y

 

2 y

 

x,

y(0.7)

0.5

 

 

 

 

 

 

2 y(1) 3y (1)

1.2.

 

 

x

 

 

 

 

 

 

 

 

 

 

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

уравнения точностью

 

 

10 3 ;

шаг

h 0.05:

 

y

xy

0.5

y

 

1,

y(2)

2 y (2)

1

 

 

 

 

x

y(2.3)

2.15.

 

 

 

 

 

 

 

 

 

 

5. . Методом коллокации

решить краевую задачу

y 2 y 3xy

2

8x

,

 

x

 

1,2 ,

y(1)

1, y(2)

0.5

 

 

 

 

 

 

 

x3

 

 

 

 

 

 

 

 

на сетке с шагом h

0.25.

 

 

 

 

 

 

 

 

161

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

9.1.Решение задачи Дирихле для уравнения Лапласа

методом сеток

Пусть в плоскости XOY дана область D , ограниченная контуром C . Требуется найти непрерывную функцию u(x, y) , удовлетворяющую внутри области D уравнению Лапласа

 

2u(x, y)

 

2u(x, y)

0

(9.1)

 

x 2

y 2

 

 

 

и граничному условию

 

 

 

 

 

 

 

 

 

u(x, y)

C

f (x, y) ,

 

(9.2)

где f (x, y) - непрерывная функция, заданная в точках контура

C .

Решение

этой задачи по методу сеток заключается в

следующем.

Выбрав шаг h ,

проводятся прямые x ih ,

y kh , параллельные осям

координат. Точки пересечения

этих прямых будем называть узлами сетки. Из отрезков этих прямых строится контур Ch максимально приближенный к

контуру C . В результате получим область Dh , состоящую из узловых точек (рис.18). Приближенные значения искомой

функции

в точках

( xi , yk )

обозначим через ui,k , т.е.

u(xi , yk )

ui,k .

 

 

 

 

 

 

Аппроксимируем частные

производные

 

2u(x, y)

и

 

 

x2

 

 

 

 

 

 

 

 

2u(x, y)

в каждом

внутреннем узле сетки

центральными

 

y 2

 

 

 

 

 

 

 

разностями второго порядка

162

 

2u(xi , yk )

 

ui 1,k

2ui,k

ui 1,k

 

,

 

x2

 

 

h2

 

 

 

 

 

 

 

 

 

2u(xi , yk )

 

 

ui,k 1

2ui,k

ui,k 1

 

 

y 2

 

 

h2

 

 

 

и заменим уравнение Лапласа конечно-разностным уравнением

ui 1,k 2ui,k ui 1,k

 

ui,k 1 2ui,k

ui,k 1

0 .

h2

 

h2

 

 

 

 

Рис. 18 После преобразования эта система имеет вид

ui,k

 

1

ui

 

ui 1,k

ui,k 1

ui,k 1

(9.3)

4

1,k

 

 

 

 

 

 

 

Для каждого узла сетки, лежащего внутри области

Dh

(и не лежащего

на границе Ch ) составляем уравнение (9.3).

Значения функции

u(xi , yk ) в точках

(xi , yk )

Ch

принимаются равным

значениям функции

f (x, y) в точках

( x, y ), ближайших к точкам

( xi , yk ). В результате получим

систему линейных алгебраических

уравнений относительно

 

 

 

 

 

163

 

 

 

приближенных значений функции u(x, y) в узлах сетки

( xi , yk ).

При получении сеточных уравнений (9.3) была использована схема узлов, изображенная на рис.19. Набор узлов, используемых для аппроксимации уравнения в точке, называется шаблоном.

Таким образом, численное решение задачи Дирихле для уравнения Лапласа состоит в нахождении приближенных значений ui,k искомой функции u(x, y) во внутренних узлах

сетки. Для определения величин ui,k требуется решить

Рис. 19

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

u(s 1)

1

u(s)

u(s)

u(s)

u(s)

(9.4)

 

i,k

4

i 1,k

i 1,k

i,k 1

i,k 1

 

 

 

 

 

 

 

(верхним индексом обозначен номер итерации). Начальное приближение ui(0),k выбирается произвольно; можно во всех

164

точках

( xi , yk

Dh )

положить

(0) umin

umax

, где umin

ui,k

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

и

umax

-

наименьшее и

наибольшее

 

значения

функции

f (x, y)

в

узловых

точках

 

контура

Ch . При

s

последовательность ui(,sk) сходится к точному решению системы (9.3). В качестве условия окончания итерационного процесса

можно принять

max

u (s 1)

u (s)

, где наперед заданная

 

 

i, k

i, k

 

точность. Метод Зейделя отличается от метода итераций тем,

 

(s)

 

 

 

(s)

 

 

 

 

 

 

 

что вместо

ui 1,k ,

ui,k

1

в формуле (9.4) используются уже

вычисленные

ui(s1,1)k ,

ui(,sk

1)1 , то есть

 

 

 

u(s

1)

 

1

u

(s 1)

u

(s)

u(s)

u

(s 1)

(9.5)

 

 

 

i 1,k

i 1,k

i,k 1

i,k

 

4

 

 

i,k 1

 

 

 

 

 

 

 

 

 

 

 

 

 

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

9.2. Решение смешанной задачи для уравнения гиперболического типа методом сеток

Пусть в плоскости XOY дана прямоугольная область

165

D (x, t)

0 x a, 0 t T .

Требуется

найти

 

 

 

 

непрерывную функцию u(x,t) , удовлетворяющую внутри области D дифференциальному уравнению

 

 

2u

 

c2

 

2u

 

f (x,t) ,

0

x

a,

0

t T,

(9.6)

 

 

t 2

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

начальному условию

 

u(x,0)

 

(x) ,

 

 

 

(9.7)

граничным

условиям

 

 

 

 

 

 

 

 

 

 

 

 

u(0,t)

1(t),

u(a,t)

2 (t),

0

t

T .

 

(9.8)

 

Для построения разностной схемы решения задачи

(9.6)

(9.8)

выберем шаги h,

l

по x

и

t

и

построим

 

 

в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

области

D

(x, t)

0

x

a, 0

t

T

 

 

сетку

xi

 

ih ,

i

0,1,2,..., n,

n

 

a

,

tk

k

,

k

0,1,2,..., m ,

m

 

T

.

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

Значения функции u(x,t) в

узлах сетки называются сеточной

функцией ui,k

u(xi,tk ) ,

приближенные

значения

которой

требуется найти.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

2u(xi , tk )

 

ui, k 1

2ui, k

ui, k 1

,

 

t 2

 

2

 

 

 

 

 

 

 

 

2u(xi , tk )

 

ui 1,k

2ui,k

ui 1,k

 

.

 

x2

 

h2

 

 

 

 

 

 

 

166

 

 

Здесь ui,k

– приближенное

значение функции u(x,t)

в

узле

 

( xi ,tk ).

После такой замены

 

получаем следующую

разностную аппроксимацию уравнения (9.6)

 

 

 

 

 

 

 

ui,k

1

2ui,k

ui,k

1

 

c2

ui

1,k

2ui,k

 

ui

1,k

 

f (x ,t

 

) .

(9.9)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После преобразования уравнения (9.9) получаем

трёхслойную разностную схему

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c 2

2

 

 

 

 

c 2 2

 

 

 

 

 

 

2 f (xi,tk ).

(9.10)

ui,k

1

2 1

 

 

 

ui,k

 

 

 

 

(ui 1,k

ui

1,k )

 

h2

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема

 

(9.10)

называется

трехслойной

потому,

что

связывает между собой значения ui,k

функции

u(x,t) на трех

временных слоях: с номерами k

1, k, k

1. Схема (9.10) явная,

т.е. позволяет в явном виде выразить ui,k

через значения

u ,

вычисленные в предыдущих двух слоях.

 

 

 

 

 

 

 

 

 

 

Численное решение задачи состоит в нахождении

приближенных

значений

ui,k

решения

 

 

u(x,t) в

узлах

u(xi , tk ) при

 

i 1,..., n ,

 

k

1,..., m

. Алгоритм решения

основан на

 

том, что

решение

на

каждом следующем

слое

( k 2,3,..., m )

можно получить пересчетом решений с двух

предыдущих слоев ( k

 

2,3,..., m

1 )

 

по формуле (9.10).

На

нулевом временном слое ( k

0 )

 

 

решение

известно

из

начального условия

u0,k

 

1(x) .

Для вычисления решения

на первом слое ( k 1 ) можно использовать прием, состоящий в том, что если положить

 

 

 

u

(x,0)

u(x, )

u(x,0)

,

 

 

 

 

 

 

 

 

 

t

 

 

 

то ui,1

ui,0

2 (x), i 1,2,..., n .

Теперь для вычисления

решений

на

следующих слоях можно применять формулу

167

(9.10). Решение на каждом следующем слое получается пересчетом решений с двух предыдущих слоев по этим формулам.

Описанная выше схема аппроксимирует задачу (9.6) –

(9.8) с точностью

0( h2 ) . Невысокий порядок

аппроксимации по

объясняется использованием слишком

грубой аппроксимации для производной по t в формуле (9.6). Схема устойчива, если выполнено условие Куранта h .

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

разностной задачи равномерно стремится к решению исходной смешанной задачи (9.6) – (9.8).

Недостаток схемы в том, что как только выбрана величина шага сетки h в направлении x , появляется ограничение на величину шага по переменной t . Если необходимо произвести вычисления для большого значения величины T , то может потребоваться большое количество шагов по переменной. Указанный недостаток характерен для всех явных разностных схем.

9.3. Решение смешанной задачи для уравнения

 

 

теплопроводности методом сеток

 

Пусть

в плоскости Oxy дана прямоугольная

область

 

 

 

 

D (x, t)

0

x a, 0 t T .

Требуется

найти

 

 

 

 

 

непрерывную функцию u(x,t) , удовлетворяющую внутри области D дифференциальному уравнению

 

u

c2

2u

f (x,t) ,

0 x a, 0 t T,

(9.11)

 

t

x2

 

 

 

 

 

начальному условию

u(x,0)

(x) ,

(9.12)

168

граничным условиям

 

 

 

 

u(0,t)

1(t),

u(a,t)

2 (t),

0 t T .

(9.13)

К задаче (9.11) -

(9.13) приводит,

в частности,

задача о

распространении тепла в стержне длины a , на концах которого поддерживается заданный температурный режим.

Для построения разностной схемы решения задачи (9.11) - (9.13) построим в области D (x, t) 0 x a, 0 t T равномерную прямоугольную сетку с шагом h в направлении

x

и шагом

- в направлении t

(рис. 17) . Обозначим узлы

сетки через (x1, t1 ),..., (xi , tk ) ,…,

 

а

приближенные значения

функции u(x,t)

в этих

узлах

 

-

ui,k .

Тогда

xi ih ,

i

0,1,2,..., n ,

h

a n , n

 

a

 

;

 

tk k ,

k

0,1,2,..., m ,

 

h

 

 

 

 

 

 

 

 

 

 

 

m T , Tm .

Для получения разностного уравнения заменим частные производные второго порядка в каждом внутреннем узле сетки разностными отношениями

 

 

 

 

 

 

u(xi ,tk ) ui,k 1

ui,k

,

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2u(x ,t

k

)

 

ui,k 1

2ui,k ui,k 1

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После такой замены получаем двухслойную разностную

схему

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ui,k 1

ui,k

c2

ui 1,k 1

2ui,k 1

ui 1,k 1

f (x ,t

 

 

) ,

 

 

 

 

 

 

 

 

 

k

1

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1,2,..., n

1,

 

 

 

 

k

1,2,...., m 1,

 

 

 

 

 

 

 

ui,0

(xi ) ,

 

 

i

0,1,2,..., n ,

 

 

 

 

 

 

 

 

u0,k

1(tk ) ,

 

 

k

 

0,1,2,..., m .

 

 

 

 

 

 

 

169