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

ГЛ 9

.pdf
Скачиваний:
18
Добавлен:
16.05.2015
Размер:
287.42 Кб
Скачать

Глава 9. Численные методы решения обыкновенных дифференциальных

78

уравнений

 

ГЛАВА 9. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

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

9.1. Численные методы решения задачи Коши для уравнения первого порядка

Понятия точного и приближённого решения задачи Коши. Погрешность приближённого решения

Среди краевых задач для обыкновенных дифференциальных уравнений наиболее известной и изученной является задача с начальными условиями, называемая задачей Коши.

Рассмотрим задачу Коши для обыкновенного дифференциального уравнения первого порядка на отрезке [a ;b]:

 

ìu′ = f (x,u), x [a,b],

 

 

îíu(a) = u .

(9.1.1)

 

 

 

 

Будем считать, что эта

 

задача имеет

единственное

 

решение (функцию u(x) ,

 

определённую

 

 

и

Рис. 9.1

{xn}

Глава 9. Численные методы решения обыкновенных дифференциальных

79

уравнений

 

диффе-ренцируемую на отрезке [a ;b]), и в дальнейшем будем называть его точным решением задачи Коши.

Введём равномерную сетку точек {xn} (n =0 ,1, , N ) на отрезке

[a ;b]. Шаг сетки

h = (b a) (рис.

9.1). Узлы

сетки

определим по

формуле

N

 

 

 

xn = a + h n , n =0 ,1, , N .

 

(9.1.2)

 

 

В качестве приближённого

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

Коши выберем

сеточную функцию. Это характерная особенность всех разностных методов. Значения приближённого решения задачи Коши в узлах сетки xn (n = 0,1, , N ) обозначим un (n = 0,1, , N ) . Сравнить значения точного и приближённого решения можно только в узлах

сетки. Так,

в узле xn значение

точного решения равно u( xn ) , а

приближённого − un (рис. 9.2).

 

Абсолютной

 

 

 

погреш-ностью

 

 

приближённого

решения

 

в узле xn

называется

 

 

u( xn ) un

 

.

 

 

 

 

 

 

 

 

Оценкой

абсолютной

 

погрешности

 

 

 

при-ближённого

 

 

решения в узле xn

 

называется

 

любое

Рис. 9.2

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

число

 

un , удовлетворяющее неравенству u( xn ) un un .

Задача вычисления приближённого решения задачи Коши с заданной точностью обычно ставится следующим образом. Для заданного положительного числа ε требуется подобрать сетку и найти приближённое сеточное решение задачи Коши {un} , абсолютная погрешность которого во всех узлах сетки не превышает ε :

max

 

u(xn ) un

 

≤ε

.

(9.1.3)

 

 

n 0,1, , N

 

 

 

 

=

 

 

 

 

 

 

При этом левая часть последнего неравенства называется

погрешностью приближенного решения на сетке.

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

n =0 ,1, , N −1.

Глава 9. Численные методы решения обыкновенных дифференциальных

80

уравнений

 

Метод Эйлера

Приближённое решение задачи Коши с помощью формул численного дифференцирования. Дифференциальное уравнение (9.1.1) должно выполняться во всех точках отрезка [a , b], в том числе и во всех узлах сетки:

u( xn ) = f ( xn ,u( xn ))

Используем формулу численного дифференцирования (7.1.17) для приближенного вычисления производной

u( xn ) u( xn+1 )hu( xn ) .

Подставим это приближённое равенство в дифференциальное уравнение. В результате получится система приближённых алгебраических равенств

u( xn+1 )hu( xn ) f ( xn ,u( xn )) ,

Выразим из этих равенств u( xn+1 ) и получим систему приближённых формул

u( xn+1) u( xn ) + h f ( xn ,u(

xn )) ,

n =0 ,1, , N −1.

(9.1.4)

Из начального условия задачи Коши (9.1.1) определяется

 

u( x0 ) = u(a) =

u

.

 

(9.1.5)

Зная точное значение u( x0 ) ,

 

по

формуле (9.1.4)

при n=0

приближённо определяем u( x1) u( x0 ) + h f ( x0 ,u( x0 )) . Зная приближённое значение u( x1 ) , по формуле (9.1.4) при n=1 приближённо определяем u( x2 ) u( x1) + h f ( x1 ,u( x1)) и так далее. Последним по формуле (9.1.4) при

n=N-1 приближённо определяем u( xN ) u( xN −1) + h f ( xN −1 ,u( xN −1)) .

