Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методические указания к выполнению лабораторных работ по дисциплине Численные методы. Часть 2
.pdf
21
7.3. Семейство методов Рунге-Кутты
),,(
1
hyxhyy
nnnn
),,( hyx
k
),( yxf
),(),,( yxfhyx
),,( hyx
1
))(,())(,(),,(
1
n
n
x
x
k
j
jjj
dxxyxfxyxfhyx
j
i
iij
xyxy
1
)()(
),,( hyx
)(xy
2k
),(
2
,
2
),()1(
1 nnnnnnnn
yxf
h
y
h
xfyxfhyy
2/1
,
2
,
2
,),(
1
2
1
h
K
y
h
xfK
hyxfK
nn
nn
,..2,1,0,)1(
211
nKKyy
nn
Идея построения методов Рунге-Кутты k-го порядка: построить прибли-
женное решение задачи Коши (7.1) по формуле вида:
, (7.7)
где
-го порядка и не содержащая частных производных
Если
– некоторая функция, приближающая отрезок ряда Тейлора до
.
, то приходим к методу Эйлера, т.е. этот метод яв-
ляется методом Рунге-Кутты 1-го порядка.
В общем случае функцию
берут в виде:
,
. (7.8)
Формула (7.8) означает приближение интеграла в (7.3) квадратурной формулой k-го порядка.
Для построения методов Рунге-Кутты порядка, выше первого, функцию
в (7.8) берут многопараметрической и подбирают ее параметры
сравнением выражения (7.7) с многочленом Тейлора для
, соответст-
вующим требуемому порядку степени.
Так, при
, имеем однопараметрическое семейство методов Рунге-
Кутты 2-го порядка:
. (7.9)
При
в (7.9) получим модифицированный метод Эйлера.
Таким образом, любой метод из семейства методов Рунге-Кутты 2-го по-
рядка имеет следующий вид:
(7.10)
Наиболее употребительным частным случаем семейства методов РунгеКутты является метод Рунге-Кутты 4-го порядка. Этот метод может быть получен на основании формулы (7.3), если интеграл в правой части вычислить
приближенно по методу Симпсона. Тогда на каждом шаге численного интегрирования метод Рунге-Кутта будет иметь 5-й порядок точности, но на всем
отрезке порядок точности метода будет равен четырем. В соответствии с этим
приведем один из вариантов метода Рунге-Кутта 4-го порядка:

22
.,
,
2
,
2
,
2
,
2
,),(
...,2,1,0,22
6
1
34
2
3
1
2
1
43211
hKyhxfK
h
K
y
h
xfK
h
K
y
h
xfK
hyxfK
nKKKKyy
nn
nn
nn
nn
nn
(7.11)
)(xy
)(x
)()()( xyxyx
приблточн
)(nxy
nhxx
n
0
],[
0 N
xx
2/h
)(nxy
1
*
1
nnyy
*
1n
y
2/h
1n
y
)(x
)()()()(
1)(
kkh
приблточн
hOhxCxyxy
2/h
)(
2
)()()(
1)2/(
k
k
h
приблточн
hO
h
xCxyxy
k
hxC )(
)(x
k
h
xC
2
)(
)(
12
)()(
1
)()2/(
k
k
h
прибл
h
прибл
hO
xyxy
)1( k
)(
12
)()(
)()(
1
)()2/(
)2/(
k
k
h
прибл
h
прибл
h
приблточн
hO
xyxy
xyxy
1k
2k
4k
7.4. Погрешности численного решения ОДУ
При практических расчетах очень удобно пользоваться методом Рунге
(методом двойного просчета) для оценки погрешности приближенного решения ОДУ. Обозначим абсолютную погрешность решения
.
Согласно методу Рунге осуществляется приближенное вычисление значений
по системе узлов
на отрезке
через
:
с шагом h и с
шагом
ется пересчет значения
где
шаге h.
при помощи метода k-го порядка точности и далее осуществля-
с погрешностью, не превышающей
– значение решения при шаге
, а
– значение решения при
будем определять по методу Рунге.
При использовании численного метода с шагом h имеем:
, (7.12)
а при использовании метода с шагом
:
. (7.13)
Выражение
является главным членом погрешности метода k-го
порядка точности. Из формул выше следует, что:
=
Подставляя (7.14) в (7.13), получим метод
. (7.14)
-го порядка точности:
,
. (7.15)
Здесь
и
тех пор, пока не выполнится условие
для метода Эйлера,
для модифицированного метода Эйлера
для метода Рунге-Кутты 4-го порядка.
Процесс уточнения с применением формулы (7.15) можно продолжать до

23
)()(max
)()2/(
xyxy
kk
h
прибл
h
прибл
,
...,2,1k
)()(
2132
KKKK
],[
0 N
xx
hxxN
N
/)(0
)(iixyy
ni ,...,1
Nn
xx ,...,
1
)(
11
nnxyy
)(xy
],[
1nn
xx
1
))(,()()(
1
n
n
x
x
nn
dttytfxyxy
))(,( xyxf
)(xP
k
))(,( xyxf
jjj
fxyxf ))(,(
nj ,...,0
)(xP
k
)(xP
k
],[
1nn
xx
3
3
2
2
1
!3
)2)(1(
!2
)1(
),(
nnnn
f
qqq
f
qq
fqfyxf
h
xx
q
n
),(
nnn
yxff
hdqdx
3
3
2
2
11
8
3
12
5
2
nnnnnnnn
fhfhf
h
hfyyyy
0k
1k
11
3
2
nnnn
ff
h
yy
2k
211
51623
12
nnnnn
fff
h
yy
3k
, (7.16)
где – заданная погрешность решения.
Менее строгий, но более "дешевый" способ выбора шага в методе РунгеКутты 4-го порядка основан на вычислении дроби:
Если не превышает нескольких сотых, то шаг h сетки можно не менять, в
противном случае при переходе от одного узла сетки к другому шаг нужно
уменьшить вдвое.
7.5. Метод Адамса
Пусть на отрезке
ным методом с шагом h (
,
. Нужно найти приближенное решение этой задачи в сле-
дующих точках:
интегро-интерполяционный подход. Возьмем решение
в виде:
и подставим под интеграл в (7.17) вместо функции
щий ее многочлен
решается задача Коши (7.1) каким-либо числен-
) и найдено уже n значений
. Для получения значений
используем
по промежутку
, (7.17)
интерполирую-
(многочлен Ньютона). Хотя вид функции
.
как функции x неизвестен, но известны ее приближенные значения
,
онных многочленов
многочлен Ньютона
, служащие основой для построения интерполяци-
для интерполирования назад. Далее, интегрируя
по отрезку
, получим методы Адамса.
Например, если воспользоваться второй интерполяционной формулой
Ньютона для интерполирования назад с точностью до разностей 4-го порядка:
;
где
то, учитывая, что
,
и подставить это выражение в интеграл в (7.17),
, получим
.
При
Так, при
:
получим метод Эйлера (т.е. это метод Адамса 1-го порядка).
(метод Адамса 2-го порядка); при
:
(метод Адамса 3-го порядка); при
:

24
3211
9375955
24
nnnnnn
ffff
h
yy
(метод Адамса 4-го порядка).
),( yxf
0
h
2/0h
)(xy
)(iixyy
2/0h
№ вар.
Уравнение
Интервал
Начальное условие
Шаг
0
h
1
2
xyy
[0, 4]
2)0( y
0,5
2
)3(2xyy
[1, 3]
1)1( y
0,4
3
23
yxy
[0, 2]
1)0( y
0,4
4
)cos(xyy
[0, 2]
1)0( y
0,4
5
)cos(2xyy
[0, 2]
1)0( y
0,4
6
33
yxy
[0, 2]
1)0( y
0,4
7
yyxy
2
[0, 1]
1)0( y
0,2
8
22
)1( yxy
[0, 1]
1)0( y
0,2
9
xyy /
2
[1, 2]
1)1( y
0,2
10
)sin(2xyy
[0, 1]
5,0)0( y
0,2
11
)sin(xyy
[0, 2]
1)0( y
0,4
12
)1( xyy
[0, 2]
1)0( y
0,4
13
yxy3
[0, 1]
1)0( y
0,2
14
xy
e
[1, 2]
0)1( y
0,2
15
22
3 yxy
[0, 2]
4)0( y
0,4
16
yxy2
[0, 1]
1)0( y
0,2
Метод Адамса относится к многошаговым методам решения дифференциальных уравнений, т.к. использует на каждом шаге численного интегрирования несколько значений функции
, вычисленных в предыдущих уз-
лах сетки.
7.6. Задание на лабораторную работу № 6: Численное решение задачи
Коши для обыкновенных дифференциальных уравнений
1. Решить дифференциальное уравнение (см. вариант) на заданном интервале
при заданном начальном условии с шагом
Эйлера, модифицированным методом Эйлера и методом Рунге-Кутты 4-го
порядка.
2. Составить четыре таблицы данных и построить четыре графика зависимостей решения: точного
и приближенных
ных по трем методам.
3. Определить погрешности численных методов решения – сравнением результатов с аналитическим решением и методом двойного пересчета. Сравнить результаты.
и
: аналитически, методом
при
, получен-

25
17
)4e(
2
xyy
x
[0, 2]
1)0( y
0,4
18
yy /1
[2, 4]
2)2( y
0,4
19
2
yy
[0, 1]
5,0)0( y
0,2
20
xyy /
2
[1, 5]
1,0)1( y
0,5
21
xyy
[0, 2]
1)0( y
0,4
22
yxy 2
[0, 1]
1)0( y
0,2
23
yy 2
[1, 2]
1)1( y
0,2
24
xxyy /)2(2
[1, 5]
1)1( y
0,5
25
2
1 yy
[0, 1]
0)0( y
0,2
26
x
yy e
2
[0, 2]
2)0( y
0,4
27
xyy /
[1, 3]
1)1( y
0,4
28
xyy
2
[0, 1]
5,0)0( y
0,2
],[ ba
)(xy
)()()()()()( xfxyxqxyxpxy
],[ bax
)(xp
)(xq
)(xf
)(xy
],[ ba
,)()(
,)()(
11
00
Bbyby
Aayay
0
0
1
1
0||||
00
0||||
11
0,0
10
0,0
10
8. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ ДЛЯ
ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Рассмотрим линейную граничную (краевую) задачу для обыкновенного
дифференциального уравнения (ОДУ) 2-го порядка.
Пусть на отрезке
задана дважды непрерывно дифференцируемая
функция
, которая определяется линейным неоднородным ОДУ 2-го по-
рядка:
где
,
,
,
– известные функции.
, (8.1)
Двухточечная линейная граничная (краевая) задача для уравнения (8.1)
ставится следующим образом: найти функцию
, которая на отрезке
удовлетворяет (8.1), а на концах отрезка граничным условиям
(8.2)
где
,
,
,
, A, B – заданные постоянные. Предполагается, что
,
. Краевые условия (8.2) определяют третью или
смешанную краевую задачу для ОДУ 2-го порядка. В случае, если
, получим краевые условия 1-го рода (условия Дирихле), а если
, получим краевые условия 2-го рода (условия Неймана).
Рассмотрим решение граничной задачи (8.1)-(8.2) конечно-разностным
методом или, по-другому, методом сеток. В этом методе граничная задача заменяется системой алгебраических уравнений, неизвестными в которой являются различные величины, "близкие" к решению граничной задачи в узлах

26
сетки. Полученную систему алгебраических уравнений называют разностной
],[ ba
NabhNiihaxw
i
/)(,...,,1,0,
)(iixpp
)(iixqq
)(iixff
)(xy
)(iixyy
)(xy
i
x
i
xx
)()()()()()(
iiiiii
xfxyxqxyxpxy
h
xyxy
xy
ii
i
2
)()(
)(
11
2
11
)()(2)(
)(
h
xyxyxy
xy
iii
i
iiiiiii
fhyp
h
yqhyp
h
2
1
2
1
2
12
2
1
1,...,1 Ni
1N
1N
0
y
1
y
N
y
ax
0
bxN
)(ay
)(by
,
,
1111
10000
Bhyhy
Ahyyh
NN
)(
00
1
h
Ah
Z
)(
00
0
1
h
X
схемой.
Введем на отрезке
равномерную сетку вида
. (8.3)
и на этой сетке определим сеточные функции
,
,
.
Считая
приближенное значение функции
точным решением задачи (8.1)-(8.2), обозначим через
в узлах
сетки.
Простейшим способом построения разностной схемы является замена
непрерывных производных в узлах сетки конечноразностными отношениями.
Положив в (8.1)
, получим равенство
. (8.4)
Заменив производные в (8.4) конечноразностными отношениями (аппроксимациями) второго порядка:
,
,
получим трехточечное разностное уравнение 2-го порядка:
,
. (8.5)
Формулу (8.5) можно интерпретировать как компактную запись СЛАУ с
трехдиагональной матрицей коэффициентов с числом уравнений
неизвестных в этой системе будет
:
,
, …,
. Недостающие два
уравнения берутся из граничных условий (8.2). Поскольку
,
. Всего
, то,
заменяя производные
и
в (8.2) аппроксимациями первого порядка,
получим
, (8.6)
Уравнения (8.5)-(8.6) образуют СЛАУ с трехдиагональной матрицей, к которой (вместо более трудоемкого метода Гаусса) можно применить высокоэффективный метод прогонки.
8.1. Метод прогонки
Алгоритм решения системы (8.5)-(8.6) методом правой прогонки имеет
следующий вид:
1) найти значения
,
2) по рекуррентным формулам
;

27
iii
iii
i
Xp
h
qh
Zp
h
fh
Z
2
12
2
1
2
2
1
,
iii
i
i
Xp
h
qh
p
h
X
2
12
2
1
2
1
2
Z
2
X
N
Z
N
X
N
N
N
Xh
ZBh
y
111
1
)(
iiii
yXZy
1
1N
y
0
y
i
Z
i
X
i
Z
i
X
i
y
N
y
0
y
0)( xq
],[ bax
|)(|max
2
],[
xp
h
bax
011
1||
i
X
||||
000
h
||
2
i
p
h
1,...,1 Ni
||||
111
h
||
2
i
p
h
1,...,1 Ni
)(
11
1
h
Bh
Z
N
)(
11
1
1
h
X
N
iii
iii
i
Xp
h
qh
Zp
h
fh
Z
2
12
2
1
2
2
1
iii
i
i
Xp
h
qh
p
h
X
2
12
2
1
2
1
2N
Z
2N
X
0
Z
0
X
последовательно вычислить
3) найти
4) по формуле
Здесь
и
– это прогоночные коэффициенты. Этапы 1-2 – это прямой ход
метода прогонки, на нем вычисляеются все коэффициенты
,
, …,
;
вычислить
,
;
, …,
.
и
; этапы 3-4
– обратный ход метода прогонки, на котором вычисляются приближенные
значения решения
от
до
(вычисления идут справа налево).
Для устойчивости метода прогонки должны выполняться условия:
,
и
. (8.7)
При выполнении условий (8.7) метод сеток сходится, по крайней мере, к решению первой краевой задачи, т.е. когда
; в других случаях требу-
ется более детальный анализ.
Из условий (8.7) получим условия сходимости для метода правой про-
гонки. Он будет устойчив к погрешностям округлений, если
,
и
,
. (8.8)
При невыполнении этих условий погрешность решения системы (8.5)-(8.6)
может быть значительной.
Если выполняются условия
и
,
, (8.9)
то можно применить метод левой прогонки. Он состоит в следующем:
1) находим значения
,
;
2) по рекуррентным формулам
последовательно вычисляем
,
,
, …,
,
;

