Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Кротяка
6 / 6 / 1
Регистрация: 20.12.2010
Сообщений: 391
1

Определённый интеграл

11.02.2011, 12:50. Просмотров 1183. Ответов 4
Метки нет (Все метки)

Составить алгоритм и написать программу вычисления определённого интеграла
F(x)=
http://www.cyberforum.ru/cgi-bin/latex.cgi?\int_{a}^{b}f(x)dx на заданном отрезке интегрирования [a,b] с заданной точностью е, n – число разбиений отрезка интегрирования, с помощью метода средних прямоугольников, метода трапеций и метода Симпсона.

Добавлено через 17 минут
http://www.cyberforum.ru/cgi-bin/latex.cgi?\int_{0}^{1,2}\frac{dx}{\sqrt[3]{x+1}}

http://www.cyberforum.ru/cgi-bin/latex.cgi?\int_{0}^{3}\sqrt{4+{x}_{2}}dx

Добавлено через 6 часов 20 минут
ауу....люди)

Добавлено через 1 час 17 минут
откликнитесь!)

Добавлено через 55 минут
мда......

Добавлено через 40 минут
........................................................
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2011, 12:50
Ответы с готовыми решениями:

Определённый интеграл
ЛюДи!ВыРуЧаЙтЕ!Срочно!Срочно нужно! Вычислить определённый интеграл,пределы...

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

Вычислите определённый интеграл от функции: f(x)=1/x*ln(x+2) на отрезке [2,3] ;
Вычислите определённый интеграл от функции: f(x)=1/x*ln(x+2) на отрезке ;

Является ли название типа данных определённый разработчиком языка стандартным идентификатором?
Является ли название типа данных определённый разработчиком языка стандартным...

Найти и заменить определённый символ в строке, введённой с клавиатуры
Дана строка текста. Найти и заменить определённый символ в строке, введённой с...

4
burunduk32
16 / 16 / 9
Регистрация: 18.12.2010
Сообщений: 37
11.02.2011, 16:31 2
Лучший ответ Сообщение было отмечено как решение

Решение

Привожу программы только для одной функции, для другой. Программы писались еще в студенчестве, привожу без изменений.
Метод Симпсона:
program simpson_n;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var a,b:real;
    h,Q:real;
    n:integer;
    i:integer;
    s1,s2:real;
function f(x:real):real;
 begin
   f:=1/exp(ln(x+1)*1/3);
 end;
begin
  writeln('a=');read(a);{нижний предел интегрирования}
  writeln('b='); read(b);{верхний предел интегрирования}
  writeln('n=');{число отрезков разбиения}
  h:=(b-a)/(2*n);{вычисленее шага}
  Q:=0;{начальное значения интеграла}
  s1:=0;
  for i:=1 to n-1 do s1:=s1+f(a+h*2*i);
  s2:=0;
  for i:=1 to n do s2:=s2+f(a+h*(2*i-1));
  Q:=h/3*(f(a)+f(b)+2*s1+4*s2);
  writeln('Q=',Q);
end.
Обобщенный метод средних прямоугольников:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program mspex;
var a,b:real;{Концы отрезка интегрирования}
    h,Q:real;{Щаг интегрирования h=(b-a)/n, Q -искомое приближенное
              значение интеграла}
    n:integer;{Число отрезков разбиения}
    i:integer;{Индекс суммирования}
{Описание подынтегральной функции}
function f(x:real):real;
 begin
   f:=1/exp(ln(x+1)*1/3);{Сюда надо записать формулу для вычисления значения функции}
 end;
begin
  {Ввод аргументов с подсказками}
  writeln('a=');{Вывод подсказки} read(a);{Ввод значения}
  writeln('b=');{Вывод подсказки} read(b);{Ввод значения}
  writeln('n=');{Вывод подсказки} read(n);{Ввод значения}
  h:=(b-a)/n;{Вычисление шага интегрирования}
  Q:=0;{Задание начального значения суммы}
  for i:=1 to n do Q:=Q+f(a+h*(2*i-1)/2);{Вычисление суммы}
  Q:=Q*h;{Вычисление результата}
  writeln('Q=',Q);{Вывод результата}
end.
Метод трапеций:
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 l8p1n4;
uses nummet;{Подключение библиотечного модуля}
var a,b:real;{Концы отрезка интегрирования}
    e:real;{Заданная точность значение интеграла}
    n: integer; {chislo razbienii}
    h:real;{shag integrirowania}
    Q1,Q2:real;{prom znach int}
    s:real;{summa}
    i:integer;{shetchik}
 
