Решение уравнений первого порядка

Рассмотрим дифференциальное уравнение первого порядка:

Требуется найти решение на интервале [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, (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.