Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/148: Рейтинг темы: голосов - 148, средняя оценка - 4.69
trevor92
2 / 2 / 0
Регистрация: 14.03.2009
Сообщений: 6
1

Вычисление определенного интеграла методом трапеций.

08.05.2009, 16:56. Просмотров 27245. Ответов 5
Метки нет (Все метки)

Методом трапеций вычислить значение интеграла S = (cos (x)) на отрезке интегрирования [0; pi/2]. Считать заданным численный метод решения. Включить в программу вычисление точного значения интеграла. На печать вывести:
- кол-во отрезков разбиения интервала,
- приближенные значение интеграла, соответствующие количеству отрезков разбиения,
- точное значение интеграла,
- относительную погрешность вычисления.
Требуемая точность = 10^(-4)

Не совсем понимаю смысла точного значения интеграла. Может объяснить кто-нибудь что это?))) Ну.. точным значением будет 1, но как вычислить точное значение с помощью Pascal, я, если честно, не представляю. Поэтому вычислил как (sin (b) - sin (a)) (формула Ньютона-Лейбница). Относительная погрешность, это наверно разница между точным значением и полученным. Прошу как бы так сказать отрецензировать мою программу, внести может какие-нибудь корректировки.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program TTT;
const
a = 0;
b = pi/2;
e = 0.0001;
 
var dx, x, y, integ : real;
    n : integer;
    
 function f(x: real): real;
begin
 f := cos (x);
end;
 
begin
integ := sin (b) - sin (a);
n := 1;
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 ('Kolichestvo otrezkov razbieniya: ',n);
writeln ('Priblijennoe znachenie integrala: ',y:7:6);
writeln ('Tochnoe znachenie integrala : ',integ);
writeln ('Otnositelnaya pogreshnost vichislenya : ',(integ - y));
end.
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2009, 16:56
Ответы с готовыми решениями:

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

Вычисление интеграла методом трапеций
Дана непрерывная на отрезке функция f(x). Используя метод трапеций...

Вычисление интеграла и методом трапеций.
Program p; var a,b,x,h,n,s:real; v:integer; function f(x:real):real; begin...

Вычисление определённого интеграла методом прямоугольников и трапеций
Составить алгоритм и написать программу вычисления определённого интеграла на...

Составить программу численного расчета интеграла методом трапеций
1) 2 S(1+2x^2-3x^3+x4^4)dx 0 2)...

5
I-O
0 / 0 / 0
Регистрация: 14.10.2009
Сообщений: 1
17.10.2009, 13:32 2
Расчёт произведён 5-ю численными методами с помощью программы в режиме online http://www.integral-online.ru/ для определённого интеграла cos(x) (Math.cos(x))[0,pi/2], где pi/2 = 1.570796 с точностью:

e = 0.1

Метод прямоугольников 1.0949598911416216
Метод средних 1.0261721418882381
Метод трапеций 0.98711580634753
Метод Симпсона 1.0001345848610992
Метод 3/8 1.0000001433124937

e = 0.01

Метод прямоугольников 1.006123369992507
Метод средних 1.00160818841402
Метод трапеций 0.9967851732246289
Метод Симпсона 1.0001345848610992
Метод 3/8 1.0000001433124937

e = 0.001

Метод прямоугольников 1.0007667938923253
Метод средних 1.0001004058223493
Метод трапеций 0.9997991944035216
Метод Симпсона 1.0000082955169949
Метод 3/8 1.0000001433124937

e = 0.0001

Метод прямоугольников 1.000095870683987
Метод средних 1.0000251001324536
Метод трапеций 0.9999874501226949
Метод Симпсона 1.000000516684223
Метод 3/8 1.0000001433124937

e = 0.00001

Метод прямоугольников 1.0000059920972204
Метод средних 1.0000015687323875
Метод трапеций 0.9999968625365403
Метод Симпсона 1.000000516684223
Метод 3/8 1.00000000176797

e = 0.000001

Метод прямоугольников 1.0000007490133844
Метод средних 1.000000098045622
Метод трапеций 0.9999998039085988
Метод Симпсона 1.0000000322649207
Метод 3/8 1.00000000176797
0
odip
Эксперт С++
7164 / 3222 / 77
Регистрация: 17.06.2009
Сообщений: 14,160
17.10.2009, 22:05 3
но как вычислить точное значение с помощью Pascal
Не точное значение, а значение с какой-то точностью !
Интеграл - это площадь фигуры соответствующей функции.
Вот разбираешь на отрезки ось OX, и считаешь площадь отрезков.
А вообще почитай чего-нибудь на тему численное вычисление интегралов.
0
Том Ардер
Модератор
Эксперт по математике/физике
3835 / 2447 / 327
Регистрация: 15.06.2009
Сообщений: 4,476
18.10.2009, 00:19 4
Путаница у тебя с погрешностями
И к точным значениям Паскаль не имеет никакого отношения.
В твоей задаче точное значение даётся конечным математическим выражением (здесь ты правильно взял первообразную - именно это)sin(pi/2)=1.
Численный метод даёт приближённое значение, точность которого нужно оценить. Если известно точное значение (f) и приближённое (fapp), то абсолютная погрешность abserr = abs(f - fapp), относительная погрешность relerr = abs((f - fapp)/f).
На практике точное значение известно далеко не всегда, поэтому вычисляют приближённое значение разными способами и сравнивают результаты.
Применительно к твоей задаче: вычислить интеграл при числе разбиений интервала n1, (значение f1), и числе разбиений интервала n2 > n1, (значение f2). Если relerr = abs((f1 - f2)/f1) окажется больше заданного eps, то повторить вычисление с числом разбиений интервала n3 > n2, получив значение f3). Сравнить f2) и f3) и т.д., пока не достигнем требуемой точности. Для метода трапеций удобно выбирать n2 = 2*n1, n3 = 2*n2, ... В этом случае на каждом шаге можно использовать все ранее вычисленные значения подынтегральной функции, т.е. ускорение алгоритма вдвое.
Рекомендую: Хемминг "Численные методы", МакКракен "Численные методы и программирование на Фортране" (суть не в языке, а в методах). И ещё много других - ищи в библиотеках.
Успехов!

Добавлено через 15 минут
Ещё: поищи "Numerical Recipes" (в виде pdf файлов) - там и численные методы, и тексты программ (С, Фортран).
2
Puporev
Модератор
55479 / 42580 / 29429
Регистрация: 18.05.2008
Сообщений: 100,730
18.10.2009, 09:41 5
Цитата Сообщение от trevor92 Посмотреть сообщение
Включить в программу вычисление точного значения интеграла.
Глупое условие, следовало написать аналитическое значение, а в остальном +10 Том Ардер,
Люди, прежде чем писать программу, касающуюся математики, прочитайте информацию , если не знаете, по этой теме.
0
MontiK
3 / 0 / 0
Регистрация: 06.04.2011
Сообщений: 35
10.05.2011, 22:59 6
Цитата Сообщение от odip Посмотреть сообщение
Не точное значение, а значение с какой-то точностью !
А как можно эту точность объявить в программе? Например, точность равна 0.001 а мне нужно посчитать этот интеграл с этой точностью...
0
10.05.2011, 22:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2011, 22:59

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

Вычисление определенного интеграла(корректировка)
Приветствую всех! Проверьте правильность написания кода программы, изначально...

Решение определенного интеграла методом Ньютона-Котеса
Помогите создать программу для решения определенного интеграла методом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru