Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Численные методы в информационных системах. Учебное пособие
.pdf
(
(
)
(
(
)
(
(
)
(
)
(
(
)
Методы прогноза и коррекции можно получить на основе использования многошаговых методов:
метод второго порядка
−
метод третьего порядка
−
i
метод четвертого порядка
−
)0(
i
+
1
+
)1(
k
+
1
i
Во всех этих формулах для вычисления
ние y
, полученное в текущем приближении
i + 1
)0(
+=
1
i
+
+
)1(
k
+
1
i
)0(
+=
1
+
)1(
k
+
1
i
+
+=
+=
i
+=
i
′
−
′
+=
i
i
′
−
)(
k
′
+
+
1
i
)(
k
′
=
+
1
i
+
′
)(
k
1
i
k
′
+
1
i
′
+
+
′
+
1
′−′
)
yyhyy
1
−
iii
)(
′
yyhyy
+
i
+
yyyhyy
yyyhyy
′
′
−
)(
k
.,
yxfy
+
1
i
;23
;2
′
)
;1251623
21
−−
iiii
′−′
;1285
1
−
ii
′
)
yyyyhyy
−
′
yyyyhyy
+
−−
iii
)(1k
′
y
+
i
;249375955
221
−−−
iiiii
.245199
21
используется значе-
В методе Милна используются формулы прогноза и коррекции
построенные по разным точкам
)0(
k
+
1
i
+
+=
)1(
+=
2
i
−
′
′
−
′
+
2
i
−
′
−
+
−
1
′
)
yyyhyy
1234
−−−−
iiiii
)(
k
′
yyyhyy
ii
;3524
.34
Задача Коши для обыкновенного дифференциального уравнения
высшего порядка ставится следующим образом:
найти решение уравнения
(n)
= f (x, y
y
удовлетворяющее начальным условиям:
(n – 1)
y
(n – 2)
y
(n – 1)
(x0) = y
(x0) = y
(n – 2)
, y
, ..., y', y), (6)
(n – 1)
;
0
(n – 2)
; (7)
0
M
y'(x
) = y′0;
0
) = y0.
y(x
0
Путем введения следующих дополнительных переменных:
z = y, z
= y', z2 = y
1
(2)
, z3 = y
(3)
,..., z
n – 1
= y
(n – 1)
можно преобразовать уравнение (6) в систему уравнений первого порядка
51

z
' = f (x, z
n – 1
z
n – 2
z
n – 3
n – 1
' = z
' = z
, z
, z
n – 2
n – 1
n – 2
,.., z', z);
n – 3
;
; (8)
M
z
' = z2;
1
;
z' = z
1
с начальными условиями:
z
n – 1(x0
z
n – 2(x0
) = y
) = y
(n–1)
;
0
(n–2)
; (9)
0
M
z
) = y0';
1(x0
) = y0.
z(x
0
Таким образом, задача Коши (6), (7) для дифференциального
уравнения степени n эквивалентна задаче Коши (8), (9) для системы
n дифференциальных уравнений первого порядка. Поэтому далее будем рассматривать только методы решения систем дифференциальных
уравнений.
Для решения задачи Коши для системы дифференциальных уравнений можно использовать те же методы, что и для одного уравнения,
все этапы решения нужно выполнять по всем переменным одно-
но
временно. Проще всего представить формулы, реализующие соответствующий метод для одного уравнения в векторной форме, а затем
заменить векторную форму алгебраической. Рассмотрим это на примере задачи Коши для системы двух уравнений:
t' = v (x, t, s), t(x
s' = w (x, t, s), s(x
) = t0;
0
) = s0. (10)
0
Метод Рунге–Кутта второго порядка для одного уравнения можно
записать в виде
= hf(xi, yi); y
K
i
= yi + hf (xi + h/2, yi + Ki /2).
i + 1
Запишем это в векторной форме
Ki = hf(x
, yi); y
i
i + 1
= y
+ hf (xi + h/2, y
i
+ K
i
/2).
i
В соответствии с задачей Коши (10), векторы будут состоять из
компонент
y
= {ti, si}; Ki = {kti, ksi}; f = {v, w}.
i
Заменяя векторную форму алгебраической, получим формулы:
kt
= hv (xi, ti, si);
i
= hw (xi, ti, si);
ks
i
= ti + hv (xi + h/2, ti + kti/2, si + ksi /2); (11)
t
i + 1
s
= si + hw (xi + h/2, ti + kti /2, si + ksi/2).
i + 1
52

