
3. Решение дифференциальных уравнений
Решить дифференциальное уравнение y' = f(x, y) численным методом – это значит для заданной последовательности аргументов x0, x1, …, xn и числа y0, не определяя функцию y = F(x), найти такие значения у1, у2, …, yn, что yi = F(xi) (i = 1, 2, …, n) и F(x0) = y0. Другими словами, численные методы позволяют вместо нахождения функции y = F(x), получить таблицу значений этой функции для заданной последовательности аргументов. Величина h = xk – xk-1 называется шагом интегрирования.
Для решения данной задачи используются различные численные методы, среди которых наиболее простым является метод Эйлера.
3.1. Метод Эйлера
Пусть дано дифференциальное уравнение первого порядка
y' = f(x, y) (3.1)
с начальными условиями
x = x0, у(x0) = y0.
Требуется найти решение уравнения (3.1) на отрезке [a, b].
Разобьем отрезок [a, b] на n равных частей и получим последовательность
x0, x1, …, xn, где xi = x0 + i·h (i = 0, 2, …, n), а h = (b – a)/n – шаг сетки. Величина h
= ∆ xm = xm+1 - xi обычно выбирается постоянной и достаточно малой. При численном решении задачи вычисляются приближенные значения yi (xi) ≈ yi в узлах сетки xi (i = 0, 2, …, n).
Идея метода состоит в том, что при малом шаге сетки h производная искомой функции y'(xi) может быть приближенно заменена конечными разностями
y (xi ) |
yi |
|
yi 1 yi |
, |
(3.2) |
|
h |
||||||
|
xi |
|
|
|
||
где yi – значение функции в узле xi. |
|
|
||||
Тогда y'(xi)·h = yi+1 - yi, отсюда |
yi+1 = yi+ y'(xi)·h, а, так как y'(xi) = f(xi, yi), |
|||||
то |
|
|
|
|
|
|
yi+1 = |
yi |
+ h·f(xi,yi). |
|
(3.3) |
То есть на каждом отрезке [xi, xi+1] выражение (3.1) можно заменить приближенным выражением (3.3).

Зная начальное значение y0 и используя соотношение (3.3), можно последовательно от узла xi к узлу xi+1 определить все искомые значения yi+1.
На практике, как правило, применяют «двойной просчет». Сначала расчет ведется с шагом h, затем шаг дробят и повторный расчет ведется с шагом h/2 и
т.д.
Для достижения требуемой точности ε численного решения необходимо выполнение условия: |y2n - yn| < ε.
Пример 3.1. Используя метод Эйлера, составить на отрезке [0, 1] таблицу значений решения дифференциального уравнения
y y 2yx
с начальными условиями x0 = 0, y0 = 1, выбрав шаг h = 0,2.
Решение.
Результаты вычислений представим в табл. 3.1. Заполняется она следующим образом:
1) В первую строку, соответствующую значению i = 0, запишем начальные условия: x0 = 0, y0 = 1. По ним вычислим значение f(x0, y0):
f (x0 , y0 ) y0 2yx00 1 210 1,
а затем значение ∆y0. Из (3.2) и (3.1) имеем
∆y0 = y'(x0)· ∆x0 = y'(x0)·h = f(x0, y0) ·h,
следовательно, ∆y0 = h·f(x0, y0) = 0,2·1 = 0,2.
Отсюда по формуле (3.3) для i = 0 получим
y1 = y0 + h·f(x0, y0) = y0+ ∆y0 = 1 + 0,2 = 1,2.
2) Значения x1 = x0 + h = 0 + 0,2 = 0,2 и соответствующее ему значение y1 =1,2 запишем во вторую строку таблицы, соответствующую i = 1.

Таблица 3.1
Для x1 = 0,2 и y1 = 1,2 вычислим f(x1, y1).
f (x1 , y1) y1 2x1 1,2 2 0,2 1,2 0,3333 0,8667. y1 1,2
Затем вычислим
∆y1 = h·f(x1, y1) = 0,2·0,8667 = 0,1733.
Тогда по формуле (3.3) вычислим значение y2, положив i = 1:
y2 = y1 + h·f(x1, y1) = y1+ ∆y1 = 1,2 + 0,1733 = 1, 3733.
3) Значения x2 = x1 + h = 0,2 + 0,2 = 0,4 и соответствующее ему значение y2 =1,3733 запишем в третью строку таблицы (i = 2).
Аналогично следует выполнить вычисления для i = 2, 3, 4, 5 (см. табл. 3.1). На рис. 3.1 и 3.1 - а показано выполнение данных вычислений в Excel.
Режим решений Рис. 3.1

