Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
1

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

11.11.2011, 17:49. Показов 5217. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте товарищи программисты. Прошу помощи с решением задачи. Пишу курсовик и там надо посчитать интеграл на C++ методом центральных прямоугольников на интервале t1=0.008, t2=0.014. Я написал вот это:
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<iostream>
#include<math.h>
using namespace std;
 
double I(double t)
{
if (t<0.101)
return 1.85*pow(10,4)*pow(t,3)+6.824*pow(10,3)*pow(t,2)-83.707*t+0.002066;
else if (t<0.105)
return -23.84*t+0.002071;
else
return -1.048*pow(10,5)*pow(t,3)+4.403*pow(10,3)*pow(t,2)-58.359*t-0.001629;
}
 
int main()
{
double t,t1=0.008,t2=0.014;
double h = (t2-t1)/100;
double r=1.88;
double Q=0;
for(int i=0;i<100;i++)
{
 Q+=h*I(t1+i*h-h/2);
}
Q*=r;
cout<<"q="<<Q<<endl;
cin>>t;
system("pause");
return 0;
}
Но программа не запускается в VS 2010. Помогите найти ошибку пожалуйста. А то я не нахожу.

Просто в общих целях посчитал на маткаде получилось вот так (см. приложенную картинку)
Спасибо!
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2011, 17:49
Ответы с готовыми решениями:

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

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

Метод средних прямоугольников и количество вычислений для вычисления определенного интеграла (Си -> C++)
Задание:Вычислить значение определенного интеграла методом средних прямоугольников и вычислить...

Метод средних прямоугольников и количество вычислений для вычисления определенного интеграла
Задание:Вычислить значение определенного интеграла методом средних прямоугольников и вычислить...

15
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:02 2
Приложили бы ошибки тогда уж : )
Функция pow не принимает первым аргументом целочисленные значения.
Попробуйте написать так для всех pow:
pow(10,3)->pow(10.0,3)

*А что вот эта часть что делает? "cin>>t" — получается мы запрашиваем у пользователя ввод переменной, которую нигде дальше не используем.
C++
1
2
3
    cin>>t;
    system("pause");
    return 0;
0
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:10  [ТС] 3
Прога запустилась. Спасибо! только че то с маткадом ответ не сходится теперь. Вот такое выдал (см. вложенную картинку)

cin>>t; убрал ниче не изменилось. Это я че то ступил.
Изображения
 
0
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:23 4
Теперь ищите в математике ошибку или в маткаде или в c++ что-то закралось.
Вот, например, в c++ странное место:
C++
1
2
3
4
5
6
7
8
9
10
11
if (t<0.101)
return 1.85*pow(10,4)*pow(t,3)+6.824*pow(10,3)*pow(t,2)-83.707*t+0.002066;
else if (t<0.105)
return -23.84*t+0.002071;
else
return -1.048*pow(10,5)*pow(t,3)+4.403*pow(10,3)*pow(t,2)-58.359*t-0.001629;
}
 
int main()
{
double t,t1=0.008,t2=0.014;
Видно, что всё время моделирования попадает только в первый if. t<0.101, так и должно быть?
1
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:28  [ТС] 5
Нет. Щас посмотрю может че найду. Спасибо.
0
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:34  [ТС] 6
Вообще вот полное решение из маткада там ошибок точно нет. Проверено преподом)
Миниатюры
Решение интеграла метод центральных прямоугольников  
0
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:35 7
А сами функции где?
0
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:43  [ТС] 8
А так эти начальные условия что ли. Вот.
Миниатюры
Решение интеграла метод центральных прямоугольников  
0
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:46 9
I1(t), I2(t), I3(t) — вот эти я имел ввиду, они в расчётах используются.
0
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:51  [ТС] 10
Вот они
Миниатюры
Решение интеграла метод центральных прямоугольников  
0
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 19:15 11
Во-первых, из этого выполняется только первое условие, значит упрощаем:
C++
1
2
3
4
5
6
7
8
9
double I(double t)
{
if (t<0.101)
return 1.85*pow(10,4)*pow(t,3)+6.824*pow(10,3)*pow(t,2)-83.707*t+0.002066;
else if (t<0.105)
return -23.84*t+0.002071;
else
return -1.048*pow(10,5)*pow(t,3)+4.403*pow(10,3)*pow(t,2)-58.359*t-0.001629;
}
Во-вторых в mathcad вы пишите I(t)=I0^2(t), следовательно на c++ правильнее будет так:
C++
1
return pow(1.85*pow(10,4)*pow(t,3)+6.824*pow(10,3)*pow(t,2)-83.707*t+0.002066,2);
Проверьте теперь.
0
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 19:26  [ТС] 12
Немножко не понял а как упростить то что во-первых? В квадрат возвел.
0
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 19:32 13
Вот так:
C++
1
2
3
4
double I(double t)
{
return pow(1.85*pow(10,4)*pow(t,3)+6.824*pow(10,3)*pow(t,2)-83.707*t+0.002066,2);
}
Интервал 0.008—0.014 всегда меньше 0.101.
0
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 19:36  [ТС] 14
Сделал. Вот результат работы программы.
Миниатюры
Решение интеграла метод центральных прямоугольников  
0
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 19:38 15
А в mathcad было Q3=2,099·10^(-4), что то же самое — значит сходится.
1
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 19:39  [ТС] 16
Да я уж вижу) Спасибо большое еще раз за помощь
0
11.11.2011, 19:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2011, 19:39
Помогаю со студенческими работами здесь

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

Вычисление интеграла методом прямоугольников
Помогите решить задачу! Необходимо использовать метод прямоугольников. Для построения...

Найти значение интеграла методом прямоугольников
помогите найти ошибку #include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;math.h&gt; using...

Вычисление определенного интеграла методом средних прямоугольников
Вот написал прогу для вычисления определенного интеграла. \int_{0}^{2}\left(x^3\cdot e^x...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru