Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 17:54   #1
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию Приближенное вычисление определенных интегралов методом трапеций (Паскаль)

вот программа которая решает Приближенное вычисление определенных интегралов методом трапеций.

Код:
program 13;
const
a = 0.6;
b = 2.4;
e = 0.0001;
var dx, x, y, integ : real;
n : integer;
function f(x: real): real;
begin
f := 1+0.5*x*x/1+sqrt(0.8*x*x+1.4);
end;
begin
integ := sin (b) - sin (a);
n := 9;
y := 0;
while integ - y > e do
begin; 
n := n + 1;
  dx := (b - a) / n;
  y := 0; 
  x := a + dx;
   while x < b do 
    begin 
    y := y + f(x);
    x := x + dx;
    end;
  y := (y + (f(a) + f(b)) / 2) * dx;
  end;
  
writeln ('количество отрезков разбиения: ',n);
writeln ('приближенное значение интеграла: ',y:7:6);
writeln ('точное значение интеграла  : ',integ);
writeln ('относительная погрешность вычислений : ',(integ - y));
end.
вопрос : может ли погрешность быть отрицательной? и точное значение намного меньше приближенного ? почему так
результат ниже приведен и сам интеграл для которого написана прога



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.
Изображения
Тип файла: jpg Безымянный13.jpg (7.1 Кб, 127 просмотров)
Тип файла: jpg Безымянный131.jpg (3.0 Кб, 125 просмотров)

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 19:51.
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:11   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Код:
f := 1+0.5*x*x/1+sqrt(0.8*x*x+1.4);
А скобки где? И в числителе и знаменателе.

И как вообще она скомпилировалась. Программа с именем "13" .
type_Oleg вне форума Ответить с цитированием
Старый 29.05.2014, 18:13   #3
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Код:
f := 1+0.5*x*x/1+sqrt(0.8*x*x+1.4);
А скобки где? И в числителе и знаменателе.

И как вообще она скомпилировалась. Программа с именем "13" .
какие скобки?
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:14   #4
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

у меня паскаль ABC. Net
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:17   #5
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

ааааааааааааа,вот что получилось ,но все равно погрешность отрицательная ,почему
Изображения
Тип файла: jpg Безымянный111.jpg (7.6 Кб, 121 просмотров)
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:18   #6
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

и все равно между приближенным и точным результатом разница большая
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:26   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Точное = 1.4050674
А у вас я не понял, как точное считается.
type_Oleg вне форума Ответить с цитированием
Старый 29.05.2014, 18:44   #8
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Точное = 1.4050674
А у вас я не понял, как точное считается.
у меня приближенное значение 1.4 а точное почему то меньше , я сама никак не пойму почему так получается
Изображения
Тип файла: jpg Безымянный7.jpg (7.3 Кб, 121 просмотров)
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:56   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от now2 Посмотреть сообщение
... я сама никак не пойму почему так получается
А я не пойму, как вы вычисляете " точное значение ".
И что это
Код:
integ := sin (b) - sin (a);
- непонятно.
Точное - это значит решить неопределенный интеграл (найти первообразную функцию) . И по этой первообразной найти точное. Но здесь первообразную уж очень муторно выводить.
type_Oleg вне форума Ответить с цитированием
Старый 29.05.2014, 19:55   #10
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
А я не пойму, как вы вычисляете " точное значение ".
И что это
Код:
integ := sin (b) - sin (a);
- непонятно.
Точное - это значит решить неопределенный интеграл (найти первообразную функцию) . И по этой первообразной найти точное. Но здесь первообразную уж очень муторно выводить.
бллллллллииииин и что делать(((((
now2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление интегралов методом трапеций irsen22 Паскаль, Turbo Pascal, PascalABC.NET 4 15.05.2013 00:36
Вычисление интеграла методом трапеций Rikus Помощь студентам 2 11.11.2011 00:43
Приближенное вычисление определенных интегралов Аделина19 Паскаль, Turbo Pascal, PascalABC.NET 0 03.11.2011 04:47
ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ (метод трапеций) maliyusha Помощь студентам 13 25.12.2008 00:34