Материал: 5544

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

в точке xk будем обозначать y xk , а некоторое приближение этого значения – через yk . По условию y x0 y0 .

Разделив a; b на n частей, получим точки a x0 x1 x2 xn 1 xn b .

В точках с номерами 1,2,...,n приближённое значение функции находим по формуле

 

 

 

 

yk 1 yk xk 1

xk f xk , yk ,

(4.5)

подставляя соответственно k 0,1, n 1.

 

 

 

 

 

 

 

 

Если отрезок разделён на одинаковые части, то величина xk 1

xk постоянна и

равна h, где h

b a

. Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yk 1

yk

hf xk , yk

 

 

(4.6)

для k 0,1, n 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисления закончены,

когда k n , т. е. когда найдено yn

– приближённое

значение функции в точке b. В ответе указываем таблицу значений в виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

a

x1

 

x2

 

xn 1

 

b

 

 

 

 

 

y

 

y0

y1

 

y2

 

yn 1

 

yn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4.7)

Если y xk – точное значение, то величина

 

yk y xk

 

 

– погрешность в точке xk .

 

 

Замечание. Если начало отрезка a x0 , достаточно при движении от точки x0 влево к точке a считать, что шаг h 0 . Если же a x0 , в ответе не надо ука-

зывать результаты в точках xk a .

Нахождение приближённых значений ук в точках хк к точным значениям у(хк) в этих же точках неизвестного решения у(х) задачи Коши (4.4) по формулам (4.5) или (4.6) и есть метод Эйлера численного решения этой задачи. Сущность метода состоит в том, что производная y дифференциального уравнения (4.1)

заменяется разностным отношением

yk 1 yk

xk 1 xk

в случае произвольного (неравномерного) разбиения отрезка [a, b] на части и разностным отношением

yk 1 yk

h

66

в случае разбиения этого отрезка с одинаковым (равномерным) шагом h. Во второй ситуации вместо нахождения точного решения у(х) задачи (4.4.) ищется решение алгебраического уравнения

yk 1 yk

f x

 

, y

 

 

h

k

k

 

 

 

 

 

 

 

 

с неизвестными числами у1,…,уn при известном начальном значении у0, структура которого напоминает дифференциальное уравнение (4.1) и которое приводит к явной формуле (4.6) нахождения этих значений. Аналогичную трактовку имеет и явная формула (4.5), которая следует из уравнения

yk 1 yk f xk , yk . xk 1 xk

В § 5 будут обсуждены вопросы приближения (аппроксимации) производных их разностными отношениями.

Обратимся к таблице (4.7), задающей некоторую функцию, которую можно интерполировать каким-нибудь способом на весь отрезок [a, b] (см. § 1).

Простейшим способом является соединение точек

M k xk , yk прямолинейными

отрезками в прямоугольной системе координат

Оху. Координаты точек Мк

(к=0,1,…,n) определяются таблицей (4.7). Ломаная, соединяющая точки Мк,

называется ломаной Эйлера.

Для определённости рассмотрим только формулу (4.6) с равномерным нача-

