IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> вычислить интеграл методом симпсона, не тот ответ
Ven
сообщение 12.10.2011 21:22
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский

Репутация: -  1  +


Надо вычислить интеграл методом симпсона

пример взяла с этого форума, всё работает,вот только в ответ выводит 2, а в он-лайн подсчете интеграла на стороннем сайте ответ= -6.. где ошибка?))помогите разобраться)


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,l,n: integer;
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;

l:=round(-ln(integ)/ln(10));

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




там в конце строчка integ:=h*integ/3;

к чему она? так было в примере решения..

Сообщение отредактировано: Ven - 12.10.2011 21:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Krjuger
сообщение 14.10.2011 12:49
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ответ верный,просто чем больше разбиений,тем более точный ответ ты получиш, поставь числа 10, 20 и тд, и увидиш что они будут приближаться к -6.А начальное приближение всегда будет ужасным,зато скорость сходимости очень хорошая.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 3:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"