Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/64: Рейтинг темы: голосов - 64, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 13
1

Вычисление интеграла по формуле трапеций

06.09.2011, 18:33. Показов 11981. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста написать программу на С++ Builder
розробити програму обчислення визначеного інтегралу за формулою сімпсона та трапецій
примерчик как это делать можете скинуть?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2011, 18:33
Ответы с готовыми решениями:

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

Вычисление интеграла методом Гаусса
Написать и отладить программу вычисления интеграла указанным методом двумя способами – по заданному...

Вычисление определенного интеграла методом Симпсона
Привет,у меня есть работающий метод трапеций и левых прямоугольников,я всячески пробовал сделать...

Вычисление определенного интеграла методом левых прямоугольников
Привет,помогите разработать программу, вычисляющую определенный интеграл : методом левых...

7
22 / 22 / 2
Регистрация: 08.09.2011
Сообщений: 22
08.09.2011, 19:30 3
Насколько подробно Вам нужно?

Вот Вам функция расчета по методу Симпсона:

Прототипы функций :
C++
1
2
3
4
5
6
7
8
/*Параметры функций : 
 @x - значение переменной x 
 @a - нижний придел интегрирования 
 @b - верхний придел интегрирования
 @n - количество кусочков, на которое разбивается интеграл 
*/
double getSimpson(long double x,double a,double b , unsigned int n ) ;
double getTrap(long double x,double a,double b , unsigned int n );
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
double getSimpson(long double x,double a,double b , unsigned int n )
{
    double dStep,      //Шаг
           h ;             //Величина шага
 
          int i  ;          //Переменная цикла
 
    double F[n],       //Массив, содержащий значение площади , каждого из n-отрезков
           dResult,     //Конечный результат
           dTmp;       //Промежуточный результат
 
 
    h = (b-a) / n;     //Расчитываем величену  шаг
 
    for(i=0, dStep = a; i<n; i++, dStep+=h )    //В кач. начала отр. берем нижний придел интеграла и все время перемещаемся на Шаг
        F[i] = 1 / (x*log(x) );                //Сохраняем знач. площади , каждого из кусочков
 
    dResult = 0;
 
    for(i=1; i<n; i+=2)                         //Цикл 1,3,5,7 ... n
     dResult += F[i];                           //Записываем сумму нечетных отрезков
 
    dResult *= 4;                               //Умножаем сумму нечетных отрезков на 4
    dTmp = 0;
    for(i=2; i<n-1; i+=2)                       //Цикл 2,4,6,8,10 ... n-1
     dTmp += F[i];                              //Записываем сумму четных отрезков
     dTmp*= 2 ;                                 //Умножаем сумму четных отрезков на 2
 
    dResult += dTmp + F[0] + F[n-1];            //К сумме нечетных прибовляем сумму четных и учитываем нулевой и предпосл. элементы
 
    dResult *= h/3;                             //Весь результат умножаем на Шаг/3
 
    return dResult ;                            //Возврашаем площать интеграла
}
Вот по методу Трапеции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
double getTrap(long double x,double a,double b , unsigned int n )
{
    double dStep,                   //Шаг
           h ;                      //Величина шага
    int i  ;                        //Переменная цикла
    double F[n],                    //Массив, содержащий значение площади , каждого из n-отрезков
           dResult ;                //Конечный результат
 
    h= (b-a) / n;                   //Расчитываем величену  шаг
 
    for(i=0, dStep = a; i<n; i++, dStep+=h )     //В кач. начала отр. берем нижний придел интеграла и всевремя перемещаемся на Шаг
        F[i] = 1 / (x*log(x) );                 //Сохраняем знач. площади , каждого из кусочков
 
    dResult = 0;
 
    for(i=1;i<n-1;i++)
     dResult += F[i];                           // Суммируем значения отрезков, не включая 1-ый и предпоследний
    dResult += F[0]/2 + F[n-1]/2;               // Пребовляем к результату первый и последний значения отрезков , деленные на 2
    dResult *= h;                               // Умножаем рузультат на значение шага
 
    return dResult ;                            //Возврашаем площать интеграла
}
Если будут вопросы , обращайтесь
0
0 / 0 / 0
Регистрация: 12.04.2015
Сообщений: 4
19.05.2015, 03:37 4
Go0gle, Добрый день.

Извините, а где здесь задаётся сама формула интеграла? Или этого тут просто нет... не могу понять. Просто у меня такая же задача на с++.
0
управление сложностью
1684 / 1297 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.05.2015, 08:21 5
Интеграл - это обычно цикл от и до, в теле цикла выполняется некий код, интерпретирующий сам интеграл
0
0 / 0 / 0
Регистрация: 12.04.2015
Сообщений: 4
19.05.2015, 09:08 6
Почтальен, Спасибо за оперативный ответ. То есть, если я правильно понимаю, здесь не хватает еще 1 цикла, от a до b (границы интеграла), содержащего его формулу?)
0
управление сложностью
1684 / 1297 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.05.2015, 09:11 7
Цитата Сообщение от tomimorama Посмотреть сообщение
То есть, если я правильно понимаю, здесь не хватает еще 1 цикла, от a до b (границы интеграла), содержащего его формулу?)
Да, вы правильно поняли
0
0 / 0 / 0
Регистрация: 12.04.2015
Сообщений: 4
19.05.2015, 09:12 8
Благодарю. Бум пробовать)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2015, 09:12

Приближенное вычисление интеграла от быстро осциллирующей функции
Ребята привет) Задали курсовую на тему приближенное вычисление интеграла от быстро осциллирующей...

Вычисление по формуле
:cry:

Вычисление интеграла по формуле трапеций
Ребята помогите,хочу создать программу в Delphi 7 вычисления интеграла по формуле...

Вычисление двойного интеграла по формуле трапеций
Добрый день! Подскажите, пожалуйста, как рассчитать двойной интеграл по формуле трапеций? ...


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

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

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