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

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

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

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

05.05.2011, 18:31. Просмотров 1082. Ответов 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++
Даны вещественные числа a, b. Значения функции f(x)=(x+1)2√lg x; a=2; b=10; записать в массив. Вычислить значение интеграла, используя: ...

Вычисление интеграла - C++
задача такая Вычислить с точностью\varepsilon интеграл ,где y=f(x) - прямая проходящая через точки A(c,d) и B - точку минимума ...

Вычисление интеграла - C++
вычислить интеграл \int_{0}^{6}\frac{exp^sqrt{\frac{6-x}{6+x}}}{(6+x)*\sqrt{36-x^2}} помогите с кодом вычисления данного...

Вычисления интеграла - C++
Помогите написать программу такого рода: 1 Вычисление значения определенного интеграла одном процессе с измерением времени вычисления с...

Вычисление интеграла - C++
Необходимо вычислить интеграл (сам интеграл задан функцией, например Functoin) методом правых прямоугольников, воспользовавшись критерием...

Вычисление интеграла - C++
Считаю интеграл на промедутке от -1 до 3... Интеграл a*a*a*a. Точность вычисления 0.00001... Код выполняется 10-12 секунд. Это нормально...

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

решение интеграла - C++
вычислить приближенное значение интеграла по формуле трапеции n=150 нижний предел 0 верхний 3 dx/(sqrt(16+x*x)) ...

Вычислить значение интеграла - C++
Ребят буду благодарен за помощь) пример который нужно реализовать программно на изображении)

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

Решение двойного интеграла C++ - C++
Помогите решить двойной интеграл, методом прямоугольников. По матану еще не прошли интегралы, по С++ уже задают, понятия не имею как это...

Решение определенного интеграла - C++
Добрый день! Нужна помощь в решении определенного интеграла методом прямоугольников. Спасибо.


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

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

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