Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sopik
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 81
#1

вычисление интеграла - C++

14.04.2010, 18:45. Просмотров 1076. Ответов 5
Метки нет (Все метки)

Даны вещественные числа a, b. Значения функции f(x)=(x+1)2√lg x; a=2; b=10;
записать в массив. Вычислить значение интеграла, используя:
1) Формулу трапеций

I1=h*[f(a)/2+f(a+h)+f(a+2h)+…+f(a+(n-1)h)+f(b)/2]


2) Формулу Симпсона

I2=h/3*(f(a)+f(b)+4*(f(a+h)+f(a+3h)+…+f(a+(n-1)h))+

2*(f(a+2h)+f(a+4h)+…+f(a+(n-2)h)))


h=(b-a)/n, n=100.

Вот такие соображения по алгоритму: расчёт выполняем по формулам (формулы даны) .Объявим массив func[n+1], где n - количество отсчётов функции на интервале от а до b , запмсываем знач-я функции в массив, (шаг вычисляем (b-a)/n ,аргумент ф-ии a+i*h, где i параметр цикла, меняющийся от 0 до n ( т. е. всего n значений). массив используем для вычислений по обеим формулам. в первой формуле сумма знач-й массива от 1 до n-1, плюс граничные func[0]/2+ func[n]/2 и умножаем на шаг(h). Во второй форм. две суммы - нечётные и чётные значения сумм-ся отдельно и потом по формуле находится общая сумма.
Помогите с кодом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2010, 18:45     вычисление интеграла
Посмотрите здесь:

Вычисление интеграла - C++
вычислить интеграл \int_{0}^{6}\frac{exp^sqrt{\frac{6-x}{6+x}}}{(6+x)*\sqrt{36-x^2}} помогите с кодом вычисления данного...

Вычисление интеграла - C++
задача такая Вычислить с точностью\varepsilon интеграл ,где y=f(x) - прямая проходящая через точки A(c,d) и B - точку минимума ...

Вычисление интеграла - C++
Необходимо вычислить интеграл (сам интеграл задан функцией, например Functoin) методом правых прямоугольников, воспользовавшись критерием...

Вычисление интеграла - C++
Считаю интеграл на промедутке от -1 до 3... Интеграл a*a*a*a. Точность вычисления 0.00001... Код выполняется 10-12 секунд. Это нормально...

Вычисление интеграла - C++
помогите пожалуйста я вообще не знаю как сделать интеграл

Вычисление интеграла и табуляция - C++
Доброго времени суток! Написал программу в делфи и паскале, дошла очередь до С++ , а как писать там я не понимаю! Почитал статьи про...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
15.04.2010, 10:39     вычисление интеграла #2
Только свои значения подставь, я думаю разберёшься где


C
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//Lab 2_2_1
//Integral po formule tropecii
#include <STDIO.h>
#include <MATH.h>
#include <CONIO.h>
#define n 100
int i;
float a, b, h, x, s, sn, f[n];
main()
{
clrscr ();
a=0.5; b=2.5;
h=(b-a)/n;
f[1]=pow(a,2)*sqrt(pow((2+3*a),3));
f[100]=pow(b,2)*sqrt(pow((2+3*b),3));
for(i=1; i<n; i++)
         {
         x=(a+i*h);
         f[i]=pow(x,2)*sqrt(pow((2+3*x),3));
         sn+=f[i];
         }
s=(h/2)*(f[1]+f[100]+2*sn);
printf ("\nZnachenie integrala s=%f", s);
getch ();
}
 
 
 
//Lab 2_2_2
//Integral po formule Simpsona
#include <STDIO.h>
#include <MATH.h>
#include <CONIO.h>
#define n 100
int i;
float a, b, h, x, s, s1, s2, f[n];
main()
{
clrscr ();
a=0.5; b=2.5;
h=(b-a)/n;
f[1]=pow(a,2)*sqrt(pow((2+3*a),3));
f[100]=pow(b,2)*sqrt(pow((2+3*b),3));
for(i=1; i<n-1; i++)
         {
         x=(a+i*h);
         if (i%2==0)
            {
            f[i]=pow(x,2)*sqrt(pow((2+3*x),3));
            s1+=f[i];
            }
         else
            {
            f[i]=pow(x,2)*sqrt(pow((2+3*x),3));
            s2+=f[i];
            }
 
         }
 
s=(h/3)*(f[1]+f[100]+(2*s1)+(4*s2));
printf ("\nZnachenie integrala s=%f", s);
getch ();
}
sopik
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 81
15.04.2010, 12:37  [ТС]     вычисление интеграла #3
C
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
#include<stdio.h>
#include<math.h>
#define n 100
const double a=2.0, b=10.0;
const double h=(b-a)/n;
double func[n+1];
double f(double x)
{
return(x+1)*2*sqrt(log10(x));
}
double trapecii()
{
double result=0.0;
for(int i=0; i<n; ++i)
result+=(func[i]+func[i+1])*h/2;
return result;
}
double simpson()
{
double result=0.0;
result+=(func[0]+func[n])*h/3;
for(int i=1; i<n; i+=2)
result +=4*h/3*func[i];
for( i=2; i<n; i+=2)
result +=2*h/3*func[i];
return result;
}
void main()
{
for(int i=0; i<=n; ++i)
func[i]=f(a+i*h);
double I1, I2;
I1=trapecii();
I2=simpson();
printf("%f\n%f\n",I1,I2);
scanf("%F%f",I1,I2);
}
спасибо.у меня вот такой вариант еще есть.
mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
15.04.2010, 14:11     вычисление интеграла #4
Да забыл сказать, на моём примере ответы различаются / может погрешность такая при расчёте разными формулами/ я ещё не разбирался с этим.
У тебя 6 вариант?
sopik
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 81
15.04.2010, 14:16  [ТС]     вычисление интеграла #5
у меня 3-й, интегралы должны быть приблизительно равны до 3 значащих цифр, я отправил свой вариант на проверку.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2010, 16:49     вычисление интеграла
Еще ссылки по теме:

Вычисление определённого интеграла Dev-C++ - C++
Написать подпрограммы для вычисления подынтегральных функций f1(x), f2(x), f2(x) определенного интеграла от a до b с точностью e. ...

Вычисление интеграла с применением OpenMP - C++
Всем доброе утро. Написала программу вычисления интеграла с применением OpenMP, но она выдаёт ошибку, ошибку выдаёт при запуске консоли,...

Вычисление интеграла(исправить код) - C++
Добрый вечер! Помогите подправить код. Нужно чтобы точность и пределы интегрирования задавались с клавиатуры , а не были определены. ...

Написать программу: вычисление определенного интеграла - C++
Помогите пожалуйста написать программу на С++. Нарушение правил форума: Запрещено размещать задания и решения в виде картинок и других...

Вычисление интеграла по квадратурной формуле Гаусса - C++
Помогите, пожалуйста. Не нашел ничего схожего к требуемому заданию. Необходимо вычислить интеграл по квадратурной формуле Гаусса: ...

Вычисление интеграла методом Ньютона-Котеса - C++
Дан интеграл: \int_{0}^{\pi /2}\frac{x+sin(x)}{1+cos(x)} Методом Ньютона-Котеса вычислить интеграл (n=6) У меня такой код, но есть...


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

Или воспользуйтесь поиском по форуму:
mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
15.04.2010, 16:49     вычисление интеграла #6
Я ещё не отправлял
Yandex
Объявления
15.04.2010, 16:49     вычисление интеграла
Ответ Создать тему
Опции темы

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