2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Turbo Pascal метод симпсона и точность
Сообщение01.03.2012, 10:44 


27/12/10
2
Очень нужна помощь.. В общем суть- вычислить интеграл методом симпсона.. Я написала,всё считает,но, оказываетсЯ,еще нужен эпсилон- точность,которую надо забивать при расчете( напр. 0,1 ;0,01 и т.д.). Я не могу сообразить как вставить эпсилон сюда.. Я учусь только программировать, подошла к преподу- а он даже объяснить ничего не может((надеюсь на вашу помощь.... уже долго сижу с этой проблемой и никак не могу понять... вот мой код:
Код:
program Simpson;
uses crt;
                         {integriruemaya funkciya}
function F(x:Real):Real;


  begin
  F:=exp(2*sin(x)) * sin(5 + 2* cos(x) );
  end;

var  a,b,h,x: real;
     i,n: integer;  {n-chislo tochek na interv}
     integ: real;

  begin
  clrscr;
{interval integrirovaniya}

a:=0;
b:=2*pi;

               {osnovnaya programma}

write ('Vvedite kolichestvo razbieniy intervala (chetnoe) n= '); readln(n);
if (n mod 2) > 0 then
begin
n:=n+1;
writeln('Chislo n bilo vvedeno nechetnoe i bilo zameneno na n=',n);
end;
h:=(b-a)/n;
integ:=F(a)+F(b)+4*F(a+h);
for i:=1 to (n div 2 ) -1 do
begin

x:=a+2*h*i;
integ:=integ + 2*F(x) + 4*F(x+h);
end;
integ:=h*integ/3;



writeln('Integral= ',integ:10:6);
readln;
end.


 Профиль  
                  
 
 Re: Turbo Pascal метод симпсона и точность
Сообщение01.03.2012, 11:59 


17/04/11
70
Посмотрите в Википедии оценку точности формулы Симпсона.
Её надо вычислить отдельно используя 4-ую производную.
И научите преда. Удачи, солнце.

 Профиль  
                  
 
 Re: Turbo Pascal метод симпсона и точность
Сообщение02.03.2012, 16:05 
Заслуженный участник


11/05/08
32166
oveka в сообщении #544130 писал(а):
Её надо вычислить отдельно используя 4-ую производную.

Здесь эта оценка слишком груба -- из-за периодичности фактическая погрешность будет во много раз меньше.

venera-8 в сообщении #544108 писал(а):
Я не могу сообразить как вставить эпсилон сюда

Ну надо полагать, что вставлять надо не сам эпсилон, а контроль точности.

Введите внешний цикл repeat, на каждом шаге которого количество узлов удваивается и интегральная сумма вычисляется заново. Вычисления следует прекратить, когда разность двух последних результатов станет меньше допустимой погрешности.

И не забывайте делать отступы -- Ваш текст выглядит просто неприлично.

 Профиль  
                  
 
 Re: Turbo Pascal метод симпсона и точность
Сообщение03.03.2012, 16:04 
Заслуженный участник


09/09/10
3729
А вот моя преподавательница по численным методам (практика), несмотря на всю ее ..., ... и ..., все-таки объясняла, что надо сделать: написать процедуру Simpson, которая будет брать на вход функцию, отрезок и кол-во точек разбиения, потом SimpsonEps, которая будет брать функцию, отрезок, начальное кол-во точек разбиения и эпсилон, и будет внутри себя в цикле repeat вызывать Simpson. Все это выносится в отдельный модуль, в главной же программе объявляется функция F, которую вы будете интегрировать, вводятся данные, вызывается SimpsonEps, выводится результат. И обязательно — в экспоненциальной форме.

 Профиль  
                  
 
 Re: Turbo Pascal метод симпсона и точность
Сообщение03.03.2012, 21:08 


17/04/11
70
ewert сказал, что делать
Введите внешний цикл repeat, на каждом шаге которого количество узлов удваивается и интегральная сумма вычисляется заново. Вычисления следует прекратить, когда разность двух последних результатов станет меньше допустимой погрешности.

 Профиль  
                  
 
 Re: Turbo Pascal метод симпсона и точность
Сообщение03.03.2012, 21:15 
Заслуженный участник


11/05/08
32166

(Оффтоп)

Только, справедливости ради, надо сказать, что этот алгоритм в случае неудачной симметричности вполне может и провалиться. Так что по-хорошему надо бы ввести в него какой-либо элемент рандомизации.

Правда, я не в курсе, как это принято делать в приличном опчестве. И уж конечно это -- не предмет рассмотрения для учебной задачки.

 Профиль  
                  
 
 Re: Turbo Pascal метод симпсона и точность
Сообщение03.03.2012, 21:39 


17/04/11
70
Думаю, что скрытое замечание ewert'a в тему. И спрашивающему знать не лишне.
Может создать сюрприз при выполнении с конкретными a, b.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group