2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Условие остановки метода Симпсона
Сообщение09.11.2009, 12:33 
Если разбираешься в делфи, тогда вот пример:
Код:
function IntegralSimpson(a, b: double; f: TFun; e: double): double;
  var
    h, x, s, s1, s2, s3, sign: double;
begin
  if (a = b) then
    begin
      IntegralSimpson := 0; exit
    end;
  if (a > b) then
    begin
      x := a; a := b; b := x; sign := -1
    end
   else sign:=1;
  h := b - a; s := f(a) + f(b); s2 := s;
  repeat
    s3 := s2; h := h/2; s1 := 0; x := a + h;
    repeat
      s1 := s1 + 2*f(x); x := x + 2*h;
    until (not(x < b));
    s := s + s1; s2 := (s + s1)*h/3; x := abs(s3 - s2)/15
  until (not(x > e));
  IntegralSimpson := s2*sign;
end;

 
 
 
 Re: Условие остановки метода Симпсона
Сообщение09.11.2009, 12:59 
to TOTAL:
под малой точностью я понимаю большое $eps$. Например, в случае, когда для сходимости необходимо 24000 узлов разность между итерациями в 20 и 40 шагов составляет 7.6413...
to warezhunter:
спасибо за код, а Вы не могли бы пояснить, что каждая из переменных представляет(кроме a,b,x,h,f, конечно =))

-- Пн ноя 09, 2009 13:10:32 --

Кроме того, поясните, пожалуйста, строки:
Код:
s := s + s1; s2 := (s + s1)*h/3; x := abs(s3 - s2)/15
  until (not(x > e));

Это модифицированный метод Симпсона? Он не похож на обычный.... Я делал так:
1) у меня строится динамический массив X - узлы разбиения
2) по этим узлам я нахожу соотвественно f(x)
3) далее, исходя из размеров массива X я строю массив A - массив коэффициентов в формуле Симпсона
4) вычисляю сумму sum = f(x)*A.
Может у меня проблема в такой последовательности действий?

 
 
 
 Re: Условие остановки метода Симпсона
Сообщение09.11.2009, 13:11 
Аватара пользователя
Sayid в сообщении #260051 писал(а):
to TOTAL:
под малой точностью я понимаю большое $eps$. Например, в случае, когда для сходимости необходимо 24000 узлов разность между итерациями в 20 и 40 шагов составляет 7.6413...
Какие пределы интегрирования и в каких пределах изменяется подынтегральная функция?

 
 
 
 Re: Условие остановки метода Симпсона
Сообщение09.11.2009, 14:21 
пределы интегрирования от -1 до 1. Про функцию точно не знаю, но судя по экспериментам она примерно от-10 до 10....

 
 
 
 Re: Условие остановки метода Симпсона
Сообщение09.11.2009, 14:31 
Аватара пользователя
Sayid в сообщении #260088 писал(а):
пределы интегрирования от -1 до 1. Про функцию точно не знаю, но судя по экспериментам она примерно от-10 до 10....
Как ведет себя функция, сильно колеблется?

 
 
 
 Re: Условие остановки метода Симпсона
Сообщение09.11.2009, 22:56 
точно не знаю - она очень сложная.

-- Пн ноя 09, 2009 22:58:04 --

 
 
 
 Re: Условие остановки метода Симпсона
Сообщение10.11.2009, 00:11 
БОЛЬШОЕ ВСЕМ СПАСИБО, Я РАЗОБРАЛСЯ!!!! Проблема была в самом алгоритме построения метода. Очень уж криво я его строил.

 
 
 [ Сообщений: 22 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group