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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
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
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
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]