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

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

Войти
Регистрация
Восстановить пароль
 
repa4ek
18 / 18 / 1
Регистрация: 25.12.2011
Сообщений: 159
#1

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

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

Уважаемые товарищи программисты, обращаюсь к вам уже не первый раз с надеждой что вы мне поможете. Мне нужно написать программу:
Массив (у0,у1, ... ,уn) представляет собой значения некоторой функции на
отрезке [a,b], причем a=y0,b=yn. Создать класс Integral, в котором
реализовано вычисление определенного интеграла методом прямоугольников,
методом трапеций и методом Симпсона.
Буду очень благодарен всем откликнувшимся, и если можно пожалуйста опишите подробно что и как делается Спасибо Вам огромное за то что вы делаете для нас юзеров С++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Методы вычисления интегралов (C++):

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

Методы вычисления определенного интеграла. - C++
Здраствуйте, требуется ваша помощь в разработке программы по методам интегрирования. метод Симпсона, Уэддля , Чебышева , Гаусса. Может...

Определить методы вычисления гипотенузы и площади прямоугольника - C++
Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел. Определить производный класс...

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

Создать описание класса, содержащего методы (функции) для вычисления - C++
2.Создать описание класса,содержащего методы(функции) для вычисления и вывода на экран в текстовый файл разницы максимум и минимум из K...

Наследование классов: определить методы изменения полей и вычисления произведения чисел - C++
#include <iostream> using namespace std; class Pai{ protected: int first; int second; public: ...

2
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
26.12.2011, 22:01 #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
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
repa4ek
18 / 18 / 1
Регистрация: 25.12.2011
Сообщений: 159
27.12.2011, 11:54  [ТС] #3
Огромное спасибо, вы даже не представляете как помогли мне
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2011, 11:54
Привет! Вот еще темы с ответами:

Разработать методы вычисления длины отрезка по координатам вершин и периметра треугольника по длинам сторон - C++
Разработать метод f(x1, y1, x2, y2), который вычисляет длину отрезка по координатам вершин (x1, y1) и (x2, y2), и метод d(a, b, c),...

Создать описание класса, содержащего методы (функции) для вычисления и вывода на экран суммы четных чисел - C++
Задача № 2 Создать описание класса, содержащего методы (функции) для вычисления и вывода на экран и в тестовый файл суммы четных значений...

Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел. - C++
Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел. Определить производный класс Rectangle...

Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. - C++
Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Определить производный класс Triangle с...


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

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

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