Точность метода Эйлера можно существенно повысить, улучшив аппроксимацию производной. Это можно сделать, например, используя среднее значение производной в начале и в конце интервала. В модифицированном методе Эйлера сначала по методу Эйлера вычисляется значение функции в следующей точке:
y*i+1 = yi + hf(xi,yi),
которое используется для вычисления приближённого значения производной в конце интервала f(xi+1, y*i+1). Вычислив среднее между этим значением производной и её значением в начале интервала, найдём более точное значение yi+1:
yi+1 = yi + h/2[ f(xi,yi) + f(xi+1, y*i+1 )].
Принцип метода проиллюстрирован на рис. 17.3. Для получения новой точки в нём требуется информация о двух других точках – предыдущей и промежуточной. Ошибка этого метода на каждом шаге имеет порядок h2.
Рис.17.3. Принцип модифицированного метода Эйлера
Пример 2. Разработать, сохранить и выполнить программу для решения дифференциального уравнения из примера 1 модифицированным методом Эйлера (при выполнении расчетов использовать хранение результатов в массивах):
Program ModEuler;
Uses Crt;
Var
xn,xk,yn,yw,h:real;
i,n:integer;
x,y:array [1..20] of real;
Function f(x,y:real):real;
begin
f:=2*x*x+2*y;
end;
Begin
ClrScr;
Writeln(' Решение дифференциального уравнения ');
Writeln(' dy/dx=2x^2+2y модифицированным методом Эйлера ');