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

Численные методы. Ч.2. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

Лекция 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 + (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 -

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]