Итак, мы получили способ определения приближённого решения, который и получил название метода Эйлера. Обозначим приближённые значения u( xn ) , полученные описанным образом, через un . Запишем формулы, по которым получается приближённое

решение {un} по методу Эйлера:

 

u0 =

u

,

(9.1.6)

un+1 = un + h f ( xn ,un ) , n =0 ,1, , N −1.

(9.1.7)

Отметим, что в точке x0 = a приближённое решение совпадает с точным, а далее с ростом n, погрешность приближённого решения будет нарастать. Можно ожидать, что с уменьшением h (с ростом N) погрешность приближённого решения будет уменьшаться и при h → 0

n+1 ]:

Глава 9. Численные методы решения обыкновенных дифференциальных

81

уравнений

 

(N → ∞ ) погрешность будет стремиться к нулю. А это, в свою очередь, означает, что метод Эйлера можно будет применять для решения поставленной задачи.

Приближённое решение задачи Коши с помощью формул численного интегрирования. Формулы метода Эйлера (9.1.6), (9.1.7) можно получить и другим способом. Проинтегрируем обе части дифференциального уравнения на отрезке [xn ; x

xn+1

xn+1

 

 

(9.1.8)

òu( x) dx =

ò f ( x ,u( x)) dx .

 

xn

xn

 

 

 

Интеграл в левой части равенства (9.1.8) можно найти по

формуле Ньютона-Лейбница

 

 

 

 

xn+1

 

 

 

(9.1.9)

òu( x) dx = u( xn+1 ) u( xn ) .

 

xn

 

 

 

 

Для приближённого вычисления интеграла в правой части

равенства (9.1.8) используем формулу левых прямоугольников

xn+1

xn+1

 

 

 

ò f ( x ,u( x)) dx ò f ( xn ,u( xn )) dx =

.

(9.1.10)

xn

xn

 

= f ( xn ,u( xn )) ( xn+1 xn ) = f ( xn ,u( xn )) h

 

 

Подставив равенства (9.1.9), (9.1.10) в (9.1.8) получим

 

 

u( xn+1) u( xn ) f ( xn ,u( xn )) h .

 

 

Отсюда непосредственно

следует

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

равенство

(9.1.4). Дальнейшие рассуждения проводятся так же, как и при получении приближенного решения задачи Коши с помощью формул.

Оценку погрешности приближенного решения { un} ,

полученного методом Эйлера на сетке { xn} , будем проводить исходя из предположения, что задача Коши (9.1.1) имеет единственное решение – дифференцируемую (а потому и непрерывную и

ограниченную) на отрезке [a ; b] функцию

u(x) , а функция f (x , u)

непрерывна вместе со своими частными

производными

fx( x ,u) и

fu(x ,u)

в прямоугольнике P = {( x ,u): a x b, − M u ≤ +M} . Здесь M -

верхняя граница

 

u(x)

 

 

на отрезке [a ; b].

 

 

 

 

 

 

 

 

 

 

 

 

 

Из

непрерывности функции

u(x)

следует,

что

f (x ,u(x)) ,

f x( x ,u( x)) , fu( x ,u( x))

также будут

непрерывны и

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

Глава 9. Численные методы решения обыкновенных дифференциальных

82

уравнений

 

отрезке [a ;b] и должны существовать положительные постоянные M1 , M 2 , M 3 такие, что для x [a ;b] будут выполнены неравенства

f (x ,u(x)) M1 , f x( x ,u( x)) M 2 , fu(x ,u(x)) M 3 .

Из существования частных производных следует и существование u′′(x) на отрезке [a ;b]. В самом деле, продифференцируем обе части дифференциального уравнения (9.1.1) по x:

u′′( x) = ( f ( x ,u( x)) )= f ( x ,u( x)) + f ( x ,u( x)) u( x) =

x

 

u

.

= fx( x ,u( x)) + fu( x ,u( x))

f ( x ,u( x))

 

 

Правая часть этого равенства существует и представляет собой непрерывную и, следовательно, ограниченную функцию на отрезке [a ;b]. Отсюда следует существование, непрерывность и ограниченность левой части u′′(x) на отрезке [a ;b]. Кроме того, из последнего равенства следует

u′′( x) = fx( x ,u( x)) + fu( x ,u( x)) f ( x ,u( x)) M 2 + M3 M1 M 4 .

Для получения оценки погрешности рассмотрим разность между точным и приближённым решением в узлах сетки xn : zn = u( xn ) un . Приближённое решение определяется по рекуррентным формулам (9.1.6), (9.1.7). Запишем аналогичные приближённые рекуррентные формулы и для точного решения, разложив его в ряд Тейлора с центром в точке xn и ограничившись членами второго порядка малости относительно h:

 

u( x0 ) = u(a) = u,

 

u( x

) u( x ) + u( xn )

h + u′′( xn ) h2 = .

 

n+1

n

1!

 

2!

 

= u( xn ) + f ( xn ,u( xn )) h + u′′( xn )

h2, n = 0,1, , N −1.

(9.1.11)

 

 

2!

 

 

 

Вычтем из второго приближённого равенства (9.1.11) равенство (9.1.7):

u( xn+1) un+1 (u( xn ) un ) + h ( f ( xn ,u( xn )) f ( xn ,un )) +

u′′( xn )

h2

2

 

 

 

(u( xn ) un ) + h( f ( xn ,u( xn )) f ( xn ,u( xn )) fu( xn ,u( xn )) (un u( xn ))) +

+ u′′( xn )

h2

=

2

 

 

=(u( xn ) un ) + h( fu( xn ,u( xn )) (u( xn ) un )) + u′′(2xn ) h2 .

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

приближённого решения окончательно получим

Глава 9. Численные методы решения обыкновенных дифференциальных

83

уравнений

 

zn+1

» zn (1+ h fu¢( xn ,u( xn ))) +

u′′( xn )

h2 .

(9.1.12)

 

 

2

 

 

Для того чтобы формулы выглядели менее громоздкими, введём

краткие обозначения:

 

 

 

 

 

 

 

= (1+ h fu ( xn ,u( xn ))) .

un = u

( xn ) , ( fu )n = fu ( xn ,u( xn )) , (1+ h fu )n

′′ ′′

 

 

 

 

 

 

 

 

Тогда формула (9.1.12) примет вид

 

 

 

 

zn (1+ h fu )n +

u′′

 

 

 

zn+1

n

h2 , n =0 ,1, , N −1.

(9.1.13)

 

2

 

 

 

 

 

 

 

 

 

 

В силу начальных условий (9.1.6) и первого равенства (9.1.11)

 

 

z0 = u( x0 ) u0 =

u

u

= 0.

 

(9.1.14)

Таким образом, для определения последовательности {zn} мы также получили приближённые рекуррентные формулы. Зададим

произвольное

 

 

целое

 

 

 

 

число

 

 

 

m

 

 

из

отрезка

 

 

[0; N ] и применим

полученные формулы для вычисления zm :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1+ h f

 

)

 

 

 

 

 

 

