Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
19 / 19 / 1
Регистрация: 25.12.2011
Сообщений: 159

Методы вычисления интегралов

26.12.2011, 19:10. Показов 1986. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые товарищи программисты, обращаюсь к вам уже не первый раз с надеждой что вы мне поможете. Мне нужно написать программу:
Массив (у0,у1, ... ,уn) представляет собой значения некоторой функции на
отрезке [a,b], причем a=y0,b=yn. Создать класс Integral, в котором
реализовано вычисление определенного интеграла методом прямоугольников,
методом трапеций и методом Симпсона.
Буду очень благодарен всем откликнувшимся, и если можно пожалуйста опишите подробно что и как делается Спасибо Вам огромное за то что вы делаете для нас юзеров С++
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2011, 19:10
Ответы с готовыми решениями:

Библиотека для вычисления интегралов
Добрый день. Есть ли какие-либо библиотеки для вычисления неопределенных интегралов?

В какой библиотеке есть функция для вычисления интегралов?
подскажите в какой библиотеке есть функция для вычисления интегралов?

метод трапеции для вычисления интегралов
помогите решить задачу! Нахождение определенных интегралов методом трапеции.

2
 Аватар для Питекантроп
251 / 145 / 21
Регистрация: 14.06.2010
Сообщений: 340
26.12.2011, 22:01
Лучший ответ Сообщение было отмечено repa4ek как решение

Решение

Вот. Две варианта метода. Первый от функции (что удобнее), а второй от массива.

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
64
65
66
67
68
69
70
71
72
73
74
75
76
#include<iostream>
#include <string.h>
using namespace std; 
 
enum integralMethods {methRect, methTrap, methSymp};
class Integral
{
public:
    static double getIntegral(double (*fun)(double), double x1, double x2, integralMethods meth, int count = 1000)
    {
        if (count<2) return 0;
        double xx = x2 - x1, sum; 
        int c1 = count - 1; 
        switch (meth)
        {
            case methRect:
            sum = 0;
            for (int i = 0; i < c1; i++) sum += (*fun)(x1 + i * xx/c1);  
            break;
            case methTrap:
            sum = ((*fun)(x1) + (*fun)(x2))*0.5;
            for (int i = 1; i < c1; i++) sum += (*fun)(x1 + i * xx/c1);  
            break;
            case methSymp:
            sum = (*fun)(x1) + (*fun)(x2);
            c1 = (c1>>1)<<1;
            for (int i = 1; i < c1; i += 2) sum += 4 * (*fun)(x1 + i * xx/c1);  
            for (int i = 2; i < c1; i += 2) sum += 2 * (*fun)(x1 + i * xx/c1);  
            sum /= 3;
            break;
        }
        return sum * xx/c1;
    }
    static double getIntegral(double * array, double x1, double x2, integralMethods meth, int count)
    {
        if (count<2) return 0;
        double xx = x2 - x1, sum; 
        int c1 = count - 1;     
        switch (meth)
        {
            case methRect:
            sum = 0;
            for (int i = 0; i < c1; i++) sum += array[i];  
            break;
            case methTrap:
            sum = (array[0] + array[c1])*0.5;
            for (int i = 1; i < c1; i++) sum += array[i];  
            break;
            case methSymp:
            sum = array[0] + array[c1];
            for (int i = 1; i < c1; i += 2) sum += 4 * array[i];  
            for (int i = 2; i < c1; i += 2) sum += 2 * array[i];  
            sum /= 3;
            break;
        }
        return sum * xx/c1;
    }
};
 
static double parab(double x)
{
    return x*x;
}
 
int main()
{
    cout<<Integral::getIntegral(parab,0,4,methRect)<<endl;
    cout<<Integral::getIntegral(parab,0,4,methTrap)<<endl;
    
    int cnt = 1001;
    double * y = new double[cnt];
    double x1 = 0, x2 = 4;
    for (int i = 0; i<cnt; i++) y[i] = parab(x1 + i*(x2 - x1)/(cnt - 1));
    cout<<Integral::getIntegral(y,x1,x2,methRect,cnt)<<endl;
    return 0;
}
1
19 / 19 / 1
Регистрация: 25.12.2011
Сообщений: 159
27.12.2011, 11:54  [ТС]
Огромное спасибо, вы даже не представляете как помогли мне
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2011, 11:54
Помогаю со студенческими работами здесь

Методы вычисления определенных интегралов
Всем привет. Есть полностью написаная программа для вычисления интегралов методом прямоугольников(левых,правых,средних),методу трапеций и...

Методы вычисления определенных интегралов
Всем привет. Помогите написать программу. Нужно: 1)Составить программу для вычисления интеграла по методу прямоугольников(левых,правых...

Методы вычисления определённых интегралов
1) Рассмотреть следующие методы приближенного вычисления определённых интегралов: а) метод прямоугольников (левых, правых или средних),...

Численные методы вычисления интегралов-Метод Ньютона-Котеса
Нужно написать программу что-бы считала интеграл методом Ньютона-Котеса (Если такая есть, я не нашел ее в Интернете) Решить примерb и...

Вычисления интегралов в C#
Нужна написать программу для вычисления интегралов 4 методами ( параболы, трапеции, прямоугольника (левый и правый, средний)). Заранее...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru