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

8510

.pdf
Скачиваний:
0
Добавлен:
25.11.2023
Размер:
1.67 Mб
Скачать

60

5.2. Постановка задачи Коши

Пусть дано обыкновенное дифференциальное уравнение n-го по-

рядка:

 

 

 

 

 

 

y

(n)

 

(n 1)

),

(5.1)

 

 

 

 

 

 

 

f (x, y, y ,..., y

 

 

 

(i)

 

 

 

 

 

 

 

 

 

где через

, i 2, n

обозначены первая и

i-ая производные от иско-

y , y

 

мой функции-решения y=y(x), x – независимая переменная (координата).

Из всех решений уравнения (5.1) ищется такая функция y=y(x), что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

(n 1)

 

 

(n 1)

,

(5.2)

 

 

y(x0 ) y0 , y (x0 )

y0 , ,

 

 

 

 

(x0 ) y0

где

 

(n 1)

– заданные числа.

 

 

 

 

 

 

 

 

 

 

 

 

x0 , y0 , y0 ,..., y0

 

 

 

 

 

 

 

 

 

 

 

 

 

Так формируется задача Коши для обыкновенного дифференциаль-

ного уравнения n-го порядка.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приведем формулировку задачи Коши для системы обыкновенных

дифференциальных уравнений первого порядка.

 

 

 

Пусть дана следующая система:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dy1

 

f (x, y , y

 

 

,...,y

 

 

 

),

 

 

 

 

 

 

 

 

 

2

n

 

 

 

 

 

 

 

 

dx

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dy2

 

f

 

(x, y , y

 

 

,...,y

 

 

 

),

 

 

 

 

 

 

 

 

 

2

2

n

 

 

 

 

 

 

 

 

dx

 

 

1

 

 

 

 

 

 

(5.3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dyn

 

f

 

(x, y , y

 

 

,...,y

 

 

 

).

 

 

 

 

 

 

 

 

 

 

n

2

n

 

 

 

 

 

 

 

 

dx

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Надо найти y1 y1(x),

y2 y2 (x),

...,

yn yn (x) , причем

 

 

 

y1(x0 ) y0 ,

 

y2 (x0 ) y20,

 

 

 

,

 

 

 

 

yn (x0 ) yn0 .

(5.4)

5.3.Приближенное решение задачи Коши для обыкновенных дифференциальных уравнений первого порядка

Первоначально будем рассматривать простейший случай (5.1),

(5.2):

y f (x, y),

y(x0 ) y0.

(5.5)

 

61

 

 

 

 

 

 

При

численном решении задача

сводится к поиску

в точках

 

 

 

 

 

 

x0 , x1 ,...,xn

приближенных значений yk ,

k

0, n

. Точки xk ,

k

0, n

за-

дают сетку, у которой xk xk xk 1 – шаг сетки. Если шаг сетки постоян-

ный и обозначить его xk h, то

xk x0 kh, k 0, n .

5.4. Метод Эйлера

Метод Эйлера (классический) основан на записи (5.5) в следующей форме (через конечные разности):

y f (x, y),

y y(x h) y(x),

 

x (x h) x h.

(5.6)

x

 

 

 

 

 

 

 

 

 

Приближенное значение yk

из (5.6) в точке xk x0 kh вычисляет-

ся по формуле:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yk 1 yk hf (xk , yk ),

k

0, n

.

 

 

(5.7)

Для получения формулы (5.7) можно применить и иной прием. За-

пишем простейший случай задачи (5.1), (5.2) в аналогичном (5.5) виде:

 

y f (x, y(x)),

 

 

 

 

y(xk ) yk ,

 

k

0, n

.

(5.8)

Применим к (5.8) формулу Ньютона-Лейбница:

xk 1

xk 1

 

 

f (z, y(z))dz.

(5.9)

y (x)dx y(xk 1 ) y(xk )

xk

xk

 

Таким образом (5.9) позволяет записать:

 

 

 

xk 1

 

yk 1

yk

 

f (z, y(z))dz .

(5.10)

xk

Применим к вычислению интеграла из (5.10) формулу левых прямоуголь-

ников, тогда (5.10) запишется

 

 

 

yk 1 yk hf (xk , yk ),

k

0, n

.

(5.11)

62

Получим формулу классического метода Эйлера. Так как формулы левых прямоугольников имеют первый порядок точности, то и классический ме-

тод Эйлера имеет первый порядок точности.

Описанная на примере (5.8)–(5.11) процедура позволяет построить модификации метода Эйлера.

Первая улучшенная формула метода Эйлера (усовершенствованный метод Эйлера) получается, если в (5.10) для вычисления интеграла приме-

нить формулу центральных прямоугольников. Вид формулы усовершенст-

вованного метода Эйлера следующий:

yk 1 2

yk

1

hf (xk , yk ),

 

2

(5.12)

 

 

 

yk 1 yk hf (xk 12 , yk 12 ).

Так как формула центральных прямоугольников имеет второй порядок точности, то и формула усовершенствованного метода Эйлера имеет вто-

рой порядок точности.

Вторая модификация метода Эйлера получается, если в (5.10) для вычисления интеграла применить формулу трапеций. Вид формулы второй модификации классического метода Эйлера следующий

yk 1

yk

h

( f (xk , yk ) f (xk 1, yk hf (xk , yk ))).

(5.13)

 

 

2

 

 

В формуле (5.13) значение yk 1 в правой части предсказывается по форму-

ле (5.7) классического метода Эйлера, а затем по формуле (5.13) получает-

ся окончательное (скорректированное) значение yk 1 . По этой причине ме-

тод называется метод типа предиктор-корректор. Иногда метод называют методом Эйлера-Коши или методом Хьюна.

Так как формула трапеций имеет второй порядок точности, то и вторая модификация метода Эйлера имеет второй порядок точности. Ме-

тоды Эйлера являются одношаговыми методами.

63

Пример. Методом Эйлера найти значения решения дифференци-

ального уравнения

y 2x y ,

если y(1) 1, в пяти точках отрезка 1; 1,5 , h 0,1.

Решение.

x0 1; x1 1,1; x2 1,2; x3 1,3; x4 1,5 y0 y(1) 1.000

y1 y0 hf (x0 , y0 ) 1 0,1(2,1 1) 1 0,1 1 1,1

y2 y1 hf (x1, y1) 1,1 0,1(2,2 1,1) 1,1 0,1 1,1 1,21

y3 y2 hf (x2 , y2 ) 1,21 0,1(2,4 1,21) 1,21 0,1 1,19 1,329

y4 y3 hf (x3 , y3 ) 1,329 0,1(2,6 1,329) 1,329 0,1 1,271 1,4561 y5 y4 hf (x4 , y4 ) 1,4561 0,1(2,8 1,4561) 1,59049

Окончательные результаты, с учетом точности метода, сведены в таблицу:

x

1,0

1,1

1,2

1,3

1,4

1,5

 

 

 

 

 

 

 

y

1,00

1,10

1,21

1,33

1,46

1,59

 

 

 

 

 

 

 

5.5. Методы Рунге-Кутты

Наиболее популярными среди классических явных одношаговых методов являются методы Рунге-Кутты. Методы Эйлера, Эйлера-Коши и т.

п. можно рассматривать как простейшие представители этого класса мето-

дов. Итак, по-прежнему имеем следующую задачу Коши:

 

 

dy

 

 

 

 

 

 

 

 

f (x, y),

y(xk ) yk ,

k 0, n .

 

 

 

 

 

 

 

dx

 

 

 

 

 

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

 

 

 

 

xk 1

 

 

 

xk 1

 

 

 

1 ) y(xk )

f (x, y(x))dx,

 

y (x)dx y(xk

 

xk

 

 

 

 

xk

(5.14)

 

 

 

 

xk 1

 

 

 

 

 

 

 

 

 

 

 

y(xk 1 ) y(xk )

f (x, y(x))dx.

 

xk

64

Эта процедура нами уже использовалась при построении формул

(5.9)–(5.11). Пойдем далее. Введем на отрезке xk , xk 1 m вспомогательных узлов:

xk(1) xk 1h xk ,

xk(2) xk 2h,

xk(m) xk m h, 0 1 2 ... m 1.

Естественно, что всегда xk(m) xk 1 . Теперь интеграл в (5.10), (5.14)

представим в виде квадратурной суммы, тогда можем записать:

m

f xk(i) , y(xk(i) ) .

 

y(xk 1 ) y(xk ) h ci

(5.15)

i1

Вформуле (5.15) y(xk(i) ) неизвестны. Чтобы найти эти значения, предста-

вим y(x(i) ) в следующем виде:

 

 

k

 

 

xk(i )

 

 

y(xk(i) ) y(xk ) f (x, y(x)) dx,

i 2, m.

(5.16)

xk

В выражении (5.16) заменим для каждого i интеграл квадратурной формулы с узлами xk(1) , xk(2) , ..., xk(i 1) .

Таким образом, можем записать:

y(xk(2) ) y(xk ) h 21 f (xk(1) , y(xk(1) )),

y(xk(3) ) y(xk ) h 31 f (xk(1) , y(xk(1) )) 32 f (xk(2) , y(xk(2) )) ,

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

i 1

y(xk(i) ) y(xk ) h ij f (xk( j) , y(xk( j) )),

j 1

m 1

y(xk(m) ) y(xk ) h m j f (xk( j) , y(xk( j) )) .

j 1

65

Таким образом, последовательно находим y(xk(2) ),..., y(xk(m)

можем записать:

 

 

m

 

yk 1 yk h k ,

k ci (ki) ,

 

 

 

i 1

 

 

 

i 1

 

(ki)

f xk m h,

yk h ij

(kj) .

 

 

 

 

 

 

j 1

 

) . Окончательно

(5.17)

Формула (5.17) представляет явный одношаговый метод. Это явный m-

этапный метод Рунге-Кутты. Выбор ci , i , ij осуществляется из различных соображений.

Пример. Найти решение задачи Коши методом Рунге-Кутты (4-ого порядка точности) для уравнения

y y x2 , y(1) 0, x 1, 2 .

В первых пяти точках, взяв h 0,1.

Решение.

f (x, y) y x2

f (x , y

 

) y

 

x2

0 1 1

 

 

0

0

x0 1, y0

0

0

 

0

 

 

 

 

 

 

 

hl01 hf (x0 , y0 ) 0,1( 1) 0,1

hl02 0,1 f (1,05; 0,05) 0,1(( 0,05) (1,05)2 ) 0,1152

hl03 0,1 f (1,05; 0,0576) 0,1[( 0,0576) (1,05)2 ] 0,1160

hl04 0,1 f (1,1; 0,1160) 0,1( 0,1160 (1,1)2 ) 0,1326

hl0 16 [ 0,1 2( 0,1152) 2( 0,1160) ( 0,1326)] 0,1158 .

Тогда

y1 y0 hl0 0 0,1158 0,1158.

Таким образом, получено приближенное значение решения y1 0,1158 при x 1,1.

Далее для x 1,2 ищем y2 , решая новую задачу Коши для уравнения:

66

y y x2 , y(1,1) 0,1158,

Проделав соответствующие вычисления, аналогично приведенным выше, получим y2 0,2659.

Каждый раз, формулируя новую задачу Коши и выполняя вычисле-

ния по формулам метода, получим остальные значения: y3 0,4584, y4 0,6981, y5 0,9925.

5.5.1.Явные двухэтапные методы

Рассмотрим семейство явных двухэтапных методов Рунге-Кутты и покажем, что методы Эйлера, Эйлера-Коши являются частным случаем

методов Рунге-Кутты.

Формула двухэтапных методов из (5.17) выглядит следующим об-

разом:

yk 1 yk

h c1 f (xk , yk ) c2 f (xk h, yk h f (xk , yk ))

(5.18)

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yk 1 yk

 

c

f (x

 

, y

 

) c

 

f (x

 

h, y

 

h f (x

 

, y

 

)).

(5.19)

 

 

 

k

k

2

k

k

k

k

 

h

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параметрами в (5.18) являются c1, c2 , , .

Рассмотрим следующую функцию:

 

y(x h) y(x)

c

 

f (x, y) c

 

 

f (x h, y h f (x, y), (5.20)

 

 

2

 

 

h

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где x xk ,

y y(xk ), y(x)

 

решение

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

y f (x, y).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формула Тейлора:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

3

 

 

 

 

 

 

 

 

 

y (x)

 

 

 

 

y(x h) y(x) y (x) h

 

 

h

 

(h

 

),

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

уравнение y f (x, y) , а также формула дифференцирования по x функции

f (x( y(x))

67

y fx f y y fx f y f

позволяют записать:

y(x h) y(x)

f

1

( fx f y f )h (h2 ).

h

2

 

 

Формула Тейлора для функции f (x h, y h f ) запишется сле-

дующим образом:

f (x h, y h f ) f (x, y) fx h f y h f (h2 ).

Следовательно, (5.20) можно записать в таком виде:

f 12 ( f x f y f )h (h2 ) c1 f (x, y) c2 f (x, y)

c2 ( f x h f y h f ) (h2 )

или

(1 c c ) f (x, y)

1

 

 

 

1 2

 

 

2

 

 

 

 

 

 

1

c

f

 

 

2

 

x

2

c2

 

 

2

).

f y f h (h

 

 

 

 

 

 

Второй порядок аппроксимации (5.19) будет, если

c c 1,

 

c

1

,

c

1

.

 

 

 

 

1

2

 

 

2

2

 

 

2

2

 

 

 

 

 

 

 

 

 

 

Следовательно,

 

 

 

 

 

 

 

 

 

 

 

 

 

c 1

1

,

,

c

 

 

1

.

 

2

 

1

 

2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

Формула двухэтапных методов Рунге-Кутты второго порядка точ-

ности выглядит следующим образом:

 

 

1

 

1

 

 

 

yk 1 yk h 1

 

 

f (xk , yk )

 

f (xk h, yk h f (xk , yk ))

,

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,1).

(5.21)

При 1 формула (5.21) дает метод Эйлера-Коши (метод Хьюна).

При 1/ 2 формула (5.21) дает первую модификацию метода Эйлера.

68

5.5.2.Метод Рунге-Кутты четвертого порядка точности

Наиболее известным и широко используемым методом Рунге-

Кутты является метод, который представляется следующей формулой:

y

 

 

y

 

h

 

,

 

 

 

 

 

 

1

( (1)

2 (2)

2 (3)

 

(4) ),

k 1

k

k

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

6

k

 

 

k

 

k

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

(2)

 

 

 

 

h

 

 

h

(1)

 

 

k

f (xk , yk ),

 

 

 

k

 

 

f xk

 

, yk

 

k

 

,

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3)

 

 

 

 

h

 

h

(2)

 

 

(4)

 

 

 

 

 

 

 

 

(3)

 

 

 

k

 

 

f xk

 

 

, yk

 

k

,

k

 

 

f (xk h, yk h k

).

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Этот метод, в соотнесении с задачами о вычислении интеграла

x

 

y(x) f (x)dx,

x0 x ,

x0

 

порожден формулой Симпсона

yk 1 yk h6 ( f (xk ) 4 f (xk 12) f (xk 1 )).

Этот метод, как и формула Симпсона, имеет четвертый порядок точности.

5.6. Методы Адамса

Для решения задачи Коши

y f (x, y(x)), x0 x x1, y(x0 ) y0 (5.22)

до сих пор строились одношаговые методы, чьи формулы имеют такой вид:

yk 1 yk h (xk , yk ).

Можно добиваться большей точности путем использования инфор-

мации с нескольких предыдущих точек xk , xk 1, ... .

Так возникают многошаговые методы.

Пусть y(x) – точное решение. Подставим его в (5.22) и проинтегрируем на отрезке xk , xk 1 исходную задачу Коши (как это мы делали в (5.8)-(5.10)),

тогда получаем:

69

 

xk 1

 

xk 1

 

y(xk 1 ) y(xk )

 

 

f (x, y(x))dx.

(5.23)

y (x)dx

 

xk

 

xk

 

Пусть p(x) полином аппроксимирующий f(x, y(x)), тогда (5.23) можно за-

писать:

 

xk 1

 

y(xk 1 ) y(xk )

p(x)dx.

(5.24)

xk

Чтобы построить p(x), предположим, что yk , yk 1,..., yk N – приближенные значения исходного решения соответственно в точках xk , xk 1,..., xk N .

5.6.1.Методы Адамса-Бошфорта

 

 

Пусть

узлы

расположены равномерно

с шагом h,

тогда

fi f (xi , yi ),

i k,

k 1,...,k N – приближенные значения f(x,

y(x)) в

точках (узлах)

xk , xk 1,..., xk N . За p(x) возьмем интерполяционный поли-

ном для набора данных (xi , fi ), i k, k 1,...,k N,

то есть p(x) – полином

степени h, удовлетворяющий условию: p(xi ) fi ,

i k, k 1,...,k N.

Полином в (1.24) можно проинтегрировать явно. Рассмотрим случаи.

Случай N 0.

В этом случае p(x) это константа, равная fk и получаем метод Эй-

лера.

Случай N = 1.

В этом случае p(x) линейная функция, проходящая через точки

(xk 1, fk 1 ), (xk , fk ) , то есть

p(x)

(x xk )

f

k 1

 

(x xk 1 )

f

 

,

 

 

k

 

h

 

h

 

 

 

 

 

 

а значит

 

 

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]