Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
julia23_97
0 / 0 / 2
Регистрация: 09.12.2013
Сообщений: 18
#1

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

15.04.2014, 20:01. Просмотров 1736. Ответов 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();
}
программа работает, но значения первого интеграла и второго не близки по значению( а должны). Что в этой программе не так ? Может для формул по прямоугольникам какая-то другая сумма должна быть?
http://www.cyberforum.ru/cpp-beginners/thread1832129.html
0
Миниатюры
Интегралы по формуле Симпсона и прямоугольников (С++)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 20:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Интегралы по формуле Симпсона и прямоугольников (С++) (C++):

Найти интеграл методами правых прямоугольников и Симпсона
Составить программу вычисления определенного интеграла методами правых...

Найти значения определенного интеграла по формулам прямоугольников, трапеции и Симпсона
Составить программу вычисления приближенного значения определенного интеграла...

Вычислить заданные интегралы по формулам трапеций и Симпсона, определяя шаг интегрирования
Вычислить заданные интегралы по формулам трапеций и Симпсона, определяя шаг...

Вычислить интеграл методами левых прямоугольников, трапеций и Симпсона с заданной точностью
Вычислить интеграл 14 ∫ x^3lnxd 06 методами левых...

Вычисление функции по формуле Симпсона и Треугольника
Вычислить функцию по формулам &quot;Треугольника&quot; и &quot;Симпсона&quot; функция во...

1
Exоrcist
15 / 15 / 9
Регистрация: 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);
      
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 20:27
Привет! Вот еще темы с решениями:

Найти ошибку в программе. Интеграл по формуле Симпсона,
посмотрите правильно ли выполнил задание // Lab14Y.cpp: определяет точку входа...

Вычислить значение интегралов по формуле прямоугольников
Вычислите приближенное значение, используя формулу прямоугольников, если...

Интегралы "Метод левых прямоугольников" (без заданной точности)!
Вообщем задача такая есть определенный интеграл cos(x) его первообразная...

Даны стороны трех прямоугольников Найти периметры и площади этих прямоугольников
1. S1=SSS(a1, b1); S2=SSS(a2, b2); S3=SSS(a3, b3);...


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

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

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