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

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



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

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