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

Интегрирование методом левых прямоугольников

01.07.2014, 08:59. Просмотров 3823. Ответов 10
Метки нет (Все метки)

Доброго времени суток, дорогие программисты.
В универе дали задание, а я С++ не особо шарю, помогите пожалуйста выполнить)
Задание:
"В прикладной программе проводится функция f(x)=cos(x), пределы интегрирования А и В. Решение провести методом левых прямоугольников.

Помогите, буду благодарен и вам + к карме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 08:59
Ответы с готовыми решениями:

Интегрирование методом левых прямоугольников
Задание: "В прикладной программе проводится функция f(x)=cos(x), пределы...

Решение интеграла методом левых прямоугольников
есть программа которая решает ингерал методом средних прямоугольников, вот: ...

Определенный интеграл от функции методом левых прямоугольников с заданной точностью
Всем привет! Данная программа считает определенный интеграл от функции методом...

Интегрирование методом прямоугольников и трапеций
Такой вопрос, писал программу, которая вычисляет определенный интеграл методом...

Метод левых и правых прямоугольников
Здравствуйте, написал функцию для левых прямоугольников для приближенного...

10
S_el
2137 / 1667 / 353
Регистрация: 15.12.2013
Сообщений: 6,621
01.07.2014, 09:11 #2
doggfather, показывайте наработки.
0
doggfather
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 6
01.07.2014, 09:19  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;
 
double f (double x);
double IntLeft(double a, double b, int n);
 
int main()
{
    double const a=8; //Нижний предел интеграла
    double const b=9;//Верхний
    int n;
    cout<<"n="; cin>>n;
    cout<<endl<<IntLeft(a,b,n);
    return 0;
}

Я хз как дальше, мне нужно чтобы юзер с клавиатуры вводил пределы интегрирования, и точность
0
S_el
2137 / 1667 / 353
Регистрация: 15.12.2013
Сообщений: 6,621
01.07.2014, 09:25 #4
C++
1
2
3
4
5
6
...
cout<<"Введите a"<<endl;
cin>>a;
cout<<"Введите b"<<endl;
cin>>b;
...
С точностью аналогично.
0
doggfather
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 6
01.07.2014, 11:16  [ТС] #5
я тут немного поспрашивал, вобщем чутка переделал, только все равно остаются вопросы, там где стоят "????" не знаю как закодить:
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
using namespace std;
 
//функция интеграла
float Integ(float x)
{
    return cos(x)
}
//формула левых прямоугольников
float left(int n,float a,float b)
{
   ??????
}
 
//главная функция
            int main()
    {
            float a, b, e=0.001
            int n=20
            cout<<"Введите нижний предел интегрирования"<<endl;
            cin>>a;
            cout<<"Введите верхний предел интегрирования"<<endl;
            cin>>b;
            while (?????)
}
            printf("интеграл равен ="left(???));
    getch();
}
0
S_el
2137 / 1667 / 353
Регистрация: 15.12.2013
Сообщений: 6,621
01.07.2014, 11:19 #6
doggfather, в результате интегрирования у вас получится число.
После while тоже надо поставить открывающую скобку.
К слову,совмещать вывод с помощью cout и printf не рекомендуется.
0
doggfather
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 6
01.07.2014, 11:27  [ТС] #7
а как реализовать саму формулу метода левых прямоугольников в С++, а именно вот здесь:
C++
1
2
3
4
float left(int n,float a,float b)
{
   ??????
}
?
0
S_el
2137 / 1667 / 353
Регистрация: 15.12.2013
Сообщений: 6,621
01.07.2014, 11:38 #8
Набросал,саму формулу уточните:

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 <cmath>
# include <locale.h>
using namespace std;
 
 
double func(const double &x)
{
return cos(x);
}
 
double integr_lefttriangle(const int &n,const double &a,const double &b)
{
double sum=0;
double step=(b-a)/n;
for(double i=a;i<b;i=i+step)
    sum+=func(i);
return sum*step;
}
 
 
int main()
{
setlocale(LC_ALL,"rus");
double a, b;
int n=20;
cout<<"Введите нижний предел интегрирования"<<endl;
cin>>a;
cout<<"Введите верхний предел интегрирования"<<endl;
cin>>b;
 
cout<<"Интеграл равен "<<integr_lefttriangle(n,a,b)<<endl;
return 0;
}
1
doggfather
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 6
01.07.2014, 12:05  [ТС] #9
Вас не затруднит комментов в код набросать, охото разобраться с устройством программы)
0
S_el
2137 / 1667 / 353
Регистрация: 15.12.2013
Сообщений: 6,621
01.07.2014, 12:23 #10
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
#include <iostream>
#include <cmath>
# include <locale.h>
using namespace std;
 
//интегрируемая функция 
double func(const double &x)
{
return cos(x);
}
 
//функция для вычисления интеграла методом левых прямоугольников 
double integr_lefttriangle(const int &n,const double &a,const double &b)
{
double sum=0;
double step=(b-a)/n;//шаг
for(double i=a;i<b;i=i+step)
    sum+=func(i);//суммируем значения функции в узловых точках
return sum*step;//множим на величину шага и возвращаем в вызывающую функцию
}
 
 
int main()
{
setlocale(LC_ALL,"rus");//для русских букв в консоли
double a, b;
int n=20;//количество точек разбиения
cout<<"Введите нижний предел интегрирования"<<endl;
cin>>a;
cout<<"Введите верхний предел интегрирования"<<endl;
cin>>b;
 
cout<<"Интеграл равен "<<integr_lefttriangle(n,a,b)<<endl;
return 0;
}
0
doggfather
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 6
01.07.2014, 17:43  [ТС] #11
премного благодарен с помощью в этом деле!)
0
01.07.2014, 17:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 17:43

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

Как дописать программу что бы она правильно считала по методу левых прямоугольников?
Как дописать программу что бы она правильно считала по методу левых...

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


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

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

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