Метод Адамса второго порядка для задачи (10) реализуется следующим образом:
= ti + h (v (xi, ti, si ) + v (x
t
i + 1
s
= si + h (w (xi, ti, si) + w (x
i + 1
i – 1
i – 1
, t
, s
i – 1
, s
i – 1
i – 1
))/2;
))/2.
i – 1
, t
Еще раз заметим, что все этапы вычислений нужно полностью
произвести для всех переменных, и только после этого переходить к
следующему этапу. Например, при вычислении по формулам (11)
можно менять последовательность вычислений первой и второй строк
и третьей и четвертой, но нельзя после первой строки вычислять третью, а затем вторую и
четвертую (т.е. выполнять все этапы сначала для
одной переменной, а затем для другой).
Вопросы для самопроверки
1. Дайте характеристику методу Эйлера и его модификациям.
2. Расскажите об одношаговых методах Рунге–Кутта.
3. Расскажите о многошаговых методах второго, третьего и чет-
вертого порядков.
4. Дайте сравнительный анализ погрешности и объема вычисле-
ний для методов Рунге–Кутта и Адамса четвертого порядка.
5. Расскажите о неявной схеме и о возможности ее использования
для методов высших порядков.
6. Расскажите о подходах, которые используются при решении
задачи Коши для систем уравнений.
53

=
=
[
(
+′+
′α+
α
Тема 9. КРАЕВЫЕ ЗАДАЧИ ДЛЯ ОБЫКНОВЕННЫХ
вые условия линейны. Такая краевая задача называется линейной
краевой задачей.
дующем виде:
где L[y] – линейный дифференциальный оператор
причем обычно предполагается, что
прерывные функции на отрезке [a, b]. Для простоты будем предпола-
гать, что в краевые условия входят две абсциссы
концы отрезка [a, b]. Такие условия называют двухточечными.
называют линейными, если они имеют вид
удовлетворяющей дифференциальному уравнению (1) и краевым условиям (2), причем последние – линейно-независимые.
в противном случае задача неоднородная.
альное уравнение
с двухточечными краевыми условиями:
54
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Рассмотрим случай, когда дифференциальное уравнение и крае-
Линейное дифференциальное уравнение можно записать в сле-
L[y] = f(x), (1)
1
−
nn
10
i
+++=
Краевые условия
),1(,][ nvjyR
== (2)
vv
−
1
n
n
∑
=
0
k
v
v
)()(
−βα j
,,
заданные постоянные и выполняются условия
k
k
−
1
n
∑
=
0
k
kn
β+α=
k
v
v
k
k
k
)()(
)
=≠α+α
,1,0
Линейная краевая задача состоит в нахождении функции y(x),
Линейная краевая задача называется однородной, если:
≡ 0 в (1);
1. f(x)
= 0,
2. j
ν
Метод конечных разностей. Рассмотрим линейное дифференци-
)()()(" xfyxgyxpy =
Aayay
10
β+β
10
()
;)()(
′
Bbyby
;)()(
=
≠β+β≠α+α
1010
yxpyxpyxpyL
)(...)()(][
,
n
nixp
,0),( =
и f(x) – известные не-
bxax
,
)()()()(
kn
]
,)()(][
byayyR
nv
.
21
(a < b)
(3)
(4)
,0||||;0||||

где p(x), g(x), f(x) – непрерывны на отрезке [a, b]. Один из самых простых способов решения задачи (3), (4) является сведение ее к системе
конечно-разностных уравнений. Для этого необходимо разбить отрезок [a, b] на n равных частей длины h (шаг), где h = (b – a)/n. Точками
разбиения абсциссы будут
Значение функции y(x) в точках x
соответственно y(x
) = yi, y'(xi) = y'i, y''(xi) = y''i.
i
Введем следующие обозначения: P
xi = x0 + ih, где x0 = a, xn = b.
и ее производных обозначим
i
= p(xi), gi = g(xi), fi = f(xi).
i
Заменим производные конечно-разностными отношениями. Для
внутренних точек отрезка [a, b], будем иметь
y'
= (y
i
(i + 1)
– y
)/2h; y″i = (y
(i – 1)
Для крайних точек x
– 2yi + y
(i + 1)
= a, xn = b, чтобы не выходить за концы от-
0
)/h; i = 1, 2, …, n – 1. (5)
(i – 1)
резка [a, b], можно положить
y'
= (y1 – y0)/h, y'n = (y
0
– yn)/(–h). (6)
n – 1
Однако если функция y(x) достаточно гладкая, то более точные
значения дают следующие формулы полученные в лекции 6:
= (–y
+ 4y
– 3y
y'
)/2h; y'
= (3y
– 4y
+ y
)/2h; n≥2. (7)
Используя (5) и (6), можно представить краевую задачу (3), (4) в
виде
(y
– 2yi + y
i + 1
)/h + pi(y
i – 1
– y
i + 1
p
+ p1(y1 – y0)/h = A; (8)
0y0
+ p1(yn – y
p
0yn
)/2h + giyi = fi, i = 1, ..., n – 1;
i – 1
)/h = B.
n – 1
Таким образом, получили систему n + 1 линейных уравнений с
n + 1 неизвестными y
чение искомой функции y(x) в точках x
, y1,..., yn, решение которой позволяют найти зна-
0
, x1..., xn.
0
Система (8) является трехдиагональной и для ее решения исполь-
зуется метод прогонки, приведенный в лекции 2.
При использовании подстановок (7) получаем систему линейных
уравнений:
(y
– 2yi + y
i + 1
)/h + pi(y
i – 1
+ p1( – y2 + y1 – 3y0)/(2h) = A;
p
0y0
+ p1(3yn – 4y
p
0yn
i + 1
– y
)/2h + giyi = fi, i = 1, ..., n – 1;
i – 1
+ y
n – 1
)/(2h) = B.
n – 2
Для решения такой системы можно использовать какой-либо ите-
рационный метод.
Метод Галеркина. Основан на одной теореме из теории общих
рядов Фурье.
Теорема. Пусть {U
(x)}, полная система функций ортогональных
m
на интервале [a, b] с ненулевой нормой. Если непрерывная функция
f(x) ортогональна на [a, b] ко всем функциям U
(x), т.е.
n
55

