Метод Эйлера для расчета дифференциальных уравнений имеет небольшую точность расчета. точность расчета у него зависит от размера шага линейно, зависимость точности от шага — первой степени. То есть, чтобы увеличить точность в 10 раз, надо уменьшить шаг в 10 раз. На практике интересуются более совершенными методами. Вопрос стоит так: можно ли увеличить точность на порядок, но при этом сэкономить на количестве вычислений? Да, такие методы есть.
Модифицированный метод Эйлера имеет точность второго порядка. В методе Эйлера производная берется в начале шага и по ней прогнозируется движение системы на конец шага, считая, что во время шага производная неизменна. То есть в течение всего шага производная считается той, какой она была в самом начале шага. Это основной источник неточности.
Улучшение метода состоит в том, что берется производная не в начале шага, а как промежуточное или среднее на разных участках одного шага. В разных вариантах метода вычисляют несколько производных в разных частях шага и усредняют их. Конечно, в этом случае число вычислений увеличивается, — но не в десятки раз, — а вот точность возрастает на порядок, в этом и состоит выигрыш.
Пусть требуется решить уравнение y’=f(x,y,t)
Идея уточненного метода Эйлера состоит в том, что производную вычисляют не в i-ой точке, а между двумя соседними точками: i иi + 1. Данная процедура состоит из следующих шагов:
в точке i вычисляют значение производной: f(xi,yi,t)
делают пол-шага и вычисляют значение функции на середине отрезка: yi+1/2=yi+f(xi,yi,t)*Δt/2
в точке i + 1/2 вычисляют производную: f(x(i+1/2),y(i+1/2),t+Δt/2)
делается полный шаг из точки i в точку i + 1 по значению уточненной производной: y(i+1) = yi+f(x(i+1/2),y(i+1/2),t+Δt/2)*Δt
значение t увеличивается: t:=t+Δt. Вся процедура повторяется сначала
Данный метод обладает точностью O^2(h), то есть на порядок выше, чем метод Эйлера, при увеличении числа вычислений всего в 2 раза.