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

Посчитать интеграл в С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
keeprogue
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 7
09.04.2013, 19:46     Посчитать интеграл в С++ #1
хелп, хелп!
Нужно посчитать интеграл в С++ и значение записать в файл.
все константы задаются
Миниатюры
Посчитать интеграл в С++  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 19:46     Посчитать интеграл в С++
Посмотрите здесь:

C++ Интеграл
посчитать интеграл...найти ошибку в программе C++
C++ Интеграл
C++ интеграл
интеграл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nullpointer
 Аватар для nullpointer
45 / 45 / 5
Регистрация: 30.03.2009
Сообщений: 518
09.04.2013, 22:24     Посчитать интеграл в С++ #2
Каким методом нужно посчитать интеграл то? Методом прямоугольников? трапеций? Симпсона?
keeprogue
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 7
10.04.2013, 01:16  [ТС]     Посчитать интеграл в С++ #3
трапеций
nullpointer
 Аватар для nullpointer
45 / 45 / 5
Регистрация: 30.03.2009
Сообщений: 518
10.04.2013, 09:19     Посчитать интеграл в С++ #4
Вот пример функции для Sin(x), думаю свою функцию подставить не составит труда.
Функция, для которой считаем интеграл:
C++
1
2
3
float function(float x){
    return sin(x);
}
Сам алгоритм:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float trapecii(float left_gr, float right_gr, int n){
    float ksi = 0.0;
    float delta_x = 0.0;
 
    float trapecii_integral = (function(left_gr) + function(right_gr)) / 2.0;   
    ksi = left_gr;
    delta_x = (right_gr - left_gr) / n;
 
    for (int k = 1; k < n; ++k){
        ksi += delta_x;
        trapecii_integral += function(ksi);
    }
 
 
    return trapecii_integral * delta_x;
}
left_gr - нижняя граница, right_gr - верхняя граница интегрирования, n - число интервалов, на которые разбивается отрезок интегрирования
prospector
 Аватар для prospector
7 / 7 / 0
Регистрация: 23.03.2013
Сообщений: 17
10.04.2013, 10:34     Посчитать интеграл в С++ #5
Вот тебе еще один наивный вариант. Гиперболический котангенс выразишь через tanh().

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
#include<iostream>
#include<fstream>
#include<cmath>
 
using namespace std;
 
double funct(double a);
 
int main()
{
  double a, b, h;
  ofstream out("out.txt");
 
  cout << "Enter a & b: "; cin >> a >> b;
  double sum = 0;
  double x = a;
  cout << "Enter h:  "; cin >> h;
  while(x < b) {
    sum += (funct(x) + funct(x+h));
    x = x + h;
  }
  sum = sum*h/2;
  cout << endl << "The integration is: " << sum << endl;
  out << sum;
}
 
double funct(double x)
{
  return x*x;
}
keeprogue
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 7
10.04.2013, 10:39  [ТС]     Посчитать интеграл в С++ #6
От души)
Такой еще вопросик
Как потом для какого то отрезка температур(T) значение интегралов в файл записать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 11:06     Посчитать интеграл в С++
Еще ссылки по теме:

C++ Интеграл BC++
Посчитать интеграл C++
C++ Как посчитать интеграл заданный табличным способом

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

Или воспользуйтесь поиском по форуму:
prospector
 Аватар для prospector
7 / 7 / 0
Регистрация: 23.03.2013
Сообщений: 17
10.04.2013, 11:06     Посчитать интеграл в С++ #7
Цикл тебе в помощь:

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
#include<iostream>
#include<fstream>
#include<cmath>
 
using namespace std;
 
double funct(double a, double t);
 
int main()
{
  double a, b, h;
  ofstream out("out.txt");
 
  cout << "Enter a & b: "; cin >> a >> b;
  cout << "Enter h:  "; cin >> h;
 
  const int size = 3; // размерность массива температур
  double T[size] = {1.0, 2.0, 3.5};
 
  for (int i = 0; i < size; i++) {
    double sum = 0;
    double x = a;
    while(x < b) {
      sum += (funct(x,T[i]) + funct(x+h,T[i]));
      x = x + h;
    }
    out << sum*h/2 << ' ';
  }
}
 
double funct(double x, double t)
{
  return x*x/t;
}
Yandex
Объявления
10.04.2013, 11:06     Посчитать интеграл в С++
Ответ Создать тему
Опции темы

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