b
, при n = 0, 1, 2, ..., m,
=
dxxUxf 0)()(
∫
a
n
то f(x) ≡ 0 при х∈[a, b].
Пусть имеем двухточечную линейную краевую задачу
L[y] = f(x), (9)
где L[y] = y'' + p(x)y' + g(x)y;
с линейными краевыми условиями:
[y] = α0y(a) + α1y'(a) = A; (10)
Г
а
[y] = β0y(b) + β1y'(b) = B;
Г
в
α
| + |α1| = 0, |β0| + |β1| = 0).
(|
0
Выберем конечную систему базисных функций {U
(x)} i = 0, n,
i
составляющих часть некоторой полной системы, причем потребуем,
чтобы U
а остальные функции U
(x) удовлетворяла неоднородным краевым условиям
0
Г
] = A, Гв[U0] = B,
а[U0
(x) (i = 1, n) удовлетворяли однородным крае-
i
вым условиям
] = Гв[Ui] = 0 (i = 1, n).
Г
а[Ui
Решение краевой задачи (9) будем искать в виде
n
+=
0
∑
i
=
При таком выборе базисных функций U
xUCxUy
.)()(
(11)
ii
1
(x) функция y(x), опреде-
i
ляемая (11), очевидно удовлетворяет краевым условиям при любом
выборе C
.
i
Если подставить в левую часть дифференциального уравнения (9)
выражение (10) и вычесть правую часть, то получим функцию невязки
n
(12)
.)(][][),...,,,(
−+=
xfULCULCCCxR
021
∑
i
1
=
iin
Эта функция характеризует уклонение формы (11) от действительного решения краевой задачи (9), (10). Если форма (11) при некоторых значениях коэффициентов C
задачи, то невязка будет равна нулю R(x)
совпадает с решением краевой
i
≡ 0 при x∈[a, b], поэтому для
получения приближенного решения, близкого к точному, нужно подобрать C
так, чтобы функция невязки была в каком-то смысле мала.
i
Согласно приведенной выше теореме, для того чтобы функция
невязки была равна нулю, необходимо, чтобы невязка была ортогональна ко всем базисным функциям
56

b
i = 1, 2, ..., n.
=
dxCCCxRxU ,0)...,,,,()(
ni
∫
a
21
При достаточно большом n это обеспечивает малость невязки в
среднем, насколько приближенное решение будет при этом близко к
точному, вопрос остается открытым.
Используя выражение для невязки (12), после преобразований
получим систему линейных уравнений вида
b
n
k
∑
=
k
1
a
решив которую, можно найти значения коэффициентов C
b
ki
i
∫∫
a
−=
dxULxfxUdxULxUC
,])[)()((][)(
i = 1, 2, ..., n,
0
.
i
Согласно условиям теоремы, используемая система функций U
должна быть полной и ортогональной, но на практике подобрать такую систему не всегда представляется возможным, поэтому при использовании этого метода требуют, чтобы система функций была линейно-независимой на [a, b].
Метод коллокаций. В этом методе выбирают n точек, принадле-
жащих рассматриваемому участку x
∈[a, b], i = 1, 2,..., n, называемых
i
точками коллокации, и требуют, чтобы невязка в этих точках была
равна нулю
, C1, C2,...Cn) = 0, i = 1, 2, ..., n.
R(x
i
После преобразований получим систему линейных уравнений
n
∑
k
=
1
0
=−=
iiikk
nixULxfdxxULC
....,,2,1)],([)()]([
Следует иметь в виду, что получаемая система будет хорошо обусловленной, если точки коллокации являются корнями ортогональных
многочленов (например, многочленов Чебышева), при равноотстоящих
точках получаемая система, особенно при большой размерности, может быть плохо обусловленной.
Метод экспоненциальной прогонки. Во многих приложениях,
особенно в механике жидкости, при моделировании электрических
цепей, химических реакций и в теории управления, возникают задачи с
начальными данными, которым присуще свойство, называемое «жесткостью». Жесткие уравнения – это такие уравнения, решения которых
имеют одновременно как быстрое, так и медленно изменяющиеся
компоненты. Первые из них часто не представляют
интереса, однако
если используются классические методы интегрирования, то эти быстро затухающие компоненты могут привести к возникновению трудных
вычислительных задач. Следовательно, важно создать подходящие
i
57

численные методы для решения таких задач. С этой целью был предложен ряд схем.
Некоторые методы предназначаются для систем средней жесткости и требуют использования очень малых шагов в области быстрого
изменения решения. Фактически это означает, что эффективность этих
способов уменьшается с увеличением жесткости.
Для того чтобы показать, как пограничный слой
может возникнуть в случае простых задач, мы приводим здесь пример линейной
двухточечной краевой задачи с таким поведением.
Приведенные ниже восемь графиков иллюстрируют возникновение такого пограничного слоя по мере изменения коэффициента при
второй производной от средних до малых значений. На этих рисунках
приведены графики точных решений задачи
2
1
⎛
2
′
++ε
)()1()("
⎞
−−
⎜
⎟
2
⎝
⎠
uu
2
0)1(,1)0(
=−=
xxxxuxxuxxu
,10)),exp(()(
<<−−=
для восьми значений параметра ε.
а)
б)
г) в)
Рис. 7. Графики, иллюстрирующие возникновение пограничного слоя при
изменении коэффициента при второй производной (для 10 значений ε)
58

д) е)
ж)
и)
Рис. 7. Продолжение
з)
к)
В этой части мы рассмотрим двухточечные краевые задачи, являющиеся математическими моделями диффузионно-конвективных
процессов или родственных физических явлений. Диффузионным членом является член, включающий производные второго порядка, а конвективный член включает производные первого порядка.
Во многих практических задачах коэффициент при производной
первого порядка мал. Примерами могут служить задачи о
переносе
59

тепла с большими числами Пекле, о течениях Навье–Стокса с большими числами Рейнольдса и задачи магнитной гидродинамики с
большими числами Хартмана.
Решения указанного выше типа задач обычно не могут быть
представлены в виде рядов по возрастающим степеням коэффициента
диффузии. Таким образом, эти задачи не являются регулярными возмущениями соответствующих задач
более низкого порядка. Они называются сингулярно возмущенными задачами. Так как в предельном
случае при нулевом коэффициенте диффузии дифференциальные
уравнения имеют более низкий порядок, некоторые из граничных условий станут излишними. Решение задачи может быстро изменяться
вблизи граничных точек, что соответствует наличию пограничного
слоя. Описание решений в таком пограничном слое
требует введения
другой независимой переменной (см., например, Смит [1]).
При решении указанного выше типа задач стандартными численными методами возникают большие трудности. Часто причина этих
трудностей заключается в неустойчивости численного процесса. Чтобы избавиться от неустойчивости, мы используем модифицированную
дискретизацию диффузионного члена. Если нужно, то результирующие схемы могут быть представлены в
консервативной форме.
Далее исследуются двухточечные краевые задачи для обыкновенных дифференциальных уравнений второго порядка, у которых коэффициент при второй производной является малым параметром. Если
задача имеет член с первой производной, возможен один пограничный
слой. С другой стороны, если нет члена с первой производной, то пограничные слои могут быть
в окрестности обеих граничных точек.
Также кратко рассматриваются задачи с малыми коэффициентами при
первой и второй производных и задачи с точками возврата. С аналитической теорией задач этого типа можно подробно ознакомиться в работах Бендера и Орсага [17] и О‘Малли [18].
Нельзя рассчитывать на то, что классические методы будут рабо-
тать
одинаково хорошо во всей области изменения величин h и ε. Их
использование аналогично аппроксимации экспоненциальной функции
отрезком ряда Тейлора или рациональной аппроксимации Паде. Эти
классические методы также требуют строгих ограничений на величину
шага для обеспечения устойчивости при малых ε, за исключением специальных случаев. Например, хорошо известный метод направленных
разностей
приводит к схемам, не требующим наложения ограничений
на величину шага для обеспечения устойчивости. Ошибка схемы с
направленной разностью всегда содержит член порядка О(ε). Это приемлемо, если ε достаточно мало по сравнению с h, но может быть неприемлемым в других случаях.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
