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

книги из ГПНТБ / Годунов С.К. Разностные схемы. Введение в теорию учеб. пособие

.pdf
Скачиваний:
113
Добавлен:
25.10.2023
Размер:
14.18 Mб
Скачать

160ГЛ. 6. УПОТРЕБИТЕЛЬНЫЕ РАЗНОСТНЫЕ СХЕМЫ

Для получения ип+\ по схеме Рунге — Кутта при уже извест­ ном и„ приходится / раз вычислять значения функции G(x, и). Эти значения больше не используются.

2.Схемы Адамса. В схемах Адамса, одну из разновидностей которых мы сейчас опишем, для вычисления каждого следую­

щего значения ип+\ достаточно дополнительно вычислить значе­ ние G (х, и) лишь в одной точке независимо от порядка аппрок­ симации. Кроме того, приходится проделать небольшое число вычитаний и сложений, которые требуют во много раз меньше

времени, чем каждое вычисление сколько-нибудь

сложной функ­

ции G(x, и).

 

 

 

 

 

 

Обозначим

 

 

 

 

 

^fn

— fn fn-\>

 

 

 

 

Щп

=

V (Vf„) = Vfn

- Vfn_t

= fn -

2f„_, +

U-2,

V% =

VV?n = f n

- 3/„_, +

3/„_2

- f„_3

 

и положим Gn = G(xn, un). Выпишем несколько разностных уравнений, используемых в схемах Адамса для вычисления ипесли ип, ип-и ... уже вычислены:

Un + l — ип - G „

= 0,

 

га = 0,

1,

А/ — 1, (7)

h

 

 

 

 

 

 

 

Un+l — ип

Gn

VG„ = 0,

 

п=\,

2

N-

1, (8)

 

 

Un+l — Un

Gn

| V G „ - ^ V 2 G „ =

0,

п — 2, 3, . . . , N — 1, (9)

h

 

 

 

 

 

 

 

Un+l ~ un

Gn

± V G „ - ^ V 2 G „ -

}V3G„ = 0

 

(10)

h

 

 

 

 

 

 

 

 

 

 

 

л = 3, 4, . . . . N — I .

Первое

из этих уравнений — разностное

уравнение

Эйлера.

При подстановке в левые части

уравнений

(7)—(10)

вместо

Мпип, ип

••• значений u{{n-\-\)h),

u(nh), ...

точного ре­

шения и(х)

в равенствах (7) —(10)

возникают невязки

порядка

h, h2, h3 и /г4 соответственно.

Формулы Адамса получаются следующим образом. Пусть и(х)— решение уравнения

du = .

-т— и (х, и), dx

Обозначим

G(x, u{x))=^F{x).

 

 

 

§ 19. СХЕМЫ РУНГЕ - КУТТА И АДАМСА

 

 

 

161

Тогда

 

 

 

 

 

x„+h

 

 

x„+h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и (хп +

h) — и (хп)

=

 

 

и' dx =

F (х)

dx.

 

 

Из теории интерполяции функций известно,

что существует один и только

один

многочлен Pu(x,F)

степени

не

выше k,

принимающий

в

( А + 1 ) - й

точ­

ке хп, xn-i,

...,.хп

 

заданные

значения

F(x„), F(xn-i),

 

F(xn-k)

соответственно. Этот

многочлен

Pk(x,F)

в случае достаточно

гладкой

функ­

ции

F(x)

уклоняется

от

F(x)

на

 

отрезке

х„

=g; х =^ хп

+

h

на величину

порядка А*+ | ,

так что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max

| Pk (x,

F)

-

F (x) | = О

(hk+l).

 

 

 

(И)

Разностная формула

Адамса

имеет

вид

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(12)

При

подстановке в левую часть

вместо

 

 

 

 

 

 

 

 

 

 

 

 

Un, ип + \,

G (xn—s,

Ип —s)

 

 

 

 

соответственно значений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и(хп), u(xn+l),

 

G (xn-s,

 

u(xn-s))

 

 

 

 

получим

невязку порядка

/г .

 

 

 

 

 

 

 

 

 

 

"

(х„ +

h) — u (хп)

-1

 

 

h

 

 

 

и(хп

+

h) — и (хп)

 

 

 

h

 

 