u′′

 

u′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z z

0

u

 

 

 

+

 

0

h2 =

0

h2

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u′′

 

 

 

 

 

 

 

u′′

 

 

 

 

 

u′′

 

 

 

 

 

 

z2 z1

(1+ h fu )1 +

 

 

1

h2

=

 

 

 

0

h2 (1+ h fu )1

+

1 h2

,

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

u′′

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1+ h f

 

)

 

 

 

h2 =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z z

2

u

2

+

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

h2 (1+ h fu )1 (1+ h fu )2 +

1 h2 (1+ h fu )2 +

 

 

 

 

 

 

 

 

 

 

 

 

2

u′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

2

 

h

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u′′

 

2

 

 

u′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z4 z3(1+ h fu )3

 

 

 

 

 

 

 

h2 (1+ h fu )1 (1

+ h fu )2 (1+ h fu )3 +

 

+

 

3

h2

=

 

 

 

0

 

 

2

 

 

2

 

u′′

 

 

 

 

 

 

 

 

 

 

 

u′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u′′

 

 

 

 

 

………………………

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ 1 h2 (1+ h f

)

2

(1+ h f

u

)

3

 

+

 

2

h2

(1+ h f

u

)

3

 

+

 

3

h2 ,

 

 

 

 

 

 

 

2

 

2

 

 

 

 

 

 

2

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

……………………………………………………………

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m−1u′′

h2

 

 

m−1

 

 

 

 

 

 

(9.1.15)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

zm

å i

 

 

 

Õ (1+ h fu ) j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

2

 

 

 

 

j =i+1

 

 

 

 

 

 

 

Используем полученную формулу для получения оценки абсолютной погрешности приближённого решения задачи Коши в узле xm . Абсолютная погрешность равна

 

u(xm ) um

 

 

 

 

m−1u′′

h2

m−1

(1+h fu ) j

 

 

 