лом приближения. Обозначим ломаную Эйлера в этом случае через yh* (x)n . Так как соответствующее разностное отношение приближает производную y , то естественно ожидать, что при h 0 ломаные Эйлера yh* (x)n приближаются к графику искомой интегральной кривой (графику искомого решения у(х) задачи (4.4). Следовательно, с уменьшением шага h метод Эйлера должен давать всё более точные приближения к искомому решению.

Отметим ещё, что метод ломаных Эйлера применяется и для доказательства теоремы существования и единственности решения задачи Коши (4.4) при весьма общих требованиях к функции f(x,y) как функции двух переменных. Однако такие тонкие вопросы выходят за рамки программы этой дисциплины.

Пример. Решим методом Эйлера уравнение y x при условии y 2 1 на y 2

отрезке 2;4 .

67

 

Решение.

Разделим исходный

отрезок

на

пять

 

равных

частей,

тогда

h

 

4 2

0,4 . Получаем точки x

 

2; x 2,4;

x

 

 

 

2,8;

x

 

3,2;

x

 

3,6; x

 

4.

 

 

0

2

3

4

5

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Правая

часть

 

уравнения

 

имеет

 

 

вид

 

 

 

 

f x, y

x

.

 

По

условию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y 2

 

y

0

y x

y 2 1.

Затем находим значение у(х) в точке х1

по формуле (4.6):

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y 2,4 y 2 hf 2,1 ,

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y 2,4 1,000 0,4

 

 

 

1,267 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значения у(х) в остальных точках х2, х3, х4, х5

находим по той же формуле

(4.6) с учётом найденных предыдущих ук:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y 2,8 1,267 0,4

 

2,4

 

 

 

1,561;

 

 

 

 

 

 

y 3,2 1,561 0,4

 

 

 

2,8

 

 

1,874;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,267 2

 

 

 

 

 

1,561 2

 

 

y 3,6 1,874 0,4

 

 

3,2

 

 

2,204;

 

 

 

 

 

 

y 4 2,204 0,4

 

 

 

 

3,6

 

 

2,547.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,874 2

 

 

 

 

 

 

2,204 2

 

Ответ:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

2

 

 

 

2,4

 

 

2,8

 

 

3,2

 

 

 

 

3,6

 

 

 

4,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

1

 

 

 

1,267

 

1,561

 

1,874

 

 

2,204

 

 

2,547

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача допускает точное решение y

 

 

 

x2 5 2 . Таблица значений, найден-

ных по этой формуле с точностью до третьего знака, имеет вид

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х

2

2,4

 

2,8

 

 

3,2

 

 

3,6

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у

1

1,280

 

1,583

 

1,904

 

 

2,238

 

2,582

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для значения

y 4

абсолютная ошибка (погрешность)

вычисления составляет

0,035, а относительная ошибка – почти 2%.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.2. Метод Рунге – Кутта

Метод Эйлера легко программируется, но его точность невысока. В первой точке погрешность пропорциональна квадрату шага, в последней точке пропорциональна самому шагу. Для повышения точности в 10 раз, то есть на знак после запятой, приходится уменьшать шаг в 10 раз. Точность можно повысить, применяя метод Рунге – Кутта по следующей схеме.

Шаг 1. Решим задачу Коши методом Эйлера с шагом h1 ; получим значения yk в точках x0 , x1 , , xn , где xk x0 h1k .

68

 

Шаг 2. Решим задачу тем же методом с шагом h2 0,5h1 ; получим значения

yk

в точках x0 , x1 , , xm , где xk x0 h2k и m 2n .

 

 

 

Точки x

с чётными номерами совпадут с точками, полученными при шаге h1 ,

а именно, xk

x2k .

 

 

 

 

 

 

 

 

 

 

Шаг 3. Обозначим t0 , t1 , , tn – точки, в которых значения получены дважды,

а значения функции в них обозначим y0 , y1 , , yn

и y0 , y1 , yn ( y0

y0 ).

 

Пересчитаем новые приближённые значения в точках t0 , t1 , , tn по формуле

~

yk 2 yk (формула равносильна

~

 

 

yk

yk ).

 

 

yk

yk yk

 

 

 

Шаг 4. В ответе указываем таблицу значений

~

 

 

 

 

yk в точках tk .

 

 

 

Замечание. Уточнение подобным методом возможно и при других соотно-

шениях между h1 и h2 , однако при h2

0,5h1

пересчёт наиболее прост.

 

Пример.

Решим методом Рунге – Кутта уравнение y 2x 1 при условии

y 0 3 на отрезке 0;5 .

 

 

 

 

 

 

 

 

 

 

Решение. Шаг 1. Выбираем n 5, тогда h

5 0

1 .

 

 

 

 

 

 

 

 

 

 

 

 

1

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По условию y 0 3, остальные значения находим по формуле (4.6):

 

y1 3 1 2 0 1 4;

 

 

 

 

 

 

 

 

 

 

y2 4 1 2 1 1 7;

 

 

 

 

 

 

 

 

 

 

y3 7 1 2 2 1 12;

 

 

 

 

 

 

 

 

 

 

y4 12 1 2 3 1 19;

 

 

 

 

 

 

 

 

 

 

y5 19 1 2 4 1 28.

 

 

 

 

 

 

 

 

 

 

Шаг 2. Выбираем n 10 , тогда h

 

5 0

 

0,5 . По-прежнему y

 

3 , но теперь

 

 

0

 

 

2

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

точек в 2 раза больше. Находим

 

 

 

 

 

 

 

 

 

 

y 0,5 3 0,5 2 0 1 3,5;

 

 

 

 

y 1,0 3,5 0,5 2 0,5 1 4,5;

 

y 1,5 4,5 0,5 2 1 1 6,0;

 

 

 

 

y 2,0 6,0 0,5 2 1,5 1 8,0;

 

y 2,5 8,0 0,5 2 2 1 10,5;

 

 

 

 

y 3,0 10,5 0,5 2 2,5 1 13,5;

 

y 3,5 13,5 0,5 2 3 1 17,0;

 

 

 

 

y 4,0 17,0 0,5 2 3,5 1 21,0;

 

y 4,5 21,0 0,5 2 4 1 25,5;

 

 

 

 

y 5,0 25,5 0,5 2 4,5 1 30,5.

Шаг 3. В точках x = 1, 2, 3, 4, 5 приближённые значения найдены дважды. Пересчитываем:

69

 

 

 

~

 

4 2 4,5 5;

 

 

 

 

 

y1

 

 

 

 

 

~

 

7 2 8,0 9;

 

 

 

 

 

y2

 

 

 

 

 

~

 

12 2 13,5 15;

 

 

 

 

 

y3

 

 

 

 

 

~

 

19 2 21 23;

 

 

 

 

 

y4

 

 

 

 

 

~

 

28 2 30,5 33.

 

 

 

 

 

y5

 

 

Шаг 4. Ответ:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х

0

1

 

2

 

3

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

у

3

5

 

9

 

15

23

33

 

 

 

 

 

 

 

 

 

 

 

Уравнение имеет точное решение y x2

x 3,

получаемое простым инте-

грированием. Решение, уточнённое методом Рунге – Кутта, совпадает с точным. Заметьте, как при большом шаге результаты вычислений методом Эйлера отличаются от настоящих (точных).

В общем случае метод Рунге – Кутта имеет 2-й порядок точности O h2 и абсолютно точен, если настоящее решение – полином не выше 2-й степени. Уменьшение шага h в 10 раз повышает точность (уменьшает погрешность) в 100 раз, то есть на два десятичных знака.

4.3. Методы "Предиктор-Корректор" 2-го порядка точности

Метод Эйлера дает невысокую точность, а метод Рунге – Кутта не очень удобно программировать. Идея методов "Предиктор-Корректор", часто называемых "Счёт-Пересчёт" – использовать вспомогательные значения функции в точках между соседними узлами отрезка. С геометрической точки зрения при этом происходит движение в направлении касательной к графику искомой функции, но с учётом его выпуклости.

Как обычно, решаем задачу (4.4) на отрезке a; b , где без потери общности

ax0 . Отрезок делим на n равных частей и получаем шаг h b a / n , при этом xk x0 kh .

Способ 1. Пусть найдено приближённое решение

yk в точке xk . На следую-

щем шаге находим вспомогательное значение y* y

k

0,5hf x

, y

k

, тогда значе-

 

 

 

 

 

 

 

k

 

 

ние в следующей узловой точке находится по формуле

 

 

 

y

k 1

y

k

hf x

k

0,5h; y* .

 

 

 

(4.8)

 

 

 

 

 

 

 

 

 

70

Источник: https://studfile.net/preview/16711204/