logo search
Информатика и КГ_2014

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

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

Требуется найти решение на интервале [x0, xn], удовлетворяющее начальному условию y(x0) = y0.

Для приближённого решения дифференциального уравнения интервал [x0, xn] разбивается на n частей с шагом h:

xi+1 = xi + h, i = 0, 1, 2, …, n1.

В полученных точках вычисляются значения 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 = hf(xi, yi),

k2 = hf(xi + , yi + ),

k3 = hf(xi + , yi + ),

k4 = hf(xi + h, yi + k3),

yi+1 = yi +  (k1 + 2  k2 + 2  k3 + k4),

xi+1 = xi + h, i = 0, 1, 2, …, n – 1.

Для разработки программы, реализующей метод Рунге-Кутта можно использовать тот же алгоритм, что и для метода Эйлера, внеся в него соответствующие изменения.