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

Интегралы по формуле Симпсона и прямоугольников (С++) - C++

Восстановить пароль Регистрация
 
julia23_97
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 18
15.04.2014, 20:01     Интегралы по формуле Симпсона и прямоугольников (С++) #1
Вычислить приближенное значение интеграла по формулам прямоугольников и Симпсона для n = 120 (интеграл на фото)
вот программа:
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
#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{  float a,b,n,h,x,s1=0,s2=0,s,res,res1;
   int i;
   cout<<"Введите нижний предел интегрирования:  "<<endl;
   cin>>a;
   cout<<"Введите верхний предел интегрирования: "<<endl;
   cin>>b;
   cout<<"Введите n:  "<<endl;
   cin>>n;
   x=a;
   h=(b-a)/2/n;              //шаг интегрирования
   for(i=2; i<=2*n-2; i+=2)  //вычисление суммы значений с четными номерами        
   {  s1+=x*x*sin(x);
      x+=2*h;
   }
   s1*=2;                    //удвоение суммы значений с четными номерами          
   x=a;
   for(i=1; i<=2*n-1; i+=2)  //вычисление суммы значений с нечетными номерами        
   {  s2+=x*x*sin(x);
      x+=2*h;
   }
   s2*=4;
   s=s1+s2+a*sin(a)+b*sin(b); //вычисление итоговой суммы 
   res=(b-a)*s/(6*n);         //приближенное вычисление интеграла по формуле Симпсона
   res1=(b-a)*s/n;             //приближенное вычисление интеграла по формуле прямоугольников
   cout<<"Integral = "<<res<<endl;
   cout<<"Integral2 = "<<res1<<endl
   getch();
}
программа работает, но значения первого интеграла и второго не близки по значению( а должны). Что в этой программе не так ? Может для формул по прямоугольникам какая-то другая сумма должна быть?
Миниатюры
Интегралы по формуле Симпсона и прямоугольников (С++)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 20:01     Интегралы по формуле Симпсона и прямоугольников (С++)
Посмотрите здесь:

Вычисление функции по формуле Симпсона и Треугольника C++
C++ Метод симпсона
C++ Найти ошибку в программе. Интеграл по формуле Симпсона,
Даны стороны трех прямоугольников Найти периметры и площади этих прямоугольников C++
Объединение прямоугольников (количество объединенных прямоугольников минимально) C++
Найти значения определенного интеграла по формулам прямоугольников, трапеции и Симпсона C++
Найти интеграл методами правых прямоугольников и Симпсона C++
C++ Формула Симпсона

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Exоrcist
 Аватар для Exоrcist
15 / 15 / 7
Регистрация: 20.02.2014
Сообщений: 86
15.04.2014, 20:27     Интегралы по формуле Симпсона и прямоугольников (С++) #2
julia23_97, обязательно программа должна быть на СИ++?

Добавлено через 3 минуты
Вот часть кода по другому принципу:
Java
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
static int a = 0; // пределы интегрирования
    static int b = 1;
    static double e = 0.0001;//точность
    static double h = 0.05; //шаг
    int amount = 0; 
    double func (double x)
    {
        return Math.cos(x);
    }  
    //метод левых прямоугольников c постоянным шагом
    double LevPrCons(double a, double b, double h)
    { double x = 0; 
      double otv = 0;
    
    for (x = a; x<b; x+=h){
        otv = (otv+func(x));
        
    }
      otv*=h;
      return otv;
    }
    //метод левых прямоугольников c автоматическим шагом
    double LevPrAuto(double a, double b)
    { 
        double otv1 = LevPrCons(a,b,b-a);
        double otv2 = LevPrCons(a,b,(b-a)/2);
        amount++;
        if( Math.abs(otv1-otv2) < e*(b-a)/(b-a) ) return otv2;
   else return LevPrAuto(a,(a+b)/2) + LevPrAuto((a+b)/2,b);
      
    }
Yandex
Объявления
15.04.2014, 20:27     Интегралы по формуле Симпсона и прямоугольников (С++)
Ответ Создать тему
Опции темы

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