Что делает этот калькулятор
Этот инструмент численно решает обыкновенное дифференциальное уравнение второго порядка вида \(y'' = F(x, y, y')\) на отрезке \([x_0, x_n]\) с помощью классического метода Рунге — Кутты четвёртого порядка (РК4). Вы задаёте правую часть \(F\) как математическое выражение от \(x\), \(y\) и \(p\) (где \(p\) — это \(y'\)), начальные условия \(y(x_0)\) и \(y'(x_0)\), границы отрезка и число шагов. На выходе вы получаете полную таблицу значений \(x\), \(y\) и \(y'\), а также значения на правом конце отрезка. Это чистый численный анализ, который применим повсеместно и не зависит от страны.
Как пользоваться
Введите \(F(x, y, p)\) — например, -4*p - 4*y для уравнения \(y'' + 4y' + 4y = 0\). Задайте \(x_0\), \(y_0 = f(x_0)\) и \(p_0 = y'(x_0)\). Укажите правый конец \(x_n\) и выберите число подынтервалов \(n\) (чем больше шагов, тем меньше шаг \(h = (x_n - x_0)/n\) и выше точность). Выберите, сколько значащих цифр выводить. Глобальная погрешность метода РК4 имеет порядок \(O(h^4)\), поэтому удвоение \(n\) уменьшает ошибку примерно в 16 раз.
Разбор формулы
ОДУ второго порядка сводится к системе из двух уравнений первого порядка подстановкой \(p = y'\): тогда \(y' = p\) и \(p' = F(x, y, p)\). На каждом шаге РК4 продвигает обе неизвестные, вычисляя четыре взвешенные оценки наклона (\(k\) для \(y\) и \(j\) для \(p\)) и объединяя их по формулам \((k_1 + 2k_2 + 2k_3 + k_4)/6\) и \((j_1 + 2j_2 + 2j_3 + j_4)/6\).
$$y'' = F(x,\,y,\,p), \qquad p = y'$$$$h = \frac{x_n - x_0}{n}$$
Разобранный пример
Возьмём \(y'' = -4p - 4y\) при \(x_0 = 0\), \(y_0 = 0\), \(p_0 = 1\), \(x_n = 1\) и одним грубым шагом (\(n = 1\), \(h = 1\)). Четыре этапа дают \(k_1 = 1\), \(k_2 = -1\), \(k_3 = 2\), \(k_4 = -5\) и \(j_1 = -4\), \(j_2 = 2\), \(j_3 = -6\), \(j_4 = 12\). Тогда $$y(1) = \frac{1 - 2 + 4 - 5}{6} = -\frac{1}{3} = -0{,}3333,$$ а $$p(1) = 1 + \frac{-4 + 4 - 12 + 12}{6} = 1.$$ Точное решение — \(y = x \cdot e^{-2x}\), так что \(y(1) = e^{-2} = 0{,}1353\); один огромный шаг \(h = 1\) слишком груб. При \(n = 50\) или \(100\) результат сходится точно к истинному значению.
Частые вопросы
Можно ли интегрировать в обратную сторону? Да — задайте \(x_n\) меньше \(x_0\), и шаг \(h\) станет отрицательным, интегрируя от \(x_0\) вниз к \(x_n\).
Почему при малом числе шагов ответ выглядит неверным? Точность РК4 зависит от малого шага. Увеличивайте \(n\), пока соседние результаты не перестанут меняться.
Какие функции можно использовать в F? + − * / ^, скобки, а также sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, log/ln, log10, sqrt, abs и константы pi и e.