{$F+}
        function f(x:real):real;{Описание подынтегральной функции}
        begin
        f:=1/exp(ln(x+1)*1/3);
        end;
{$F-}
        begin
        {Ввод исходных данных с подсказками}
        writeln('a='); {Вывод подсказки}
        read(a); {Ввод исходного данного}
        writeln('b='); {Вывод подсказки}
        read(b); {Ввод исходного данного}
        writeln('e='); {Вывод подсказки}
        read(e); {Ввод исходного данного}
        n:=1;
        h:=(b-a)/n;
        Q2:=h/2*(f(a)+f(b));
        repeat
        Q1:=Q2;
        n:=n*2;
        h:=(b-a)/n;
        s:=0;
        for i:=1 to n-1 do s:=s+f(a+h*i);
        Q2:=h/2*(f(a)+f(b)+2*s);
        until abs(Q2-Q1)<=e;
        writeln('int=',Q2)   {Вывод результата}
        end.
4
burunduk32
16 / 16 / 9
Регистрация: 18.12.2010
Сообщений: 37
11.02.2011, 16:40 3
Вот алгоритм для метода Симсона: алг Метод Симпсона с автоматическим выбором шага.zip
2
Кротяка
6 / 6 / 1
Регистрация: 20.12.2010
Сообщений: 391
13.02.2011, 18:58  [ТС] 4
огромное спасибо!!!
1
us3r
5 / 5 / 6
Регистрация: 20.04.2011
Сообщений: 101
27.04.2011, 18:56 5
Цитата Сообщение от burunduk32 Посмотреть сообщение
Привожу программы только для одной функции, для другой. Программы писались еще в студенчестве, привожу без изменений.
Метод Симпсона:
program simpson_n;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var a,b:real;
    h,Q:real;
    n:integer;
    i:integer;
    s1,s2:real;
function f(x:real):real;
 begin
   f:=1/exp(ln(x+1)*1/3);
 end;
begin
  writeln('a=');read(a);{нижний предел интегрирования}
  writeln('b='); read(b);{верхний предел интегрирования}
  writeln('n=');{число отрезков разбиения}
  h:=(b-a)/(2*n);{вычисленее шага}
  Q:=0;{начальное значения интеграла}
  s1:=0;
  for i:=1 to n-1 do s1:=s1+f(a+h*2*i);
  s2:=0;
  for i:=1 to n do s2:=s2+f(a+h*(2*i-1));
  Q:=h/3*(f(a)+f(b)+2*s1+4*s2);
  writeln('Q=',Q);
end.
Обобщенный метод средних прямоугольников:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program mspex;
var a,b:real;{Концы отрезка интегрирования}
    h,Q:real;{Щаг интегрирования h=(b-a)/n, Q -искомое приближенное
              значение интеграла}
    n:integer;{Число отрезков разбиения}
    i:integer;{Индекс суммирования}
{Описание подынтегральной функции}
function f(x:real):real;
 begin
   f:=1/exp(ln(x+1)*1/3);{Сюда надо записать формулу для вычисления значения функции}
 end;
begin
  {Ввод аргументов с подсказками}
  writeln('a=');{Вывод подсказки} read(a);{Ввод значения}
  writeln('b=');{Вывод подсказки} read(b);{Ввод значения}
  writeln('n=');{Вывод подсказки} read(n);{Ввод значения}
  h:=(b-a)/n;{Вычисление шага интегрирования}
  Q:=0;{Задание начального значения суммы}
  for i:=1 to n do Q:=Q+f(a+h*(2*i-1)/2);{Вычисление суммы}
  Q:=Q*h;{Вычисление результата}
  writeln('Q=',Q);{Вывод результата}
end.
Метод трапеций:
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 l8p1n4;
uses nummet;{Подключение библиотечного модуля}
var a,b:real;{Концы отрезка интегрирования}
    e:real;{Заданная точность значение интеграла}
    n: integer; {chislo razbienii}
    h:real;{shag integrirowania}
    Q1,Q2:real;{prom znach int}
    s:real;{summa}
    i:integer;{shetchik}
 
{$F+}
        function f(x:real):real;{Описание подынтегральной функции}
        begin
        f:=1/exp(ln(x+1)*1/3);
        end;
{$F-}
        begin
        {Ввод исходных данных с подсказками}
        writeln('a='); {Вывод подсказки}
        read(a); {Ввод исходного данного}
        writeln('b='); {Вывод подсказки}
        read(b); {Ввод исходного данного}
        writeln('e='); {Вывод подсказки}
        read(e); {Ввод исходного данного}
        n:=1;
        h:=(b-a)/n;
        Q2:=h/2*(f(a)+f(b));
        repeat
        Q1:=Q2;
        n:=n*2;
        h:=(b-a)/n;
        s:=0;
        for i:=1 to n-1 do s:=s+f(a+h*i);
        Q2:=h/2*(f(a)+f(b)+2*s);
        until abs(Q2-Q1)<=e;
        writeln('int=',Q2)   {Вывод результата}
        end.
А как можно вывести в методе средних прямоугольников относительную и абсолютную погрешность вычислений?
0
27.04.2011, 18:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2011, 18:56

Интеграл
нужно эту задачу решить, помогите плиз у кого время есть)

Интеграл
Вычислите на ЭВМ значение интеграла на заданном отрезке F(x)= sinx-cosx...

Интеграл
Помогите решить пожалуйста, т.к. в интегралах не шарю.


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

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

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