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

UptoLike

53
3. Одношаговые методы и методы прогноза и коррекции обеспечивают
примерно одинаковую точность результатов. Однако вторые в отличие от
первых позволяют легко оценить погрешность на шаге. По этой причине,
пользуясь одношаговыми методами, величину шага h выбирают несколько
меньше, чем это, строго говоря, необходимо, и поэтому методы прогноза и
коррекции оказываются более эффективными.
4. При
меняя метод Рунге-Кутта четвёртого порядка точности, на каждом
шаге приходится вычислять четыре значения функции, в то время как для
обеспечения сходимости метода прогноза и коррекции того же порядка точ-
ности достаточно двух значений функции. Поэтому методы прогноза и кор-
рекции требуют почти вдвое меньше машинного времени, чем методы Рунге-
Кутта сравни
мой точности.
2.3. Решение систем обыкновенных
дифференциальных уравнений
Математическое описание многих явлений часто сводится к системе диф-
ференциальных уравнений вида
),,,,(
),,,,,(
),,,,,(
21
2122
2111
nnn
n
n
yyyxfy
yyyxfy
yyyxfy
K
LLLLLLLLLL
K
K
=
=
=
(2.31)
с дополнительными (начальными) условиями:
,)(,)(
,)(
00
0
0202
101
nn
yxyyxy
yxy
==
=
L
(2.32)
где хнезависимая переменная,
)(,),(),(
21
xyxyxy
n
K
- неизвестные
(искомые) функции.
Наиболее простым методом численного решения системы (2.31) с началь-
ными условиями (2.32) является метод Эйлера, который мы и рассмотрим.
Пусть нам известно решение системы (2.31) в точке х, и необходимо получить
решение в точке x+h, тогда согласно методу Эйлера
)).(,),(),(,()()(
)),(,),(),(,()()(
)),(,),(),(,()()(
21
21222
21111
xyxyxyxhfxyhxy
xyxyxyxhfxyhxy
xyxyxyxhfxyhxy
nnnn
n
n
K
LLLLLLLLLLLLLLLLLLLL
K
K
+=+
+=+
+
=
+
(2.33)
54
Используя начальные условия (2.32), можно последовательно получить
приближённые значения в точках
101
hxx
+
=
,
212
hxx
+
=
,
323
hxx +=
Замечание. Дифференциальное уравнение n-го порядка вида:
),,,,,(
)1()(
=
nn
yyyyxfy K
(2.34)
с начальными условиями:
)1(
00
)1(
0000
)(,,)(,)(
=
=
=
nn
yxyyxyyxy K
. (2.35)
сводится к системе уравнений (2.31) и (2.32) с постоянным шагом h.
Блок-схема метода Эйлера для решения систем обыкновенных дифферен-
циальных уравнений представлена на рис 15.
Задание.
Разработайте алгоритм решения системы дифференциальных
уравнений методом Рунге-Кутта.
Начало
ввод X0,
Xk, h, N
i := 1, N
печать
начальных
у
словий
ввод Y0[i]
X0
Xk
Y[1] := F1(X0, Y0)
Y[2] := F2(X0, Y0)
……………………
Y[N] := FN(X0, Y0)
X0 := X0+h
Конец
да
нет
Ввод начальных усло-
вий для каждого
уравнения системы
Расчёт правых
частей диф.
уравнений
Печать X0
i := 1, N
Y0[i] := Y0[i]+h*Y[i]
Печать Y0
[
i
]
Рис.15. Блок- схема метода Эйлера для решения систем
обыкновенных дифференциальных уравнений.
Расчёт
следующих
приближений
    3. Одношаговые методы и методы прогноза и коррекции обеспечивают                     Используя начальные условия (2.32), можно последовательно получить
примерно одинаковую точность результатов. Однако вторые в отличие от                  приближённые значения в точках x 1 = x 0 + h1 , x2 = x1 + h2 , x 3 = x 2 + h3
первых позволяют легко оценить погрешность на шаге. По этой причине,                       Замечание. Дифференциальное уравнение n-го порядка вида:
пользуясь одношаговыми методами, величину шага h выбирают несколько
меньше, чем это, строго говоря, необходимо, и поэтому методы прогноза и
                                                                                                                y ( n ) = f ( x, y, y ′, y ′′,K, y ( n −1) )                                   (2.34)
коррекции оказываются более эффективными.                                             с начальными условиями:
    4. Применяя метод Рунге-Кутта четвёртого порядка точности, на каждом                                 y( x0 ) = y0 ,        y ′ ( x 0 ) = y 0′ , K , y ( n − 1 ) ( x 0 ) = y 0( n − 1 ) .   (2.35)
шаге приходится вычислять четыре значения функции, в то время как для                 сводится к системе уравнений (2.31) и (2.32) с постоянным шагом h.
обеспечения сходимости метода прогноза и коррекции того же порядка точ-                  Блок-схема метода Эйлера для решения систем обыкновенных дифферен-
ности достаточно двух значений функции. Поэтому методы прогноза и кор-                циальных уравнений представлена на рис 15.
рекции требуют почти вдвое меньше машинного времени, чем методы Рунге-                   Задание. Разработайте алгоритм решения системы дифференциальных
Кутта сравнимой точности.                                                             уравнений методом Рунге-Кутта.
                                                                                                                               Начало
                  2.3. Решение систем обыкновенных
                    дифференциальных уравнений                                                                             ввод X0,
   Математическое описание многих явлений часто сводится к системе диф-                                                    Xk, h, N                              Ввод начальных усло-
ференциальных уравнений вида                                                                                                                                     вий для каждого
                                                                                                                           i := 1, N                              уравнения системы
                     y1′ = f 1 ( x, y1 , y 2 , K , y n ),
                                                                                                                          ввод Y0[i]
                        y 2′ = f 2 ( x, y1 , y 2 , K , y n ),                (2.31)
                        LLLLL LLLLL
                        y n′ = f n ( x, y1 , y 2 , K , y n )                                                                печать
                                                                                                                          начальных
с дополнительными (начальными) условиями:                                                                                  условий                                     Конец
                           y1 ( x 0 ) = y1 ,
                                           0                                 (2.32)                                                                нет
                           y 2 ( x 0 ) = y 2 ,L y n ( x 0 ) = y n ,                                                        X0≤Xk
                                               0                0
                                                                                                                                                                Расчёт правых
                                                                                                                          да
где х – независимая переменная, y 1 ( x ), y 2 ( x ), K , y n ( x ) - неизвестные                                                                               частей диф.
                                                                                                                  Y[1] := F1(X0, Y0)                            уравнений
(искомые) функции.                                                                                                Y[2] := F2(X0, Y0)
   Наиболее простым методом численного решения системы (2.31) с началь-                                           Y[N] := FN(X0, Y0)
ными условиями (2.32) является метод Эйлера, который мы и рассмотрим.                                                X0 := X0+h
Пусть нам известно решение системы (2.31) в точке х, и необходимо получить                                            Печать X0
решение в точке x+h, тогда согласно методу Эйлера
                                                                                                                           i := 1, N                            Расчёт
                   y1(x + h) = y1(x) + hf1(x, y1(x), y2 (x),K, yn (x)),                                                                                         следующих
                                                                                                                 Y0[i] := Y0[i]+h*Y[i]                          приближений
                   y2 (x + h) = y2 (x) + hf2 (x, y1(x), y2 (x),K, yn (x)),
                                                                             (2.33)
                   LLLLLLLLLLLLLLLLLLLL                                                                               Печать Y0[i]

                   yn (x + h) = yn (x) + hfn (x, y1(x), y2 (x),K, yn (x)).                          Рис.15. Блок- схема метода Эйлера для решения систем
                                                                                                            обыкновенных дифференциальных уравнений.
                                                                                53    54