Сапунов Павел : другие произведения.

Численные методы. Простой корректирующий метод

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:


  
  
   Численные методы.
   Простой корректирующий метод.
  
   Недавно я опубликовал на сайте "Метод с одноразовой корректировкой".
   Но вообще-то, корректирующих методов может быть много. "Простой корректирующий метод" - ещё один из этого набора численных методов.
   Этот метод действительно очень прост. И хотя этим методом можно и вычислять интегралы, и решать дифференциальные уравнения, я объясню его на примере вычисления интегралов.
   Допустим, на вычислить интеграл от функции 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.
  
  
   Этим методом можно решать и дифференциальные уравнения.
  
   Павел Сапунов
  

 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"