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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
#1

Найти приближенное значение определенного интеграла по методу прямоугольников с точностью e=10^-3 - C++

11.10.2012, 08:45. Просмотров 1951. Ответов 3
Метки нет (Все метки)

Помогите с решение задачи, суть проблемы в том, что не знаю как сделать точность значения. Так же помогите со 2-м кодом.

1-й код:
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 "stdafx.h"
#include <iostream>
#include <math.h>
#include <Windows.h>
 
using namespace std;
 
double f1(double a, double b, int n,double(*f)(double) )
{
    double f_temp,h;
    int i;
    f_temp=0.0;
    for(i=1;i<=n;i++)
    {
        h=(b-a)/n;
        f_temp+=f(a+h*(i-0.5));
    }
    return f_temp;
}
double integral(double x)
{
    return pow(x+1,2)*pow(2,x);
}
int main()
{
    setlocale(LC_ALL,"Russian");
    double S;
    S=f1(0,1,10,integral);
    cout<<"Значение интеграла: "<<"((x+1)^2)*2^x"<<"\n"<<"По методу прямоугольников равно: "<<S<<"\n";
    return 0;
}
Он работает правильно, кроме точности.

2-й код:
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 "stdafx.h"
#include <iostream>
#include <math.h>
#include <Windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    double a,b,f,f_temp,h,E,in,x,S;
    int n,i;
    E=0.001;
    f_temp=0;
    x=0;
    S=0;
    cout<<"Введите a: ";cin>>a;
    cout<<"Введите b: ";cin>>b;
    cout<<"Введите кол-во шагов n: ";cin>>n;
    for(i=1;i<=n;i++)
    {
        
        h=(b-a)/n;
        f=(a+h*(i-0.5));
        f_temp+=f;
    }
    in=pow(x+1,2)*pow(2,x);
    
    return 0;
}
В нем я избавился от функций, и ввел ввод с клавиатуры, но не знаю как сделать вывод.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 08:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти приближенное значение определенного интеграла по методу прямоугольников с точностью e=10^-3 (C++):

Составить программу для вычисления определенного интеграла по методу прямоугольников - C++
Помогите мне, пожалуйста, с задачками. Язык учу недавно совсем, но что-то вызвал он у меня трудности даже в легких задачах :( Задачки...

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

Найти приближенное значение интеграла - C++
Ребята, вы очень нужны) Найти приближенное значение интеграла по формуле средних прямоугольников: N=14. Заранее спасибо)

Найти значение интеграла методом прямоугольников - C++
помогите найти ошибку #include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;math.h&gt; using namespace std; const double b =...

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

Вычисление определенного интеграла функции y(x) численными методами прямоугольников и трапеций - C++
Разработать компьютерную программу вычисления определенного интеграла функции y(x) численными методами прямоугольников и трапеций. В виде...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cmath
Модератор
2433 / 1660 / 133
Регистрация: 11.08.2012
Сообщений: 3,301
Завершенные тесты: 5
11.10.2012, 09:45 #2
Постройте последовательность сумм Дарбу {S(n)} так, чтобы при увеличении n S(n)->I, I значение интеграла. Для этого достаточно просто увеличивать n
Цитата Сообщение от Stroun Посмотреть сообщение
C++
1
2
3
4
5
6
for(i=1;i<=n;i++)
 {
h=(b-a)/n;
 f=(a+h*(i-0.5));
 f_temp+=f;
 }
т.е. ввести еще один цикл здесь (while имхо лучше). Увеличивать n до тех пор, пока разность между n-ой и (n-1)-ой суммами не станет меньше требуемой точности.
1
Stroun
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 20
11.10.2012, 10:00  [ТС] #3
Уже сделал, что нужно было.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2012, 11:21 #4
Цитата Сообщение от Hydrogen Посмотреть сообщение
Постройте последовательность сумм Дарбу {S(n)}
Сумы Дарбу это здорово, но там фигурируют точные нижние и верхние грани, а в методе прямоугольников все немного по-другому. Если метод левых прямоугольников, то приближенное значение интеграла
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^n f(x_{i-1})\delta_i, где http://www.cyberforum.ru/cgi-bin/latex.cgi?\delta_i = x_i - x_{i-1}
если метод правых прямоугольников, то
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^n f(x_{i})\delta_i
если же метод средних прямоугольников, то
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^n f(\frac{x_{i-1}+x_{i}}{2})\delta_i

нижняя же сумма Дарбу равна
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^n \inf_{x\in |x_{i-1},x_i|}f(x) \delta_i

верхняя
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^n \sup_{x\in |x_{i-1},x_i|}f(x) \delta_i

Даже если функция f непрерывна на отрезке [a,b] и inf и sup на соответствующих отрезках превратятся в минимумы и максимумы, это не облегчит ситуацию.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 11:21
Привет! Вот еще темы с ответами:

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

Разработать программу для вычисления определенного интеграла методом средних прямоугольников. Проверка курсовой - C++
Будьте добры , проверьте правильно ли считает данная программа.И можно ли её доработать? Задание: Разработать программу для вычисления...

Даны интегралы. Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001 - C++
помогите пожалуйста!!!! даны интегралы.Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001:по...

Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5 - C++
Для функции вычислить ее приближенное значение с точностью ε=10^-3 в точке х=1,5. Погрешность ε вычислять с помощью следующего соотношения:...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.10.2012, 11:21
Ответ Создать тему
Опции темы

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