..:::BesT:::..
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195
1

Интеграл

14.06.2009, 23:56. Показов 3708. Ответов 7
Метки нет (Все метки)

Составить программу вычисления определенного интеграла функции f(x) на отрезке [а,b] методом Симпсона.

Интеграл


Интеграл
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2009, 23:56
Ответы с готовыми решениями:

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

интеграл
Подскажите пожалуйста как написать прогу для решения интегралов.

интеграл
Всем доброго времени суток, нужно решить интеграл

Интеграл BC++
Задание: Вычислить определённый интеграл I=\int_{a}^{b}f(x)dx методом прямоугольников: ...

7
Maniac
Эксперт С++
1462 / 963 / 160
Регистрация: 02.01.2009
Сообщений: 2,817
Записей в блоге: 1
15.06.2009, 00:02 2
https://www.cyberforum.ru/post151946.html
1
..:::BesT:::..
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195
15.06.2009, 19:48  [ТС] 3
Где тут задать ввод x(икса)
Программа не считает, а выводит всегда одно и тоже значение
Компилирую в Borland C++ 4.5

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
#include <iostream.h>
#include <math.h>
double f(double);
double integral(double ,double ,int );
int main (int argc, char* argv[])
    {
double a=1.9999,b=0,h,I,I2,ksi,vel;
 int n=1,n2;
 
cout<<"Число разбиений:"<<endl;
cin>>ksi;
 do
    {
 n  = n*2;
 h  = (b-a)/n;
 n2 = n*2;
 vel =(ksi*h*n)/(b-a);
I  = integral(a, b, n);
I2 = integral(a, b, n2);
if (h < 0.2e-3) break;
    }
while (abs(I - I2) > vel);
cout<<"Интеграл: "<<I2;
return 0;
    }
double integral(double aa, double bb, int n)
    {
double locI, h, xi, s1=0.0, s2=0.0, y[1000];
 int i;
    h=(bb-aa)/n;
    xi=aa;
for (i=0; i<=2*n; i++)
    {
    y[i] = f(xi);
    xi = xi + h/2;
    }
locI=y[0]+y[2*n];
for(i=2; i< 2*n; i=i+2)
    s1 = s1 + y[i];
for(i=1; i<2*n; i=i+2)
    s2 = s2 + y[i];
locI=(locI+2.0*s1+4.0*s2)*(h/6);
return (locI);
    }
double f(double x)
{return 2*asin(x/2)-1/2*sin(4*asin(x/2));}
0
2814 / 1405 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
15.06.2009, 20:01 4
Best-pm07, вам же ISergey дал ссылку на пост функции, которая находит определнный интеграл методом Симпсона.

вы просто в main()
пишите

C++
1
cout << Simpson(f) << endl;
где f - это ваша, интегрируемая функция..

Функция Simpson - сам запросит ввод границ интегрирования, и числа отрезков..

Добавлено через 3 минуты 21 секунду
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
#include <iostream.h>
#include <math.h>
 
// интегрируемая функция
double f(double x)
{
    return 2*asin(x/2)-1/2*sin(4*asin(x/2));
}
 
// нахождение интегралла методом Симпсона
double Simpson(double (*Fx)(double))
{
        double I;
        double h;
        double x;
        double a,b;
        int m;
        
 
        cout << "\n Input integral atributes:\n" << endl;
        cout << "\t-> Enter a = ";
        cin >> a;
 
        cout << "\t-> Enter b = ";
        cin >> b;
 
        cout << "\t-> Enter m = ";
        cin >> m;
 
        h=(b-a)/(m-1);
        x = a;
 
        I = Fx(a) + Fx(b);
        int n=0;
 
        while (n < m-2)
        {
                x = x+h;
                if (n%2==0) I=I+4*Fx(x);
                        else  I = I+2*Fx(x);
                n++;
        }
 
        return I*h/3;
}
 
int main()
{
    cout << Simpson(&f) << endl;
    cin.get(); // pause
    return 0;
}
1
..:::BesT:::..
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195
15.06.2009, 20:08  [ТС] 5
получается, что x вводить не надо...?
0
Maniac
Эксперт С++
1462 / 963 / 160
Регистрация: 02.01.2009
Сообщений: 2,817
Записей в блоге: 1
15.06.2009, 20:10 6
Цитата Сообщение от Best-pm07 Посмотреть сообщение
получается, что x вводить не надо...?
х - не надо.

Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Функция Simpson - сам запросит ввод границ интегрирования, и числа отрезков..
1
2814 / 1405 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
15.06.2009, 20:10 7
Best-pm07, ты хоть знаешь что такое определенный интегралл?
если тебе надо найти определнный интеграл от функции

C++
1
2
3
4
double f(double x)
{
    return 2*asin(x/2)-1/2*sin(4*asin(x/2));
}
то листинг полной программы приведен выше.
1
..:::BesT:::..
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195
15.06.2009, 20:13  [ТС] 8
все, всем спасибо, понял

Добавлено через 2 минуты 17 секунд
я просто проверял расчеты моей программы - через прогу на мобилке и нечаянно не то нажал и в мобилке запрашивало x, меня заклинило и я подумал что и в моей проге нужен X

ещё раз спасибо, я понял, что приведен готовый исходник, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2009, 20:13
Помогаю со студенческими работами здесь

Посчитать интеграл в С++
хелп, хелп! Нужно посчитать интеграл в С++ и значение записать в файл. все константы задаются

Определенный интеграл
Необходимо численным методом найти приближенное значение определенного интеграла(скинул задание с...

Вычислить интеграл
Помоги пожалуйста))

Определенный интеграл
Нужно написать программу вычисляющую интеграл от cos(x), используя циклы for и while (do..while) ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru