Численные методы. Ч.2. Учебное пособие
.pdf
Лекция 16 
нить этот метод посвящена большая литература. Кратко остановимся на тех модификациях Эйлера, которые часто применяются на практике.
а) Метод Эйлера с пересчетом. (Метод Хойна)
Рассмотрим уравнение (16.1) в окрестностях узлов
x |
|
= xi |
+ |
h |
(i = 0,1,2,...) , |
1 |
|
||||
i + |
|
|
2 |
|
|
2 |
|
|
|||
являющихся серединами отрезков [xi , xi +1 ] . В левой части (16.1)
производную заменим центральной разностью, а в правой части заменим значение
|
+ |
h |
|
+ |
h |
|||
f xi |
|
, y xi |
|
|
||||
2 |
2 |
|||||||
|
|
|
|
|
|
|||
функции f ( x, y) средним арифметическим ( xi , yi ) |
и ( xi +1, yi +1 ) , |
||||||||||||||||||
тогда вместо (16.3) получим |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
yi +1 |
− yi |
= |
|
1 |
f |
( |
x |
, y |
− f |
( |
x |
i +1 |
, y |
|
(16.9) |
|||
|
|
|
|
|
|||||||||||||||
|
2 |
|
h |
|
2 |
|
i |
i ) |
|
|
i +1 ) |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Отсюда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
= y + |
h |
f |
( |
x |
, y |
− f |
( |
x |
|
, y |
|
(16.10) |
|||||
|
|
i +1 |
|||||||||||||||||
|
i +1 |
|
|
i |
2 |
|
|
i |
i ) |
|
|
i +1 ) |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Полученная схема (16.10) является неявной, так как искомое значение yi +1 входит в обе части (16.10) и его вообще говоря нельзя выразить явно.
Поступим следующим образом: считая yi начальным приближением,вычисляемпервоеприближениепоформулеЭйлера
|
|
yi +1 = yi |
+ h f ( xi , yi |
) |
|
|
(16.11) |
|||||||
Вычисленное значение |
yi +1 |
подставляем в |
правую часть |
|||||||||||
(16.10) и находим окончательное значение: |
|
|
||||||||||||
y |
= y + |
h |
f |
( |
x |
, y |
− f |
( |
x |
|
, y |
|
(16.12) |
|
|
i +1 |
|||||||||||||
i +1 |
i |
2 |
|
i |
i ) |
|
|
i +1 ) |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Алгоритм (16.11), (16.12) можно записать в виде одного соотношения:
yi +1 = yi |
+ |
h |
f ( xi , yi ) − f (xi +1, yi + h f ( xi , yi )) |
. (16.13) |
|
||||
|
2 |
|
|
|
- 71 -
ЧИСЛЕННЫЕ МЕТОДЫ
Формула(16.13)–методЭйлераспересчетом(МетодХойна). Можно показать, что глобальная погрешность метода Хойна имеет второй порядок точности относительно шага h .
б) Усовершенствованный метод Эйлера
Рассмотрим уравнение (16.1) в окрестностях узлов
x |
|
= xi |
+ |
h |
(i = 0,1,2,...) . |
1 |
|
||||
i + |
|
|
2 |
|
|
|
|
|
|||
В левой части (16.1)2 |
заменим производную центральной раз- |
||||
ностью, а правую часть оставим без изменений
yi +1 − yi |
= f |
|
x |
|
+ |
h |
, y |
+ |
h |
|||
|
|
|
|
i |
|
|
|
|||||
|
|
|
|
|
||||||||
|
h |
|
|
|
2 |
i |
|
2 |
||||
2 |
|
|
|
|
|
|
|
|
||||
2 |
|
|
|
|
|
|
|
|
|
|
|
|
Приближенное значение функции y в точке
xi + h2
вычислим с помощью метода Эйлера:
|
y = yi + |
h |
f (xi , yi ) . |
|
||||||
|
|
|
|
|||||||
|
2 |
|
|
|
|
|
|
|
|
|
Выразим yi +1 из (16.14) и заменим |
|
|
|
|||||||
|
|
+ |
h |
|
|
|
|
|||
|
y xi |
|
|
|
|
|
||||
|
2 |
|
|
|
||||||
его приближением y |
|
|
|
|
|
|
|
|||
из (16.15) |
|
|
|
|
|
|
|
|||
или |
yi +1 = yi + h f ( xi , y) |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
h |
|
|
|
h |
|
|
||
yi +1 = yi |
+ h f xi + |
|
|
, yi + |
|
f ( xi |
, yi ) . |
|||
|
2 |
2 |
||||||||
|
|
|
|
|
|
|
||||
(16.14)
(16.15)
(16.16)
Схема(16.16)иестьусовершенствованныйметодЭйлера.Он также имеет второй порядок точности относительно шага h .
в) Усовершенствованный метод Эйлера-Коши с итерационной обработкой.
Вернемся к схеме (16.10):
y |
= y + |
h |
f |
( |
x |
, y |
− f |
( |
x |
|
, y |
|
|
i +1 |
|||||||||||
i +1 |
i |
2 |
|
i |
i ) |
|
|
i +1 ) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
- 72 -
Лекция 16 
Исходя из начального приближения yi(+01) = yi + h f ( xi , yi ) , сделаем не одну, а несколько итераций:
|
h |
, yi ) − f (xi +1, yi(+k1−1) ) , k =1,2,... |
|
yi(+k1) = yi + |
2 f (xi |
(16.17) |
Делать много итераций по формуле (16.17) не рекомендуется. (Обычно их выполняют не более 3-х, 4-х).
г) Уточненный метод Эйлера
В каждом узле xi (i = 1,2,...,n −1) производную y'( xi ) уравнения (16.1) заменим центральной разностью, а правую часть
f ( x, y) на f ( xi , yi ) .
Тогда получим следующую вычислительную схему для подсчета приближенного значения y( xi +1 ) :
|
yi +1 − yi −1 |
= f (xi , yi ) , |
(i = 1,2,3,...,n −1) |
|
|
2 h |
|
||
|
|
|
|
|
или |
|
|
|
|
yi +1 = yi −1 + 2h f (xi , yi ) , |
(i = 1,2,3,...,n −1) |
(16.18) |
||
которую будем называть уточненным методом Эйлера.
Этот метод является двухшаговым. Для вычисления yi +1 привлекаются два предыдущих значения: yi −1, yi .
Чтобы начать счет, нужно знать |
y0 |
и |
y1 . Начальное y0 из- |
||||||||||
вестно, а неизвестное y1 |
можно найти по формулам |
||||||||||||
y1 |
= y0 + |
h |
f ( x0 , y0 ) , |
||||||||||
|
|||||||||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
||
2 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
h |
|
|
|
|
|
|
y1 = y0 + h f |
x0 + |
, y1 |
. |
||||||||||
|
|||||||||||||
|
|
|
|
|
|
2 |
|
|
|
|
|
||
|
|
|
|
|
|
2 |
|
||||||
Далее считают по формулам (16.18).
Выводы
В лекции поставлены и освещены следующие вопросы, касающиеся решения задачи Коши: сеточная функция, локальная и глобальная погрешность. Для нахождения решения задачи Коши разобраны метод Эйлера и его модификация, метод Хой-
- 73 -
ЧИСЛЕННЫЕ МЕТОДЫ
на,методЭйлера-Коши,уточненныйметодЭйлера.Длякаждого метода приведены оценки погрешностей найденного решения. Все рассмотренные в лекции методы для решения однородных дифференциальных уравнений.
Вопросы для самопроверки
1.Является ли функция ex решением дифференциального уравнения y′(x) = y(x) ?
2.Является ли функция ex решением дифференциального уравнения y′(x) = 2y(x) ?
3.Сформулируйте задачу Коши для ОДУ. Приведите пример.
4.Укажите методы решения задачи Коши для ОДУ.
5.Изложите сущность численного решения задачи Коши для ОДУ.
6.Решите задачу Коши для ДУ
y′(x) = y(x) , y(0) =1
методом рядов.
7.Запишите решение задачи Коши для ДУ
y′(x) = f (x, y) , y(x0 ) = y0
в интегральной форме.
8.Приведите формулу метода Эйлера рения задачи Коши
y′(x) = f (x, y) , y(x0 ) = y0 .
9.Найдите решение задачи Коши для ДУ
y′(x) = y(x) , y(0) =1
методом Эйлера с шагом 0.1 на отрезке [0, 0.5] . Сравните полученное решение с аналитическим. Укажите погрешности в каждой точке сетки.
10. Приведите формулы метода Рунге-Кутты четвертого порядка для решения задачи Коши
y′(x) = f (x, y) , y(x0 ) = y0 .
Рекомендованная литература: 1–5, 8–11, 14–17.
- 74 -
Лекция 17 
Лекция 17.
МЕТОДЫ РУНГЕ-КУТТЫ
План
17.1.Постановка задачи.
17.2.Построение методов Рунге-Кутты.
17.3.Оценка погрешности.
17.4.Методы Рунге-Кутты для решения систем дифференциальных уравнений 1-го порядка.
17.5.Решения дифференциальных уравнений высших порядков методом Рунге-Кутты.
17.6.Многошаговые методы.
17.1. ПОСТАНОВКА ЗАДАЧИ
Пусть найдено приближенное решение yi |
≈ y( xi ) решения |
y = y( x ) задачи Коши |
|
y' = f ( x, y) , y( x0 ) = y0 |
(17.1) |
и требуется вычислить yi +1 ≈ y(xi +1 ) , где xi +1 = xi |
+ h . |
Запишем разложение решения по формуле Тейлора p -го порядка, принимая за базовую точку xi , т.е. по степеням x − xi , и положим в этом разложении x = xi +1 . Имеем:
y(xi +1 ) = y(xi ) + hy'(xi ) + h2 y''(xi ) + ... + 1 hp y( p) (xi ) + O(hp+1 ).(17.2)
2! p!
Идея построения явных методов Рунге-Кутты p-го порядка
заключается в получении приближений к значениям |
y( xi +1 ) по |
формуле вида |
|
yi +1 = yi + hφ (xi , yi ,h) , |
(17.3) |
где φ ( x, y,h) – некоторая функция, приближающая отрезок ряда Тейлора (17.2) до p-го порядка, и не содержащая частных производных функции f ( x, y) .
При φ (x, y,h) ≡ f (x, y) получим yi +1 = yi + hf (xi , yi ) , т. е. метод Эйлера можно считать примером метода Рунге-Кутты при p = 1.
- 75 -
ЧИСЛЕННЫЕ МЕТОДЫ
17.2. ПОСТРОЕНИЕ МЕТОДОВ РУНГЕ-КУТТЫ
Для построения методов Рунге-Кутты порядка выше 1-го функцию φ ( x, y,h) берут многопараметрической и подбирают ее параметры сравнением выражения (17.3) с многочленом Тейлора для y( x ) , соответствующей нужному порядку p.
Поясним это подробнее. Вводятся три набора параметров
α2 ,α3,...,αr ; (α )
β21,
β31,β32 , |
(β ) |
|
............ |
||
|
||
βr1,βr 2 ,...,βr,r −1; |
|
ρ2 ,ρ3,...,ρr ; (ρ )
выбором которых распорядимся следующим образом: с помощью параметров α и β составим величины
k1 = hf (x, y), |
|
|
k2 |
= hf (x + α2 h, y + β21k1 ), |
|
k3 |
= hf (x + α3h, y + β31k1 + β32 k2 ), |
|
................................................. |
|
|
kr = hf (x + αr h, y + βr1k1 + βr 2 k2 + ... + βr,r −1kr −1 ). |
|
|
Теперь положим |
|
|
|
yi +1 = yi + ρ1k1 + ρ2 k2 + ... + ρr kr . |
(17.4) |
Параметры (α ),(β ),(ρ ) подбирают так, чтобы разложение (17.2),(17.4)постепеням h совпадалидляпроизвольнойфункции f ( x, y) до членов с возможно более высокими степенями h .
На этом пути можно получить одношаговые явные методы Рунге-Кутты различных порядков точности.
1) Метод 1-го порядка точности при p =1 :
yi +1 = yi + hf (xi , yi ) |
(метод Эйлера) |
y( x0 ) = y0 , i =0,1,2,...
Точно также можно получить:
- 76 -
Лекция 17 
2) Метод 2-го порядка точности при p =2 :
yi +1 = yi + |
|
yi , где yi = ρ1k1 + ρ2 k2 |
|
а) yi = |
1 |
(k1 + k2 ) , |
|
2 |
|||
|
|
k1 = hf (xi , yi ),
k2 = hf (xi + h, yi + k1 ) |
(метод Хойна) |
|
|
или |
|
yi = h2 ( f (xi , yi ) + f (xi + h, yi + hf (xi , yi )));
б) yi = k2 ,
k1 = hf ( xi , yi ),
|
|
|
h |
|
k |
|
|
k2 |
= hf xi |
+ |
|
, yi + |
1 |
|
|
2 |
2 |
||||||
|
|
|
|
|
или
|
|
|
|
h |
|
|
h |
|
|
|
yi |
= h |
f xi |
+ |
|
, yi |
+ |
|
f (xi |
, yi ) |
|
2 |
2 |
|||||||||
|
|
|
|
|
|
|
|
(очень употребительный метод). 3) Метод 3-го порядка точности при p =3 :
yi +1 = yi + |
yi , где |
|
|
yi |
= ρ1k1 + ρ2 k2 + ρ3k3 ; |
|||||||||
yi = |
1 |
(k1 + 3k3 ) , |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
||||||||
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k1 = hf ( xi , yi ), |
|
|
|
|
|
|
|
|
||||||
k2 = hf |
|
+ |
|
h |
|
|
+ |
k |
|
|
||||
xi |
|
|
, yi |
|
1 |
, |
|
|||||||
3 |
3 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
k3 = hf |
|
+ |
|
2h |
|
|
+ |
|
2k |
|
||||
xi |
|
|
|
, yi |
|
|
2 |
; |
||||||
|
3 |
|
|
3 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
4) Метод 4-го порядка точности при p =4 :
yi +1 = yi + yi , где yi |
= ρ1k1 + ρ2 k2 + ρ3k3 + ρ4 k4 |
||
yi |
= |
k1 + 2k2 + 2k3 + k4 |
, |
|
|||
|
6 |
|
|
- 77 -
ЧИСЛЕННЫЕ МЕТОДЫ
k1 = hf ( xi , yi ), |
|
|
|
|
|
||||||
|
|
|
|
h |
|
|
|
k |
|
|
|
k2 |
= hf xi |
+ |
|
|
, yi |
+ |
|
1 |
|
, |
|
2 |
2 |
||||||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
h |
|
|
|
k |
|
|
|
k3 |
= hf xi |
+ |
|
|
, yi |
+ |
|
2 |
|
, |
|
|
2 |
|
2 |
|
|||||||
|
|
|
|
|
|
|
|
|
|||
k4 = hf ( xi + h, yi + k3 ).
Этот метод является наиболее употребительным в практике вычислений.
Метод 4-го порядка имеет на одном шаге локальную погрешность 5-го порядка
yi +1 − y(xi +1 ) ≤ Ch5 = O(h5 ) .
Глобальная погрешность:
yn − y(xn ) ≤ Ch4 = O(h4 ) .
17.3. ОЦЕНКА ПОГРЕШНОСТИ
Известна теоретическая оценка погрешности метода Рун- ге-Кутты. Пользоваться ею практически невозможно, поэтому для оценки погрешности пользуются правилом Рунге. Сущность его в следующем:
1)Вычисляется приближенное значение искомой функции
вточке xi с шагом h , т. е. находится yi(h) ;
2)Вычисляется приближенное значение искомой функции
вточке xi с шагом h / 2 , т. е. находится yi(h/2) , тогда погрешность метода вычисляется по формуле:
y(xi ) − yi(h/2) |
|
|
|
|
y(h/2) − y(h) |
|
|
|
|||
|
|
|
|
|
|||||||
|
≈ |
|
|
i |
|
|
i |
|
|
, |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
||||
|
|
|
2 |
p |
−1 |
||||||
|
|
|
|
|
|
|
|
||||
где p – порядок метода.
- 78 -
Лекция 17 
17.4.МЕТОДЫ РУНГЕ-КУТТЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 1-ГО ПОРЯДКА
Рассмотренные методы Рунге-Кутты могут быть использованы так же для решения систем дифференциальных уравнений. Покажем это для случая системы двух уравнений относительно искомых функций y = y(x) и z = z(x) вида
y′ = φ(x, y, z),z′ =ψ (x, y, z).
Начальные условия зададим в виде
y(x0 ) = y0 , z(x0 ) = z0 .
Теперь запишем формулы Рунге-Кутты четвертого порядка для системы двух уравнений:
|
= yi |
+ |
|
h |
(k1 + k2 + k3 |
+ k4 ), |
|
|
|
|
|
|
||||||||||
yi +1 |
|
|
|
|
|
|
|
|
|
|||||||||||||
6 |
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i =0,1, 2, |
||||||||
|
|
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
= zi |
+ |
|
(l1 + l2 |
+ l3 + l4 ). |
|
|
|
|
|
|
|
|
|||||||||
zi +1 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
6 |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
k1 = h φ(xi , yi , zi ) , |
|
|
|
|
|
|
||||||||||
|
k2 = h φ |
|
+ |
|
h |
|
|
+ |
k |
|
|
+ |
l |
|
|
|
, |
|||||
|
xi |
|
|
|
, yi |
1 |
|
, zi |
1 |
|
|
|||||||||||
|
2 |
|
2 |
2 |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
k3 = h |
φ |
|
+ |
|
h |
|
|
+ |
k |
|
|
+ |
l |
2 |
|
|
, |
||||
|
xi |
|
|
, yi |
2 |
|
, zi |
|
|
|
||||||||||||
|
2 |
2 |
|
2 |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
k4 = h φ ( xi + h, yi + k3, zi + l3 ) , l1 = h ψ (xi , yi , zi ) ;
|
|
|
|
h |
|
|
|
k |
|
|
l |
|
|
; |
|||
l2 |
= h ψ xi |
+ |
|
|
|
, yi |
+ |
|
1 |
, zi |
+ |
|
1 |
|
|
||
2 |
2 |
2 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
h |
|
|
|
k |
|
|
l |
2 |
|
|
; |
|||
l3 |
= h ψ xi |
+ |
|
|
, yi |
+ |
2 |
, zi |
+ |
|
|
|
|||||
2 |
2 |
2 |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
l4 = h ψ (xi + h, yi + k3, zi + l3 ) .
- 79 -
ЧИСЛЕННЫЕ МЕТОДЫ
17.5.РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ВЫСШИХ ПОРЯДКОВ МЕТОДОМ РУНГЕ-КУТТЫ
К решению систем уравнений сводятся также задачи Коши для уравнений высших порядков. Например, рассмотрим задачу Коши для уравнения второго порядка:
y′′ = f (x, y, y′) ,
y(x0 ) = y0 , y′(x0 ) = y0′ .
Введем вторую неизвестную функцию
z(x) = y′(x) . (z(x0 ) = y0′ )
Тогда сформулированная задача заменяется следующей:
z′ = f (x, y,z), |
, |
|
|
y′ = z, |
|
y(x0 ) = y0 , z(x0 ) = z0 . |
|
17.6. МНОГОШАГОВЫЕ МЕТОДЫ
Другой путь построения разностных схем основан на том, что длявычислениязначения yi +1 используютсярезультатынеодного предыдущего шага, а k предыдущих шагов, т. е. значения yi −k +1 , yi −k +2 ,…, yi . В этом случае получается k -шаговый метод.
Многошаговые методы могут быть построены следующим образом. Запишем исходное уравнение
y' = f ( x, y) , y( x0 ) = y0 . |
(17.5) |
в виде |
|
dy( x ) = f (x, y( x ))dx . |
(17.6) |
Проинтегрируем уравнение (17.6) по x |
на отрезке [xi , xi +1 ] . |
Интеграл от левой части легко вычисляется.
xi+1 |
dy(x ) = y(x ) |
|
xi+1 |
= y(xi +1 ) − y(xi ) ≈ yi +1 − yi . |
|
∫ |
|
(17.7) |
|||
|
xi |
||||
|
|
|
|||
xi |
|
|
|
|
|
Для вычисления интеграла от правой части уравнения (17.6)
строим сначала интерполяционный многочлен Pk −1(x) |
степени |
k −1 для аппроксимации функции f ( x, y( x )) на [xi , xi +1 ] |
по зна- |
чениям f (xi −k +1, yi −k +1 ) , f (xi −k +2 , yi −k +2 ) ,…, f ( xi , yi ) . |
|
- 80 -