=

zm

å i

Õ

 

 

 

 

 

 

 

 

 

 

 

 

i =0

2

 

 

j =i+1

 

.

(9.1.16)

 

m−1

 

u′′

 

 

 

m−1

(1+h fu ) j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

å

 

 

i

 

h2

 

Õ

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

i =0

 

 

 

j =i +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запишем разложение экспоненты в ряд Тейлора и ограничимся членами первого порядка малости относительно h:

Глава 9. Численные методы решения обыкновенных дифференциальных

84

уравнений

eh×( fu ) j ≈1+ h ( fu ) j = (1+ h fu ) j .

Тогда

m-1

(1+ h f

u

)

j

m-1eh×( fu ) j

 

 

j =i+1

 

 

 

 

j =i+1

eh×M 3 ×(m-1-i) eh×M 3 ×m =

=eM 3 ×( xm -x0 ) ,

m−1

m−1

×( fu ) j

 

åh×( fu ) j

å h

 

= e j=i+1

e j=i+1

 

Подставив это неравенство в (9.1.16), получим приближённое неравенство

 

u( xm ) um

m-1

 

u′′

 

h2 eM 3 ×( xm -x0 )

M

 

 

eM 3 ×( xm -x0 ) m =

 

 

 

 

 

 

å

 

 

i

 

 

4

h2

 

 

 

 

 

2

 

2

 

 

i=0

 

 

 

 

=M24 ( xm x0 ) eM 3 ×( xm -x0 ) h

Витоге мы получили искомую асимптотическую оценку

погрешности приближённого решения в произвольном узле сетки xm

 

u( x

m

) u

m

 

M 4 ( x

m

x ) eM 3 ×( xm - x0 ) h

 

 

 

 

 

 

 

 

 

 

2

0

 

 

 

M 4

 

 

 

 

.

(9.1.17)

 

 

(b a) eM 3 ×(b-a)

h

 

 

 

2

 

 

 

 

 

 

 

 

Из полученной оценки следует, что приближённое решение

задачи Коши сходится к точному при h → 0

(N → ∞ ) и методом Эйлера,

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

Кроме того, оценка погрешности um экспоненциально растёт с ростом ( xm x0 ) . Следовательно, можно ожидать, что в большинстве случаев абсолютная погрешность приближённого решения задачи Коши будет иметь наибольшее значение на правом конце отрезка

[a ;b].

Аналогично тому, как мы получили оценку (9.1.17), можно показать, что метод Эйлера имеет первый порядок точности, то есть

u( xm ) um = O(h) при h → 0 .

Метод Рунге-Кутта

Вычислительная схема метода Эйлера позволяет обеспечить только первый порядок точности. Естественно возникает вопрос: как

Глава 9. Численные методы решения обыкновенных дифференциальных

85

уравнений

 

получить вычислительные схемы с более высоким порядком точности.

При получении формул метода Эйлера вторым способом для

приближённого вычисления интеграла

xnò+1f (x ,u(x)) dx использована

 

xn

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

точности. Вычислительная схема метода Эйлера (9.1.6) - (9.1.7)

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

Применим для вычисления интеграла формулу трапеций с двумя узлами в точках xn и xn+1:

xn+1

ò f ( x ,u( x)) dx h2 ( f ( xn ,u( xn )) + f ( xn+1 ,u( xn+1 ))) . (9.1.18)

xn

Обобщенная формула трапеций имеет второй порядок точности. Подставим приближенное значение интеграла (9.1.18) в

уравнение (9.1.8) и получим

u( xn+1 ) - u( xn ) » h2 × ( f ( xn ,u( xn )) + f ( xn+1 ,u( xn+1 ))) .

Заменим u( xn+1 ) в правой части этого равенства по формуле Эйлера на

u( xn ) + h f ( xn ,u( xn )) и, выразив u( xn+1 )

из левой части, получим

 

u( xn+1) u( xn ) +

 

 

 

 

+ h2 ( f ( xn ,u( xn )) + f (

xn+1 ,u( xn ) + hf ( xn ,u( xn )) ) ) ,

(9.1.19)

n = 0,1, , N −1.

 

Дополнив эти рекуррентные формулы начальным условием

 

u( x0 ) =

u

,

(9.1.20)

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

un - значение приближённого решения задачи Коши, полученное с помощью схемы (9.1.19) - (9.1.20) в узле сетки xn ,

p1

=

1

,

p2

=

1

- постоянные, введенные для приведения

 

 

