Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

14.04.2010, 18:45. Просмотров 1139. Ответов 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). Во второй форм. две суммы - нечётные и чётные значения сумм-ся отдельно и потом по формуле находится общая сумма.
Помогите с кодом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2010, 18:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вычисление интеграла (C++):

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

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

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

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

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

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

5
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 ();
}
1
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);
}
спасибо.у меня вот такой вариант еще есть.
0
mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
15.04.2010, 14:11 #4
Да забыл сказать, на моём примере ответы различаются / может погрешность такая при расчёте разными формулами/ я ещё не разбирался с этим.
У тебя 6 вариант?
0
sopik
2 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 81
15.04.2010, 14:16  [ТС] #5
у меня 3-й, интегралы должны быть приблизительно равны до 3 значащих цифр, я отправил свой вариант на проверку.
0
mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
15.04.2010, 16:49 #6
Я ещё не отправлял
0
15.04.2010, 16:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2010, 16:49
Привет! Вот еще темы с ответами:

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

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

Вычисление определенного интеграла! - C++
Помогите плиз с с++! С заданной погрешностью вычислить интеграл!

Вычисление определенного интеграла си++ - C++
Составить программу вычисления определенного инте-грала с помощью метода Гаусса и Симпсона #include&lt;iostream&gt; #include&lt;math.h&gt; ...


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

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

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