Решение уравнений первого порядка
Рассмотрим дифференциальное уравнение первого порядка:
Требуется найти решение на интервале [x0,xn], удовлетворяющее начальному условию y(x0) = y0.
Для приближённого решения дифференциального уравнения интервал [x0,xn]разбивается на n частей с шагом h:
xi+1 = xi + h, i = 0, 1, 2, …, n – 1.
В полученных точках вычисляются значения yi.
Метод Эйлера. Согласно методу Эйлера, значения yi определяются по формуле:
yi+1 = yi + h × f(xi, yi).
Алгоритм метода Эйлера:
1. Ввод n, конечного значения xn, начального значения x0 (в переменную x),ввод y0(в переменную y).
2. Вычисление h = , x = x0, y = y0.
3. Вывод x, y.
4. Вычисление y = y + h × f(x, y), x = x + h.
5. Если x > xn, то переход к п. 6, иначе – переход к п. 3.
6. Конец вычислений.
Для получения достоверных результатов значение h должно быть достаточно мало, при этом можно не выводить все получающиеся значения xиy. Целесообразно внести изменения в алгоритм программы так, чтобы вычисления проводились с малым шагом, а вывод результатов − с большим.
Метод Рунге-Кутта. Расчетные формулы метода Рунге-Кутта четвертого порядка имеют вид:
k1 = h × f(xi, yi),
k2 = h × f(xi + , yi +
),
k3 = h × f(xi + , yi +
),
k4 = h × f(xi + h, yi + k3),
yi+1 = yi + × (k1 + 2 × k2 + 2 × k3 + k4),
xi+1 = xi + h, i = 0, 1, 2, …, n – 1.
Для разработки программы, реализующей метод Рунге-Кутта можно использовать тот же алгоритм, что и для метода Эйлера, внеся в него соответствующие изменения.
Системы дифференциальных уравнений и уравнения высших порядков
Система дифференциальных уравнений m-го порядка имеет вид:
Для решения системы на отрезке [x0, xn] должны быть заданы начальные условия: y1(x0) = y10, y2(x0) = y20 , …, ym(x0) = ym0. Решением системы m-го порядка будут m функций, удовлетворяющих начальным условиям. Чтобы определить эти функции можно использовать метод Эйлера или Рунге-Кутта (или любой другой метод), применяя их к каждому уравнению последовательно.
Уравнения высших порядков сводятся к системам дифференциальных уравнений путем введения новых переменных.
Пример. Требуется решить уравнение y² +2 × y¢ – y + 4 × x = 5 на отрезке [1; 1.3]. Начальные условия: y(1) = 2, y¢(1) = 0. Шаг h = 0.1. Здесь шаг выбран большим, чтобы было проще продемонстрировать вычисления, сделанные вручную.
Введем новую переменную z = y¢. Тогда исходное уравнение записывается в виде системы двух уравнений первого порядка:
y¢ = z,
z¢ = –2 × z + y – 4 × x + 5.
Начальные условия: y(1) = 1, z(1) = 0. Решим данную систему методом Эйлера:
y(1.1) = 2 + 0.1×0 = 2,
z(1.1) = 0 + 0.1 × (–2 × 0 + 2 – 4 × 1 + 5) = 0.3,
x = 1 + 0.1 = 1.1,
y(1.2) = 2 + 0.1 × 0.3 = 2.03,
z(1.2) = 0.3 + 0.1 × (–2 × 0.3 + 2 – 4 × 1.1 + 5) = 0.5,
x = 1.1 + 0.1 = 1.2,
y(1.3) = 2.03 + 0.1 × 0.5 = 2.08,
z(1.3) = 0.5 + 0.1 × (–2 × 0.5 + 2.03 – 4 × 1.2 + 5) = 0.623,
x = 1.2 + 0.1 = 1.3.
Решение: x = 1, y = 2, z = 0.
x = 1.1, y = 2, z = 0.3.
x = 1.2, y = 2.03, z = 0.5.
x = 1.3, y = 2.08, z = 0.623.