2

 

 

 

2

 

вычислительной схемы к некоторому стандартному виду,

K1 = f ( xn ,un ) , K2 = f ( xn+1 ,un + h K1) = f ( xn + h,un + h K1) .

Глава 9. Численные методы решения обыкновенных дифференциальных

86

уравнений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В этих обозначениях новая вычислительная схема примет вид

 

 

 

 

 

 

 

u0 =

u

,

 

 

 

 

 

 

(9.1.21)

ì K1 = f (xn ,un ),

 

 

 

 

 

 

 

 

ï

K

2

=

f (x

n

+ h,u

n

+ h K ),

 

(9.1.22)

í

 

 

 

 

 

 

 

 

 

 

1

 

 

], n = 0,1, ,N - 1.

 

ïu

n+1

= u

n

+ h [ p K +

p

2

K

2

 

î

 

 

 

1

 

1

 

 

 

 

Оценка погрешности приближённого решения, получаемого по вычислительной схеме (9.1.21) − (9.1.22), производится аналогично

тому, как это было сделано для метода Эйлера. Полученная вычислительная схема действительно имеет второй порядок точности, если задача Коши имеет единственное решение, а функция f (x , u) и её частные производные до второго порядка включительно являются непрерывными и ограниченными. Таким образом, наше предположение оправдалось.

Подобным образом получены вычислительные схемы вида

ìK1 = f ( xn ,un ),

 

 

 

 

 

u0 =

u

,

 

 

 

 

 

(9.1.23)

 

 

 

 

+ β h K ),

 

 

 

 

 

 

 

 

ïK

2

= f ( x

n

+α h , u

n

 

 

 

 

 

 

 

 

ï

= f ( x

2

 

 

21

1

 

 

 

 

),

 

 

 

ïK

3

n

+α h , u

n

 

+ β h K + β h K

2

 

 

 

ï

 

 

3

 

 

31

1

 

32

 

 

 

 

 

 

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

í

 

= f (x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

),

ïK

l

n

+α h , u

n

+ β

h K + β

h K

2

+...+ β

h K

l −1

ï

 

l

 

l 1

1

 

l 2

 

l l −1

 

 

ï

 

 

 

 

l

 

 

 

 

n = 0,1, , N -1.

 

 

 

 

 

 

ïun+1 = un + h åpi Ki ,

 

 

 

 

 

 

î

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

(9.1.24)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь l – заданное целое число, α2 3 αl , p1, p2 pl и βi j − некоторые

вещественные постоянные, значения которых подбираются так, чтобы полученная вычислительная схема (9.1.23), (9.1.24) имела наибольший порядок точности.

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

u0 =

u

,

(9.1.25)

Глава 9. Численные методы решения обыкновенных дифференциальных

87

уравнений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïK1 = f ( xn ,un ) ,

 

 

 

 

 

 

 

 

 

 

ïK

2

= f ( x

n

+ h 2, u

n

+ h K 2) ,

 

 

 

 

ï

 

 

 

 

 

 

 

 

1

 

 

 

 

 

ï

 

 

= f ( xn + h 2 , un + h K2 2) ,

 

(9.1.26)

íK3

 

ï

 

 

= f ( xn + h , un + h K3 ) ,

 

 

 

 

 

ï.K4

 

 

 

 

 

ïu

n+1

= u

n

+ h [K + 2 K

2

+ 2 K

3

+ K

4

], n = 0,1, , N -1.

 

ï

 

 

6

1

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эта схема имеет четвёртый порядок точности (u( xm ) um = O(h4 ) при h → 0 ), если задача Коши имеет единственное решение, а функция f (x , u) и её частные производные до четвёртого порядка включительно являются непрерывными и ограниченными.

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

Рунге-Кутты. Вычислительные схемы вида (9.1.23) − (9.1.24) также называются схемами Рунге-Кутта (или Рунге-Кутты). Интересно отметить, что вычислительная схема метода Эйлера также относится к семейству схем Рунге-Кутта (при l=1, p1 =1).

Мы не привели оценки погрешности вычислительных схем Рунге-Кутта (9.1.21) – (9.1.22) и (9.1.25) – (9.1.26). Дело в том, что эти оценки содержат величины, найти которые, зачастую, очень сложно. Поэтому они практически не используются.

Оценка погрешности по правилу Рунге. Метод повторного счёта

Обычно для получения приближённых решений дифференциальных уравнений с заданной точностью используется правило Рунге (см. параграф 6.3).