Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 20
1

Нахождение интеграла

27.02.2018, 22:37. Просмотров 998. Ответов 1
Метки нет (Все метки)


Вычислить определенный интеграл от функции f(x) на промежутке [a, b] ме-
тодом прямоугольников.
f(x) = 4sin x cos x, a = 0, b = 1,
число разбиений n = 10; 40; 160; 640.
F(x) = sin2x – cos2x


задание заключается в нахождении определенного интеграла от вещественной функции одного вещественно-
го аргумента или в численном интегрировании обыкновенного дифференциального уравнения.
Для нахождения приближенного значения определенного интеграла используются методы прямоугольников, трапеций или Симпсона (соответственно приведенные в приложении процедуры rect, trap и simpson). В тексте
программы до описания этих процедур должна быть описана подынтегральная функция f(x) (вещественной функции одного вещественного аргумента).Например, для функции f(x) = x
2 потребуется следующее описание:
function f(x: real):real;
begin
f := x*x;
end;
Любая из этих процедур использует в качестве параметров верхнюю
и нижнюю границы интервала интегрирования и число разбиений.
При выполнении данного задания Вы будете должны:
1) получить значение интеграла при различных значениях параметра n(число разбиений),
2) определить погрешность вычисления интеграла (т.е. разницу междуточным и приближенным значениями) и
3) дать ответ на вопрос: почему так ведет себя ошибка в зависимостиот числа разбиений.
При вычислении ошибки для определения точного значения воспользуемся следующей формулой (первообразная F(x) приведена вместе с подынтегральной функцией)
f (x)dx F(b) F(a)ba= − ∫ .
Для решения обыкновенного дифференциального уравнения используются методы Эйлера и Рунге-Кутта (соответственно процедуры euler и rk4), записанные в векторном виде для системы n обыкновенных дифференциальных
уравнений первого порядка (во всех вариантах контрольной работы n= 1):
y’ = f(x, y).
Для того чтобы воспользоваться этими процедурами, необходимо конкретизировать процедуру der, вычисляющую правую часть системы f(x, y).
Например, для уравнения
y’ = xy
эта процедура будет выглядеть следующим образом:
98
procedure der(x: real; y: vec; var f: vec);
begin
f [1] := x*y[1];
end;
Для того чтобы решить поставленную задачу, необходимо задать начальные значения x = a, y = y(a) (переменные x и y[1]) и шаг интегрирования h. На каждом новом шаге при помощи процедуры euler (или rk4) вычисляется значение искомой функции, после чего находится новое значение x. Процесс заканчивается по достижении верхней границы x = b. Например:
while x < b + 0.00001 do begin
euler(1, x, h, y);
x := x + h;
enddo
При выполнении данного задания результаты работы программы (зависимость y от x в 10 – 20 точках, равномерно распределенных по интервалу
[a, b]) при различных значениях шага интегрирования h должны быть сведены в таблицу. В этой же таблице приведите результаты точного решения задачи (приведено в задании).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2018, 22:37
Ответы с готовыми решениями:

Нерекурсивное нахождение неопределенного интеграла
Задача на нахождение неопределенного интеграла от функции X^m*cos(a*x) Нужно написать...

Нахождение интеграла
Задание вернули на переделку с пометкой &quot;Неверно вычислен интеграл&quot;: 24\int_{0}^{\pi...

Нахождение интеграла
import math a = int(input('Введите левый предел интегрирования а:')) b = int(input('Введите...

Нахождение интеграла
Есть программа, выполняющая табулирование некоторой функции. Как сделать так, чтобы программа...

1
4265 / 2046 / 2098
Регистрация: 10.12.2014
Сообщений: 7,894
28.02.2018, 07:46 2
Лучший ответ Сообщение было отмечено Alexandr_msk как решение

Решение

Цитата Сообщение от Alexandr_msk Посмотреть сообщение
Вычислить определенный интеграл от функции f(x) на промежутке [a, b] ме-
тодом прямоугольников.
f(x) = 4sin x cos x, a = 0, b = 1,
число разбиений n = 10; 40; 160; 640.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function f(x:real):real;
begin
  f:=4*sin(x)*cos(x);
end;
 
function numericIntegration(lowLimit,uppLimit:real;countLimit:integer):real;
var i:integer;s,r:real;
begin
  s:=0;r:=(uppLimit-lowLimit)/countLimit;
  for i:=0 to countLimit do s:=s+f(lowLimit+r*i);
  numericIntegration:=s*r;
end;
 
begin
  WriteLn(numericIntegration(0, 1, 10):0:8);
  WriteLn(numericIntegration(0, 1, 40):0:8);
  WriteLn(numericIntegration(0, 1, 160):0:8);
  WriteLn(numericIntegration(0, 1, 640):0:8);
end.
Alexandr_msk, к чему остальная „вода“?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2018, 07:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Нахождение интеграла
Помогите пожалуйста найти интегралы

Нахождение интеграла
Как найти интеграл вот этого

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

Нахождение определенного интеграла
функция (sqrt(x*x+0.5))/(1.6+sqrt(0.8*x*x+1.4)) нижний предел 0,6 верхний предел 2,4

Нахождение несобственного интеграла
Стоит задача написать программу для нахождения несобственного интеграла. По сути поискав, я пришёл...

Нахождение неопределенного интеграла
Вызвало затруднение нахождение следующих интегралов: 1) x/(3-2*x^4) dx 2) dx/(x*sqrt(9-x^2)) ...


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

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

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