28
3) находим
0000
00
0
)( Xh
ZAh
y
iiii
yXZy
1
1
y
N
y
( ) ( ) ( ) ( ) ( ) ( )y x p x y x q x y x f x
00
( ) ( ) ;y a y a A
11
( ) ( ) .y b y b B
0a , 1b
[ , ]ab
( ), 0,...,
i
y y x i N
№ вар.
()px
()qx ()fx
0
0
1
1
A B
1
( 1)x
–1
3
2
( 1)x
1 0 1 0 1
0,5
2
2
( 2)x
2x
1
1 0 1 0 –0,5
–1
3
2
41x
x
2
1
1x
22
3
( 1)x
1 0 1 0 0
0,5
4
2
x
0
e
x
1 1 0 1 0 1 5
ex
x
0
–1 1 1 1 1
0
6
1x
–1
2
22
1
xx
x
1 0 1 0 0
1,4
7
–1
–2
3ex
0 1 1 2 0
0
;
4) по формуле
вычисляем
, …,
.
8.2. Задание на лабораторную работу № 7: Численное решение двухто-
чечной линейной краевой задачи
1. Решить дифференциальное уравнение
при заданных краевых условиях
разностным методом (метод "правой прогонки" или метод "левой прогонки") и переходом к двум задачам Коши с использованием метода РунгеКутта 4-го порядка (№ варианта совпадает с вашим номером в журнале).
2. Составить две таблицы расчетов значений функции в узлах сетки для
при двух значениях числа N: 6 и 12 (на ЭВМ соответственно
10 и 20) – дробления интервала
3. Отобразить на одном графике две кривые
краевой задачи двумя методами для каждого N. Проанализировать достигнутую точность решения – сравнением результатов, полученных при
двух расчетах.
Варианты заданий
решения

29
8
1x
–2
2
1
–1 1 0
–1
4
9
2
1x
–1
1
1x
0 1 1 2 1
0
10
–1
–2
e
x
1 0 1 0 0
0
11 1 –2
3
e
x
1 0 1 1 0
3е
12
x
–2
6
1 0 1 0 0,5 2 13
2x
–2
2
2x
1 0 1 0 1 0 14
–2
–1
2exx
1 0 1 0 0
2,72
15
2
x
0
e
x
1 1 0 1 0
1
16
sinx
0
2
x
0 1 1 0 0 1 17
2x
0
2
1 1 0 1 1
0
18
2
( 3)x
2
2
( 3)x
3
1
–1 1 0
4/3
3/4
19
xcos
0
2
x
1 0 1 0 1
1,5
20
2
( 0,3)x
–2
0,3
0,5
0,5
0,5
0,5
0,5
1
21
0,5
3x
0
1
3x
3
–6 0 1 3 2
22
1,5
31x
31x
62x
0 1 1 0 –3
–4
23
2x
–2
4x
1 1 –1 0 0
3,7
24
sin2x
3x
x
1 0 1 0 1
2
25
2
( 1)x
2x
2
2
23
31
( 1)
xx
1
–2 1 0 1 0,5
26
1
2( 1)x
1x
2
2
( 1)
3
x
0 1 3 2 1
4
27
x
1
0
2
x
1 1 1 0 1
1

