Что делает этот калькулятор
Этот инструмент численно решает обыкновенное дифференциальное уравнение первого порядка вида \(y' = F(x, y)\) с заданным начальным условием \(y(x_0) = y_0\) на отрезке от \(x_0\) до \(x_n\). В его основе — классический метод Рунге-Кутты четвёртого порядка (RK4), один из самых популярных и надёжных одношаговых методов в численном анализе. Результатом становится таблица точек \((x_i, y_i)\), которые приближают истинное решение, а также итоговое значение \(y(x_n)\). Это чисто математический инструмент: он не привязан к какой-либо стране или системе единиц.
Как пользоваться
Введите правую часть \(F(x,y)\) как выражение от x и y (например, 1-y^2, x+y, x*y или sin(x)+y). Поддерживаются операторы + - * / ^ и функции sin, cos, tan, exp, log, ln, sqrt, abs, tanh, а также константы pi и e. Задайте начало \(x_0\), начальное значение \(y_0\), конец \(x_n\) и выберите, на сколько равных частей \(n\) разбить отрезок. Чем больше разбиений, тем выше точность: глобальная погрешность RK4 убывает пропорционально \(h^4\).
Разбор формулы
Отрезок делится на \(n\) равных шагов шириной \(h = (x_n - x_0)/n\). На каждом шаге метод RK4 четырежды вычисляет наклон: один раз в начале (\(k_1\)), дважды в середине (\(k_2, k_3\)) и один раз в конце (\(k_4\)). Следующее значение — это взвешенное среднее:
$$y_{n+1} = y_n + \frac{k_1 + 2k_2 + 2k_3 + k_4}{6}$$Такая комбинация компенсирует члены погрешности вплоть до четвёртого порядка, давая локальную погрешность усечения \(O(h^5)\) и глобальную погрешность \(O(h^4)\).
Разобранный пример
Решим \(y' = 1 - y^2\) при \(x_0 = 0\), \(y_0 = 0\), \(x_n = 1\) и \(n = 10\) (\(h = 0.1\)). Точное решение — \(y = \tanh(x)\). Первый шаг RK4 даёт \(y_1 = 0.0996679\), что совпадает с \(\tanh(0.1) = 0.0996680\). После всех десяти шагов получаем \(y(1) = 0.7615942\), совпадающее с \(\tanh(1) = 0.7615942\) с точностью до семи знаков.
Частые вопросы
Чем RK4 лучше метода Эйлера? Метод Эйлера использует один наклон на шаг (погрешность \(O(h)\)). RK4 берёт четыре наклона и усредняет их, достигая точности \(O(h^4)\) при том же размере шага, поэтому для нужной точности требуется намного меньше шагов.
Сколько шагов выбрать? Начните с 50. Если решение гладкое, этого обычно достаточно; для быстро меняющихся или почти жёстких задач увеличьте до 100, 200 или 500.
Что делать, если появляется NaN или бесконечность? Решение могло разойтись, либо при вычислении \(F(x,y)\) возникла недопустимая операция (например, логарифм отрицательного числа или деление на ноль). Проверьте выражение и попробуйте меньший интервал или большее число шагов.