Режим формул Рис. 3.1– а
Пример 3.2. Используя метод Эйлера, составить на отрезке [0; 1,5] таблицу значений решения дифференциального уравнения
y 12 xy
с начальным условием x0 = 0, y0 = 1,5, выбрав шаг h = 0,25.
Решение выполним в таблице по форме 3.1.
Форма 3.1
Метод Эйлера легко распространяется на решение дифференциальных уравнений высших порядков. Для этого такое дифференциальное уравнение надо предварительно привести к дифференциальному уравнению первого порядка.
Пусть дано дифференциальное уравнение
y'' = f(x, y, y') |
(3.4) |
сначальными условиями
x= x0, у(x0) = y0, у'(x0) = y'0.
Требуется найти решение уравнения (3.4) на отрезке [a, b].
С помощью подстановки y' = z, y'' = z' заменим уравнение (3.4) системой уравнений
|
y z |
|
|
y(x0 ) y0 |
. |
|
||||
|
|
и |
|
|
z0 |
y0 |
(3.5) |
|||
z f (x, y, z) |
z(x0 ) |
|
||||||||
Таким образом, f1(x, y, z) = z, f2(x, y, z) = f(x, y, z) |
и задачу можно записать в |
|||||||||
общем виде: |
|
|
|
|
|
|
|
|
|
|
y f (x, y, z) |
|
|
y(x |
|
) y |
0 . |
|
|
||
|
1 |
и |
|
|
0 |
|
|
|
(3.6) |
|
z f2 (x, y, z) |
|
z(x0 ) z0 |
|
Пример 3.3. Используя метод Эйлера, составить на отрезке [1; 1,5] таблицу значений решения дифференциального уравнения
y |
y |
y 0 |
(3.7) |
|
x |
||||
|
|
|
с начальными условиями y = 0,77, y' = -0,44 и выбрав шаг h = 0,1.
Решение. С помощью подстановки y' = z, y'' = z' заменим уравнение (3.4) системой уравнений
y' = z, z |
z |
|
y |
(3.5) |
|||
x |
|||||||
с начальными условиями y0(1) = 0,77 |
|
z0 = -0,44. |
|
||||
|
и |
|
|||||
Таким образом, |
|
|
|
|
z |
|
|
f1(x, y, z) = z, |
f2(x, y, z) = |
y. |
|||||
x |
|||||||
|
|
|
|
|
|
Результаты вычислений запишем в таблице Excel (рис. 3.2, 3.2 – а). Заполняется она следующим образом:
в первую строку i = 0 запишем начальные условия: x0 = 1,0, y0 = 0,77, z0 = - 0,44.
Используя их, вычислим
f10(x0, y0, z0) = z0 = -0,44,

f20(x0, y0, z0) = |
z0 |
y0 0,44 0,77 0,33, |
||
x0 |
||||
|
1,0 |
|||
а затем |
|
|
||
∆y0 = h·f10 = 0,1·(-0,44) = -0,044, |
y1 = y0 + ∆y1 = |
0,77 + (-0,044) = 0,726, |
||
∆z0 = h·f20 = 0,1·(-0,33) = -0,033, z1 = z0 + ∆z1 = |
-0,44 + (-0,033) = -0,473. |
Таким образом, во вторую строку таблицы, соответствующую i = 1, можно записать:
y1 = 0,726, z1 = -0,473.
По этим значениям можно вычислить
f11(x1, y1, z1) = z1 = -0,473,
f21(x1, y1, z1) = |
z1 |
y1 |
|
0,473 |
0,726 0,296, |
|
x1 |
1,1 |
|||||
|
|
|
|
а затем
∆y1 = h·f11 = 0,1·(-0,473) = -0,047, y2 = y1 + ∆y1 = 0,726 + (-0,047) = 0,679,
∆z1 = h·f21 = 0,1·(-0,296) = -0,030, z2 = z1 + ∆z1 = -0,473 + (-0,030) =-0,503.
Аналогично следует выполнять вычисления для i = 2, 3, 4, 5 (см. рис. 3.2).
Режим формул Рис. 3.2