30
28 0 – x
1
–1 1 1 0 1 0 29
x
0
x
e
1 1 0 1 1
0
№
вар.
()px
()qx ()fx
0
0
1
1
A B
1
( 1)x
–1
3
2
( 1)x
1 0 1 0 1
0,5
2
2
( 2)x
2x
1
1 0 1 0 –0,5
–1
3
2
41x
x
2
1
1x
22
3
( 1)x
1 0 1 0 0
0,5
4
2
x
0
e
x
1 1 0 1 0
1
5
ex
x
0
–1 1 1 1 1
0
6
1x
–1
2
22
1
xx
x
1 0 1 0 0
1,4
7
–1
–2
3ex
0 1 1 2 0 0 8
1x
–2
2
1
–1 1 0
–1
4
9
2
1x
–1
1
1x
0 1 1 2 1
0
10
–1
–2
e
x
1 0 1 0 0
0
11 1 –2
3
e
x
1 0 1 1 0
3е
12
x
–2
6
1 0 1 0 0,5 2 13
2x
–2
2
2x
1 0 1 0 1
0
14
–2
–1
2exx
1 0 1 0 0
2,72
15
2
x
0
e
x
1 1 0 1 0
1
16
sinx
0
2
x
0 1 1 0 0 1 17
2x
0
2
1 1 0 1 1
0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