xn+h

 

 

+

i J

w -

u .

J

 

Pk(x,F)dx

 

 

_ 2

xn+h

 

 

 

\

F(x)dx

+

 

I

 

л ] dx

< 0 + max

I F (x) - Pk (x, F)\ = 0

(hk+l).

При k = 0 интерполяционный многочлен

P0 (x, F) = G (xn, un) = const

и формула (12) превращается в (7). При k= 1

Р, (х, F) = j \U -

On - (x - xa) Gn-{\.

6 С. К. Годунов, В. С. Рябенький

162 ГЛ. 6. УПОТРЕБИТЕЛЬНЫЕ РАЗНОСТНЫЕ СХЕМЫ

Далее,

xn+h

 

1 (X—

Xn-iY

 

 

хпУ

 

 

 

 

\

J

Pl(x,F)dx

Gn-

 

 

Gn-i

 

2

 

 

 

 

 

хп

 

 

 

 

 

 

 

 

 

 

 

 

 

2

h2 \

 

1

h'2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A M 2

Г G " - ^ F - 2 - G " - > = G « + T ? G " -

Следовательно, формула

(12) превращается

в

(8). Аналогично

при k =

2 и

k =

3 из (12) получаются формулы

(9) и (10) соответственно.

 

 

 

 

 

Для

вычисления

 

по схеме

(7) достаточно знать

и0 — а. Для

того чтобы начать вычисления

по схеме

(8), надо заранее

знать,

кроме и0 — а, также еще и щ . Схема

(9) требует использования

UQ,

MI

и и2, а схема

 

(10) —четырех значений: UQ, U\, и2 И U 3 .

Э Т И

значения могут быть найдены по схеме Рунге—Кутта,

с по­

мощью

схемы Эйлера с мелким шагом, с помощью

разложения

решения в окрестности точки

х = 0 в

степенной ряд. Нестан­

дартное начало счета является одним из недостатков

схем

Адамса по сравнению со схемами

Рунге — Кутта.

Отмечав­

шимся

ранее достоинством

схем Адамса

является

то, что для

вычисления ип+\ нужно, в дополнение к уже вычисленным в

процессе

отыскания

ип, ип.. . значениям Gs,

VGS ,

Vf t Gs ,

вычислить только одно значение функций G„ =

G(xn, ип)

и про­

извести

некоторое

число вычитаний для вычисления VG„, .. .

Vf t G„.

Итак, преимущества методов Адамса перед методами Рун­ ге—Кутта заключаются в меньшей трудоемкости вычислений на один шаг. Основные недостатки — нестандартное начало счета, невозможность (без усложнения формул) в процессе счета из­ менить, начиная с какой-то точки х„, шаг h, xn+i = хп -f- h, с которым ведутся вычисления. Последнее обстоятельство суще­ ственно в тех случаях, когда решение и его производные на не­ которых участках меняются быстро, а на других изменяются медленно.

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

По-видимому, наиболее рационально использование обоих методов — Рунге—Кутта и Адамса — с автоматическим перехо­ дом с одного из них на другой в процессе счета. При этом начи­ нать счет надо по схеме Рунге — Кутта. В программе должен быть предусмотрен автоматический выбор шага, при котором расчет ведется с нужной точностью. При этом программа вы­ бора шага должна предусматривать некоторый «консерватизм» при выборе шага: диктовать изменение шага только в случае,

§ 19. СХЕМЫ РУНГЕ - КУГГА И АДАМСА

163

если требуется «довольно сильно» его изменить. Если оказы­ вается, что при вычислении нескольких последовательных зна­ чений ип по схеме Рунге— Кутта не происходит изменения шага, целесообразен автоматический переход на счет по более эко­ номной схеме Адамса. Как только вновь появляется необходи­ мость изменить шаг, программа расчета должна переходить на вычисления по схеме Рунге— Кутта и т. д.

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

увеличить шаг.

 

 

 

 

задачи и' -f- Аи =

 

3. Замечания об устойчивости. Для

0, ли­

нейной и с постоянным коэффициентом

А, схемы Рунге—Кутта

после исключения k\, k2, ... окажутся схемами первого порядка,

 

 

un+l

— a(h)un

=

0.

 

Корень

характеристического

уравнения X— a(h)=0

равен

X = а (я).

 

 

 

 

 

 

В случае ип =

и(хп)

для

ип+\

получается значение,

совпа­

дающее

с точным

решением

ы(х„ +

я)

с точностью до ПР+\ где

р — порядок

аппроксимации. Поскольку

 

и (хп

+ К) = и (хп) e~Ah« = и (хп) (1 _ Ля + ~ - -

. . . ) ,

а

 

 

un+l=a(h)un,

 

 

то

 

 

 

 

 

 

 

 

 

 

 

 

X =

a(h)=e-Ah

+

0(hp+l).

 

Таким

образом,

| А (я) | <

1 +

ch.

 

 

 

 

 

Степени Xn(h)

ведут

себя «правильно»: они растут,

если А < О

и решение дифференциального уравнения растет. Они убывают,

если А > 0 и решение е~Ах

убывает.

 

 

В случае схемы

Адамса (8)

 

 

."*+»-

»" +

Аип + 4 п

- «„_,) *= О

(13)

характеристическое

уравнение имеет

вид

 

6*

164

 

ГЛ. 6. УПОТРЕБИТЕЛЬНЫЕ

РАЗНОСТНЫЕ

СХЕМЫ

 

Отсюда

 

 

 

 

 

 

 

 

 

 

 

 

Я, =

1 -

Ah

+ О

(h2),

 

 

 

 

 

X2

=

0(h).

 

 

 

 

 

 

Таким образом, решение ип = Х*\ ведет себя при измельчении

h, как и(х„)

— e~Anh,

а «паразитическое»

решение \ 2 ,

вызван­

ное выбором

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

к нулю, так

как 2\ =

0(h),

и на

устойчивость не влияет.

Читателю полезно сравнить схему (13) со схемой второго

порядка

(2)

из §

17:

 

 

 

 

 

 

Для нее

 

 

 

 

И д + ' 7 л " " ~ ' + А и * = ° -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Я1 =

1 _ Л/г

+

^ -

+ 0

(/г3),

Аа = -

1 -

Ah +

0(h2).

«Паразитический» корень Х2 при положительном А по модулю больше корня hi, что и приводило к большой постоянной в оценке устойчивости для этой схемы и к практической непригодности ее при больших А, установленной в § 17.

4. Обобщение на системы уравнений. Все описанные схемы численного решения задачи Коши для дифференциального урав­ нения первого порядка (1) автоматически переносятся на си­ стемы уравнений первого порядка. Для этого в записи (1)

 

%r-G(x,

« , - 0 . 1

 

 

 

 

 

и(0) =

а I

 

 

 

 

надо понимать под и(х) = й(х)

и

G (х, и)

=

G (х, и)

вектор-

функции и

под а = а заданный

вектор. Тогда

схемы

Рунге —

Кутта (3),

(4) и схемы Адамса

(7) — (10)

сохранят

смысл и

останутся

применимыми.

 

 

 

 

 

 

Например, система уравнений

 

 

 

 

 

 

 

(х + v2 +

sin w) =

0,

\

 

 

 

 

о(0) =

а„

j

 

 

 

 

w (0) = a2

J

 

 

 

 

§ 19. СХЕМЫ

РУНГЕ -

КУТТА И

АДАМСА

165

запишется в

форме

 

 

 

 

 

 

 

 

 

 

 

 

-г-

 

G (х,

и) =

О,

 

 

 

 

 

dx

 

 

 

 

 

 

 

если положить

 

 

 

и (0) =

а,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v(x)

 

 

 

 

 

 

 

и{х)—\ \w(x)

. /.,

 

 

 

 

т.,

ч

 

/* + у

2 +

s

i n u y

'

 

 

 

G

(Л:,

а)

=

лгада

 

 

 

 

 

 

 

 

V

 

 

 

 

 

 

 

 

а,

 

 

 

 

 

 

 

 

 

а

= ' .«2

 

 

 

 

Формула

для

й „ + 1 в схеме

Эйлера

 

 

 

 

 

 

 

й п

+ х ~ й п + hG(xn,

йп)

 

подробно

запишется так:

 

 

 

 

 

 

 

 

 

V n + l = V n +

h ( X n + v 2 n + s i n W n ) >

 

Все рассуждения

о

порядке

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

изложенные

выше мелким шрифтом, тоже сохраняются. При этом в формуле

(6) под

производной вектора

G{GU.. .,Gk)

по вектору

,

.

dG

 

 

 

u(ui,...,

ии),

Q^ , надо понимать матрицу

 

 

 

)G,

 

dGi

 

 

 

дих

 

duk

 

 

 

dGk

 

dGk

 

 

 

dui

" '

duk

 

Произвольная система дифференциальных уравнений, раз­ решенных относительно старших производных, сводится к си­ стеме уравнений первого порядка

166

ГЛ. 6. УПОТРЕБИТЕЛЬНЫЕ РАЗНОСТНЫЕ СХЕМЫ

 

путем замены искомых функций. Как это делается, ясно из сле­ дующего примера. Система

d2v

+

sin (xv'

+ v2

+ w) =

0,

dx2

i g . _|_

yX2

_|_ „2 +

 

(Vf)2

_|_ Ю 2

=

0

>

 

 

 

 

 

o(0)

=

 

a,

 

 

 

 

 

o'(0)

=

ft,

,

 

 

 

 

w (0) =

с

приводится к требуемому

виду, если положить

 

 

и, (дс) =

У (*),

 

 

 

 

 

, \

 

dv

 

 

 

 

Получим

 

«з (х)

 

=w{x).

 

 

 

 

 

 

du\

 

 

 

 

 

 

 

 

Uo =

0,

 

 

 

 

 

dx

 

 

 

 

 

I

 

duo

+ sin (хы2

+

u\ +

«3 ) =

0,

~

 

V ^ 2 + " 2

+ «2 + "3

 

0,

 

 

 

 

 

И] (0) =

a,

 

 

 

 

u2

(0) =

b,

 

 

 

 

«з (0) ==

c.

 

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

§ 20. Методы решения краевых задач

 

Примером краевой задачи является задача

 

V" =

t(x, у, у'),

 

0 < х < 1 ,

(1)

0(0) =

Г„.

У(1)

 

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

концах отрезка

O ^ x ^ l ,

на котором надо найти решение у

=

у(х). На этом

примере мы

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

§ 20.

МЕТОДЫ

РЕШЕНИЯ

КРАЕВЫХ ЗАДАЧ

167

1. Метод стрельбы. В § 19

указаны удобные способы числен­

ного решения задачи Коши, т. е. задачи

вида

 

У

f{x>y,yf),

0 < * < 1 ,

 

 

 

 

 

 

 

(2)

где К0 — ордината

точки

(0,

Y0),

из

которой выходит

инте­

гральная кривая,

а а — угол

наклона

интегральной кривой к

о)

Рис. 7.

оси Ох при выходе из точки (0, Y0) (рис. 7,а). При фиксирован­ ном Ко решение задачи (2) имеет вид у = у(х, а). При х = 1 решение у(х, а) зависит только от а:

у(х, а) | х = = 1 = г/(1, а).

Используя указанное замечание о решении задачи Коши (2), мы можем теперь переформулировать задачу (1) следующим об­ разом: найти такой угол а = а*, при котором интегральная кри­ вая, выходящая из точки (0, Ко) под углом а к оси абсцисс, по­ падет в точку (1, Ki):

 

 

 

 

 

y(\,a)

= Y,.

 

 

 

(3)

Решение

задачи

(2)

при этом

а — а* совпадает с искомым ре­

шением

задачи

(1). Дело

сводится, таким

образом,

к решению

уравнения (3) (рис. 7,6). Уравнение (3)

есть уравнение

вида

F(a)

=

0, где F(a)

— у{\,

а)

— К ь Оно отличается

от

привыч­

ных уравнений лишь тем, что функция F(a)

задана

не аналити­

ческим выражением, а с помощью алгоритма решения задачи

(2).

Сведение решения краевой задачи (1)

к решению

задачи

Коши

(2) и составляет сущность метода стрельбы.

 

 

 

Для решения уравнения (3) можно использовать метод де­

ления отрезка пополам, метод хорд, метод

касательных

(метод

Ньютона) и т. д. Например, при использовании метода

деления

168

ГЛ. 6. УПОТРЕБИТЕЛЬНЫЕ РАЗНОСТНЫЕ СХЕМЫ

отрезка пополам мы задаем ао и ai так, чтобы разности

г/ ( I , а0 ) — У, и

а,) — У,

имели разные знаки. Затем полагаем

 

_ а 0 + « 1

Вычисляем 2/(1, аг). Вычисляем затем аз по одной из формул

«з =

а! + а 2

или а3 =

а 0

+

а 2

2

 

-2

в зависимости от того, имеют ли разности у(1,а2) — У, и у (1, а,) — У,

соответственно разные или одинаковые знаки. Затем вычисляем у(\, аз). Процесс продолжается до тех пор, пока не будет до­ стигнута требуемая точность, \у{\, ап) — У\\ < е.

.В случае использования метода хорд задаем ао и а ь а затем последующие а,- вычисляем по рекуррентной формуле

a«+i = а„ - F{ап)Р}ар\ап^)

" ~ а»-^'

n = = l " 2'

Метод стрельбы, сводящий решение краевой задачи (1) к вы­ числению решений задачи Коши (2), хорошо работает в том случае, если решение у(х, а) «не слишком сильно» зависит от а. В противном случае он становится вычислительно неустойчивым, даже если решение задачи (1) зависит от входных данных «уме­ ренно».

Поясним взятые в кавычки слова на примере следующей ли­ нейной краевой задачи:

 

у" — а2у = 0,

0 < х < 1 , )

 

 

 

 

г/(0) = У0,

г/(1) =

У,

 

J

( 1

°

при постоянном

а2.

Выпишем

решение

этой

задачи:

 

 

р-ах

_ -а (2-х)

(1-х)

_

(1+х)

 

Коэффициенты

при

У0 и У\ с ростом а

остаются

ограниченными

на отрезке 0 ^

х sg: 1 функциями; при всех а > 0 они не превос­

ходят единицу.

Поэтому небольшие ошибки

при

задании У0

и

У] ведут к столь же небольшим погрешностям в решении. Рас­

смотрим теперь задачу

Коши

 

 

 

у"-а2у

= 0,

0 < * < 1 , |

 

*/(0) = У0,

/ ( 0 ) = tga.

/

( 2 ' }

§ 20. МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ

16Q

Ее решение имеет вид

(

х ) =

аУ. + tga

^ 4

у

+

1

а У о - t g a 2а

Если при задании t g a допущена погрешность е, то значение решения при х = 1 получит приращение

При больших а вычитаемое

в равенстве (4)

пренебрежимо

мало, но коэффициент при е в первом слагаемом

еа/(2а)

стано­

вится большим. Поэтому метод

стрельбы при решении

задачи

( I ' ) , будучи формально приемлемой процедурой, при больших a становится практически непригодным. Это перекликается с сооб­ ражениями п. 2 § 5, где был приведен пример вычислительно не­ устойчивого алгоритма для решения разностной краевой задачи.

2. Метод прогонки. Для решения краевой задачи

y"-p{x)y

= f{x),

 

 

0 < х < 1 ,

 

y(0) = Y0,

0(1) = К,

 

 

 

при р(л:)Э> 1 можно воспользоваться

разностной

схемой

Ут+l — 2Ут +

Ут-l

 

i v

\

f

i v

\

 

fj2

 

 

г \лт)

 

Ут — /

\ Л т / >

 

0 <

Ш < М,

Mh = 1,

 

 

 

Уо=

^о>

Ум —

 

 

 

 

 

и решать разностную задачу прогонкой. Условия

применимости

прогонки при р(х)>0,

как

легко

проверит

читатель, выпол­

нены.

 

 

 

 

 

 

 

 

3. Метод Ньютона. Метод стрельбы при

решении хорошо по­

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

Метод Ньютона сводит решение нелинейной задачи к серии линейных задач и состоит в следующем. Пусть известна некото­

рая

функция Уо{х), удовлетворяющая граничным условиям (1) и

грубо приближенно

равная

искомому

решению

у(х).

Положим

 

 

 

У (х) =

Уо (х) +

v (х),

 

(5)

где

v(х)

— поправка

к

нулевому приближению

уо(х).

Подста­

вим

(5)

в уравнение

(1)

и линеаризуем задачу,

используя

Соседние файлы в папке книги из ГПНТБ