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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
#1

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

17.01.2014, 22:06. Просмотров 1732. Ответов 6
Метки нет (Все метки)

Будьте добры , проверьте правильно ли считает данная программа.И можно ли её доработать?
Задание:
Кликните здесь для просмотра всего текста
Разработать программу для вычисления определенного
интеграла методом средних прямоугольников для функции
типа: y=a ∙ cos (b ∙ x )+ x^c . Коэффициенты a, b, c и границы
интервала интегрирования считываются с экрана.

Решение:
Кликните здесь для просмотра всего текста
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include <math.h>
#include <iostream>
 
using namespace std;
 
//---------------------------------------------------------------------------
//Подынтегральная функция
double func(double,double,double,double);
 
//---------------------------------------------------------------------------
// Метод средних прямоугольников
double Int(double,double,double);
 
//---------------------------------------------------------------------------
// Проверка количество точек разбиения отрезка интегрирования (n) 
int test(int n);
 
void main()
{
setlocale(LC_ALL,"Russian" );
 
double x1,x2,a,b,c;
unsigned long int n;
cout<<"Задание:"<<endl<<"Разработать программу для вычисления определенного интеграла"<<endl<<"методом средних прямоугольников для функции типа:"<<endl<<"y=a*cos(b*x)*x^c"<<endl<<"Коэффициенты a, b, c и границы интервала интегрирования считываются с экрана."<<endl;
 
cout<<"-----------------------------------------------------------------------------"<<endl;
cout<<"\nОпределите границы интервала:"<<endl<<"\nx1:\t"; 
cin>>x1;
cout<<"x2:\t";
cin>>x2;
 
 
while(true)
{
int cs;
cout<<"\nВведите количество точек разбиения отрезка интегрирования n."<<endl<<"\nn:\t";
cin>>n;
cs=test(n);
if (cs==0)
cout<<"\nЗначение n меньше единицы. Введите заново.\n";
else
break;
}
 
//--------------------------------------------------------------------------- 
//Вывод результата
 
cout << endl <<"\nРезультат интегрирования= " << Int(x1,x2,n)<<endl;
 
}
 
//---------------------------------------------------------------------------
// Метод средних прямоугольников
double Int(double x1,double x2,double n)
{
double a,b,c;
cout<<"\nВведите коэффициенты подынтегральной функции{y=a * cos (b * x )+ x^c}:"<<endl<<"\na\t";
cin>>a;
cout<<"b:\t";
cin>>b;
cout<<"c:\t";
cin>>c;
    double dx=fabs(x1-x2)/n;//приращение
    double Integ=0;
    for ( int i=0 ; i<n ; i++)
    {
        Integ += func((x1+dx*i),a,b,c);
    }
    Integ *= dx;
    return Integ ;
}
//---------------------------------------------------------------------------
//Подынтегральная функция
 
double func(double x,double a,double b,double c)
{
return (a * cos (b * x )+ pow (x,c));
}
 
//---------------------------------------------------------------------------
// проверка количество точек разбиения отрезка интегрирования (n) 
int test(int n)
{
if (n<1)
return 0; 
else
return 1;
}

И еще парочку вопросов :
1)Нужно ли писать чему равен интеграл?
2)Может ли быть число n дробным?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разработать программу для вычисления определенного интеграла методом средних прямоугольников. Проверка курсовой (C++):

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

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

Разработать программу для вычисления значения определенного интеграла - C++
Разработать программу для вычисления значения определенного интеграла на интервале (a,b подобрать самостоятельно) численными методами...

Составить программу для вычисления определенного интеграла методом Симпсона - C++
ПОМОГИТЕ ПОЖАЛУЙСТА Составить программу для вычисления определенного интеграла методом Симпсона. Вид подынтегральной функции F(x)...

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

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

6
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,484
17.01.2014, 22:15 #2
Цитата Сообщение от 150333 Посмотреть сообщение
2)Может ли быть число n дробным?
n-число отрезков,делать его дробным бессмысленно.

Цитата Сообщение от 150333 Посмотреть сообщение
1)Нужно ли писать чему равен интеграл?
То есть конечный результат?
0
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
17.01.2014, 22:48  [ТС] #3
1)Нужно ли писать чему равен интеграл?
Извиняюсь за глупый вопрос
А как ты думаешь , чем еще можно дополнить программу ?
0
AndrSlav
44 / 44 / 6
Регистрация: 20.12.2013
Сообщений: 262
17.01.2014, 23:00 #4
Еще бы следовало обработать значение степени- корень из отрицательного числа, например, не является действительным числом.
Еще шаг интегрирования можно сделать переменным.
1
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
17.01.2014, 23:18  [ТС] #5
Еще бы следовало обработать значение степени- корень из отрицательного числа, например, не является действительным числом.
А как сделать проверку степени числа , рациональное оно или целое ?
0
AndrSlav
44 / 44 / 6
Регистрация: 20.12.2013
Сообщений: 262
17.01.2014, 23:46 #6
Функция modf вроде выделяет дробную часть, сам не пользовался, можно ее сравнить с малым числом и на основе этого делать вывод.

Здесь другое дело- попробовал в Mathematica вычислить (-27)^(1/3) - выдает мнимое число, я думал здесь -3 ответ, надо с правилами математики разобраться- какие степени допустимы, только ли целые.

p.s. modf только покажет целое ли оно.
0
S_el
2106 / 1625 / 308
Регистрация: 15.12.2013
Сообщений: 6,484
18.01.2014, 00:36 #7
Цитата Сообщение от 150333 Посмотреть сообщение
А как ты думаешь , чем еще можно дополнить программу ?
Можешь реализовать похожий метод трапеций.

Добавлено через 40 секунд
Цитата Сообщение от AndrSlav Посмотреть сообщение
(-27)^(1/3) - выдает мнимое число, я думал здесь -3 ответ
-3 и будет

Добавлено через 21 минуту
Цитата Сообщение от AndrSlav Посмотреть сообщение
Здесь другое дело- попробовал в Mathematica вычислить (-27)^(1/3) - выдает мнимое число, я думал здесь -3 ответ, надо с правилами математики разобраться- какие степени допустимы, только ли целые.
Дело в том,что у уравнения http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{3}=-27 ,есть 3 корня.
Одно из них -3,а два других комплексные:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{3}{2}*(1+\sqrt{3}*i) \\\frac{3}{2}*(1-\sqrt{3}*i)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2014, 00:36
Привет! Вот еще темы с ответами:

Программа вычисления определенного интеграла методом трапеций - C++
Помогитте написать программу в С++: вычисление определенного интеграла по формуле трапеций.

Численные методы для вычисления определенного интеграла - C++
Добрый вечер, помогите пожалуйста, требуется ваша помощь по разработке программы по методам интегрирования аналитически и методом...

Определить функцию для вычисления определенного интеграла - C++
Определить функцию для вычисления определенного интеграла заданной функции с некоторой точностью (значения интеграла на двух соседних шагах...

Интеграл методом средних прямоугольников - C++
Пишу прогу и что-то т не пойму в чем ошибка ( Что-то модуль разности сумм как-то некоректно считается. Не подскажете ли в чем проблема?...


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

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

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