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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
#1

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

05.05.2011, 18:31. Просмотров 1070. Ответов 1
Метки нет (Все метки)

Здравствуйте товарищи программисты. Мне нужна помощь в решении задачи на C++ Я в этом не очень понимаю, а по учебе надо. Задача: найти определенный интеграл: Название: интеграл.jpg
Просмотров: 380

Размер: 2.1 Кб с шагом 0,1 и точностью 0,001 методами центральных прямоугольников, методом трапеций и методом парабол (Симпсона). Обязательное условие: все три метода должны быть объеденены в одну программу Я написал вот такую программу:

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std; 
double F(double x)
 
{
return (x);
}
 
int One()
{
  double I0,I1,h,eps,a,x,b;
  int n,j;
  cout<<"Введите a и b"<<endl;
  cin>>a>>b;
  cout<<"Введите число разбиений [a,b]"<<endl;
  cin>>n;
  cout<<"Введите точность:"<<endl;
  cin>>eps;
  I0=I1+10;
  I1=0;
  while(fabs(I1-I0)>eps)
  {
      h=(b-a)/n;
      I1=0;
      for(j=0;j<n;j++)
      {
          x=a+(j+0.5)*h;
          I1=I1+(x*exp(x))*h; //сюда подставил свою под интегральную функцию
      }
      n=2*n;
      I0=I1;
  }
  cout<<"Интеграл I="<<I1<<endl;
 return 0;
 
}
 
// до сюда идет первая программа
double f(double x)
{
    return(x);
}
 
int Two()
{
    double I0,I1,h,eps,a,b,x;
    int n,j;
    cout<<"Введите a и b"<<endl;
    cin>>a>>b;
    cout<<"Введите число разбиений [a,b]"<<endl;
    cin>>n;
    cout<<"Введите точность"<<endl;
    cin>>eps;
 
    I0=1E+10;
    I1=0;
    while(fabs(I1-I0)>eps)
    {
        h=(b-a)/n;
        I1=0;
        for(j=1;j<n;j++)
        {
            x=a+j*h;
            I1=I1+(x*exp(x))*h; //сюда подставил свою под интегральную функцию
        }
        I1=I1+h*(F(a)+F(b))/2;
        n=2*n;
        I0=I1;
    }
    cout<<"Интеграл I="<<I1<<endl;
    return 0;
}
// До сюда идет прога 2
double func(double x)
{
    return(x);
}
int Free()
{
    double I0,I1,S1,S2,h,eps,a,b,x;
    int n,j;
    cout<<"Введите a и b"<<endl;
    cin>>a>>b;
    cout<<"Введите число разбиений [a,b]"<<endl;
    cin>>n;
    cout<<"Введите точность"<<endl;
    cin>>eps;
    I0=1E+10;
    I1=0;
    while(fabs(I1-I0)>eps)
    {
        h=(b-a)/n;
        S1=0;
        for(j=1;j<=n-1;j++)
        {
            x=a+j*h;
            S1=S1+x*exp(x); //сюда подставил свою под интегральную функцию
        }
        S2=0;
        for(j=2;j<n;j++)
        {
            x=a+j*h;
            S2=S2+(x*exp(x)); //сюда подставил свою под интегральную функцию
        }
        I1=(h/6)*(F(a)+F(b)+2*S1+4*S2);
        n=2*n;
        I0=I1;
    }
    cout<<"Интеграл I="<<I1<<endl;
    return 0;
}
int main()
{
int c;
setlocale(LC_ALL,"rus");
std::cout << "Метод центральных прямоугольников" <<endl;
cout<<endl;
One();
cout<<endl;
std::cout << "Метод трапеций" <<endl;
Two();
cout<<endl;
std::cout << "Метод Симпсона" <<endl;
Free();
system("pause");
return 0;
}
И получил вот это: Расчет интеграла в C++

но ответы программа выдает не верные они должны быть близкими или идентичными к ответам в MathCad

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

помогите пожалуйста найти ошибки в программе. Большое спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 18:31     Расчет интеграла в C++
Посмотрите здесь:

Вычисление интеграла C++
C++ Вычисление интеграла
C++ вычисление интеграла
Вычисление интеграла C++
C++ решение интеграла
C++ Вычисление интеграла
Вычисление определенного интеграла си++ C++
Функция нахождения интеграла C++
C++ Вычисление интеграла
Вычислить значение интеграла C++
C++ Вычисления интеграла
Вычисление определенного интеграла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
06.05.2011, 07:53  [ТС]     Расчет интеграла в C++ #2
Ну так что никто не знает где тут ошибка?
Yandex
Объявления
06.05.2011, 07:53     Расчет интеграла в C++
Ответ Создать тему
Опции темы

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