Вычислительная математика. Ч. 2. Асламова В.С - 24 стр.

UptoLike

47
Задание. Разработайте блок-схему алгоритма решения системы обыкно-
венных дифференциальных уравнений методом Рунге-Кутта 4-го порядка
точности.
2.2. Многошаговые методы
Суть построения разностных схем многошаговыми методами основана на
том, что для вычисления значения y
i+1
используются результаты не одного, а
k предыдущих шагов, т. е. значения y
i-k+1
, y
i-k+2
, ..., y
i
. В этом случае получает-
ся k-шаговый метод.
Многошаговые методы могут быть построены следующим образом. За-
пишем исходное уравнение в виде:
dY(x) = f(x, Y)dx. (2.16)
Проинтегрируем обе части этого уравнения по х на отрезке [x
i
, x
i+1
]. Инте-
грал от левой части легко вычисляется:
+
==
++
1
11
)()()(
i
i
x
x
iiii
yyxYxYxdY
. (2.17)
Для вычисления интеграла от правой части уравнения (2.16) сначала стро-
ится интерполяционный многочлен Р
k-1
(x) степени k-1 для аппроксимации
функции f(x, Y) на отрезке [x
i
, x
i+1
] по значениям f(x
i-k+1
, y
i-k+1
), f(x
i-k+2
, y
i-k+2
), ...,
f(x
i
, y
i
). После этого можно записать:
++
11
)(),(
1
i
i
i
i
x
x
k
x
x
dxxPdxYxf
. (2.18)
Приравнивая выражения, полученные в (2.17) и (2.18), можно получить
приближенную формулу для определения неизвестного значения сеточной
функции y
i+1
в узле x
i+1
:
+
+
+=
1
)(
11
i
i
x
x
kii
dxxPyy
. (2.19)
На основе этой формулы можно строить различные многошаговые методы
любого порядка точности. Порядок точности зависит от степени интерполя-
ционного многочлена Р
k-1
(x), для построения которого используются значе-
ния сеточной функции y
i
, y
i-1
, ..., y
i-k+1
вычисленные на k предыдущих шагах.
2.2.1. Методы прогноза и коррекции
В этих методах для вычисления положения новой точки используется ин-
формация о нескольких ранее полученных точках. Для этого применяются
две формулы, называемые соответственно формулами прогноза и коррекции.
48
Схемы алгоритмов для всех таких методов одинаковы, а сами методы отли-
чаются лишь формулами. Пусть дифференциальное уравнение задано в виде
(2.3).
Так как в рассматриваемых методах используется информация о несколь-
ких ранее полученных точках, то в отличие от одношаговых методов они не
обладают свойством «самостартования». Поэтому, прежде чем применять
метод прогноза и коррекц
ии, приходится вычислять исходные данные с по-
мощью какого-либо одношагового метода. Часто для этого прибегают к ме-
тоду Рунге-Кутта.
Вычисления производят следующим образом. Сначала по формуле про-
гноза и исходным значениям переменных определяют значение сеточной
функции. Верхний индекс 0 означает, что прогнозируемое значение является
одним из последовательности значений y
i+1
, располагающихся в порядке воз-
растания точности. По прогнозируемому значению y
0
i+1
с помощью приве-
дённого выше дифференциального уравнения находят производную
(y
0
i+1
)
=f(x
i+1
, y
0
i+1
),
которая затем подставляется в формулу коррекции для вычисления уточнён-
ного значения
1
1
+
+
j
i
y
. В свою очередь
1
1
+
+
j
i
y
используется для получения более
точного значения производной с помощью дифференциального уравнения
),()'(
1
11
1
1
+
++
+
+
=
j
ii
j
i
yxfy
.
Если это значение производной не достаточно близко к предыдущему, то
оно подставляется в формулу коррекции и итерационный процесс продолжа-
ется. Если же производная изменяется в допустимых пределах, то значение
)'(
1
1
+
+
j
i
y
используется для вычисления окончательного значения y
i+1
, которое
и выдаётся на печать. После этого процесс повторяетсяделается следую-
щий шаг, на котором вычисляется y
i+2
.
Обычно при выводе формул прогноза и коррекции решение уравнения
рассматривают как процесс приближённого интегрирования, а сами формулы
получают с помощью конечно-разностных методов.
Если дифференциальное уравнение y’(х)=f(x,y) проинтегрировано в интер-
вале значений от x
i
до x
i+1
, то результат примет вид
+
=
+
1
),()()(
1
i
i
x
x
ii
dxyxfxyxy
.
Этот интеграл нельзя вычислить непосредственно, так как зависимость
y(x) заранее неизвестна. Приближённое значение интеграла можно найти с
помощью одного из конечно-разностных методов. На этапе прогноза можно
использовать любую формулу численного интегрирования, если в неё не вхо-
дит предварительное значение y’(x
i+1
).
    Задание. Разработайте блок-схему алгоритма решения системы обыкно-                          Схемы алгоритмов для всех таких методов одинаковы, а сами методы отли-
венных дифференциальных уравнений методом Рунге-Кутта 4-го порядка                              чаются лишь формулами. Пусть дифференциальное уравнение задано в виде
точности.                                                                                       (2.3).
                                                                                                    Так как в рассматриваемых методах используется информация о несколь-
                        2.2. Многошаговые методы                                                ких ранее полученных точках, то в отличие от одношаговых методов они не
    Суть построения разностных схем многошаговыми методами основана на                          обладают свойством «самостартования». Поэтому, прежде чем применять
том, что для вычисления значения yi+1 используются результаты не одного, а                      метод прогноза и коррекции, приходится вычислять исходные данные с по-
k предыдущих шагов, т. е. значения yi-k+1, yi-k+2, ..., yi. В этом случае получает-             мощью какого-либо одношагового метода. Часто для этого прибегают к ме-
ся k-шаговый метод.                                                                             тоду Рунге-Кутта.
    Многошаговые методы могут быть построены следующим образом. За-                                 Вычисления производят следующим образом. Сначала по формуле про-
                                                                                                гноза и исходным значениям переменных определяют значение сеточной
пишем исходное уравнение в виде:                                                                функции. Верхний индекс 0 означает, что прогнозируемое значение является
                          dY(x) = f(x, Y)dx.                                 (2.16)             одним из последовательности значений yi+1, располагающихся в порядке воз-
    Проинтегрируем обе части этого уравнения по х на отрезке [xi, xi+1]. Инте-                  растания точности. По прогнозируемому значению y0i+1 с помощью приве-
грал от левой части легко вычисляется:                                                          дённого выше дифференциального уравнения находят производную
                      xi +1                                                                                                        (y0i+1)′=f(xi+1, y0i+1),
                       ∫ dY ( x) = Y ( x      i +1
                                                     ) − Y ( xi ) = yi+1 − yi .       (2.17)    которая затем подставляется в формулу коррекции для вычисления уточнён-
                       xi                                                                       ного значения y i j++11 . В свою очередь y i j++11 используется для получения более
     Для вычисления интеграла от правой части уравнения (2.16) сначала стро-                    точного значения производной с помощью дифференциального уравнения
ится интерполяционный многочлен Рk-1(x) степени k-1 для аппроксимации                                                      ( y i j++11 )' = f ( xi +1 , yi j++11 ) .
функции f(x, Y) на отрезке [xi, xi+1] по значениям f(xi-k+1, yi-k+1), f(xi-k+2, yi-k+2), ...,      Если это значение производной не достаточно близко к предыдущему, то
f(xi, yi). После этого можно записать:                                                          оно подставляется в формулу коррекции и итерационный процесс продолжа-
                              x i +1                         x i +1                             ется. Если же производная изменяется в допустимых пределах, то значение
                               ∫
                               xi
                                       f ( x , Y ) dx ≈ ∫ Pk −1 ( x ) dx .
                                                              xi
                                                                                      (2.18)    ( y i j++11 )' используется для вычисления окончательного значения yi+1, которое
                                                                                                и выдаётся на печать. После этого процесс повторяется – делается следую-
   Приравнивая выражения, полученные в (2.17) и (2.18), можно получить                          щий шаг, на котором вычисляется yi+2.
приближенную формулу для определения неизвестного значения сеточной                                Обычно при выводе формул прогноза и коррекции решение уравнения
функции yi+1 в узле xi+1:                                                                       рассматривают как процесс приближённого интегрирования, а сами формулы
                                                            xi +1                               получают с помощью конечно-разностных методов.
                                        yi +1 = yi + ∫ Pk −1 ( x)dx .                              Если дифференциальное уравнение y’(х)=f(x,y) проинтегрировано в интер-
                                                                                      (2.19)
                                                             xi                                 вале значений от xi до xi+1, то результат примет вид
                                                                                                                                                      xi +1
   На основе этой формулы можно строить различные многошаговые методы
любого порядка точности. Порядок точности зависит от степени интерполя-
                                                                                                                         y ( x i +1 ) − y ( x i ) =    ∫
                                                                                                                                                       xi
                                                                                                                                                              f ( x , y ) dx .

ционного многочлена Рk-1(x), для построения которого используются значе-                            Этот интеграл нельзя вычислить непосредственно, так как зависимость
ния сеточной функции yi, yi-1, ..., yi-k+1 вычисленные на k предыдущих шагах.                   y(x) заранее неизвестна. Приближённое значение интеграла можно найти с
                                                                                                помощью одного из конечно-разностных методов. На этапе прогноза можно
                                                                                                использовать любую формулу численного интегрирования, если в неё не вхо-
                  2.2.1. Методы прогноза и коррекции                                            дит предварительное значение y’(xi+1).
   В этих методах для вычисления положения новой точки используется ин-
формация о нескольких ранее полученных точках. Для этого применяются
две формулы, называемые соответственно формулами прогноза и коррекции.
                                                                                         47     48