У нас есть следующие математические формулы для решения дифференциальных уравнений по методу Эйлера
x n + 1 = x n + h
y n + 1 = y n + h * f (x n , y n )
Предположим, что мы получили y (x 0 ) = любое значение, тогда у нас есть x 0 и y 0 , а также h был предоставленпользователь.
У меня возникла проблема, чтобы понять, как я могу принять функцию f (x n , y n ) от пользователя, поскольку функция может быть либоалгебраическая, тригонометрическая, экспоненциальная или логарифмическая, и функция будет иметь тип dy / dx = (выражение). Программный код должен быть в состоянии решить любое дифференциальное выражение, введенное пользователем, и ответы приближений должны быть правильными до 4 десятичных знаков,
Можно принять выражение в виде строки, но я не смогу выполнять вычисления для строки. Любые предложения или решения приветствуются.
Сайт метода Эйлера: http://calculuslab.deltacollege.edu/ODE/7-C-1/7-C-1-h-c.html
Пример ввода:
выражение ввода:
dy / dx = x + 2y
ввод начальных условий:
x 0 = 0, y 0 = 0
введите размер шага: h = 0,25
введите желаемое значениенайти решение для: x = 1
Пример вывода:
вывод