Недавно я опубликовал на сайте "Метод с одноразовой корректировкой".
Но вообще-то, корректирующих методов может быть много. "Простой корректирующий метод" - ещё один из этого набора численных методов.
Этот метод действительно очень прост. И хотя этим методом можно и вычислять интегралы, и решать дифференциальные уравнения, я объясню его на примере вычисления интегралов.
Допустим, на вычислить интеграл от функции F(x) от x1 до x2. Сначала отрезок [x1.x2] разбиваем на n1 частей. И вычисляем h1:
h1 = (x2-x1)/n1
И методом прямоугольников вычисляем интеграл. Получаем значение J1.
Затем берём n2:
n2 = n1 + 1
и вычисляем h2:
h2 = (x2-x1)/n2
И при h2 вычисляем значение интеграла J2, оно будет несколько точнее, чем значение J1.
Но значительно более точное значение мы можем получить по формуле:
J = J2*n2 - J1*n1
Весь метод реализован в следующей программе (Turbo Pascal ):
uses crt; { simple method }
function F(x:real):real; begin F:=x*x; end;
var
i,n1,n2 :integer;
dx,y,x1,x2,J1,J2 :real;
Begin clrscr;
x1:=2; x2:=4.2;
n1:= 8;
h:= (x2-x1)/n1;
J1:=0;
for i:=0 to n1-1 do begin J1:=J1+ F(x1+h*i)*h; end;
writeln('J1=',J1:12:5);
n2:=n1+1;
h:= (x2-x1)/n2;
J2:=0;
for i:=0 to n2-1 do begin J2:=J2+ F(x1+h*i)*h; end;
writeln('J2=',J2:12:5);
y:=J2*n2-J1*n1; writeln('s.method: y=',y:12:5);
if readkey=#3 then;end.
Этим методом можно решать и дифференциальные уравнения.