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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.74
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 17:49     Решение интеграла метод центральных прямоугольников #1
Здравствуйте товарищи программисты. Прошу помощи с решением задачи. Пишу курсовик и там надо посчитать интеграл на 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. Помогите найти ошибку пожалуйста. А то я не нахожу.

Просто в общих целях посчитал на маткаде получилось вот так (см. приложенную картинку)
Спасибо!
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 17:49     Решение интеграла метод центральных прямоугольников
Посмотрите здесь:

Составить программу для вычисления определенного интеграла по методу прямоугольников C++
Построить таблицу приближенных значений, используя составную квадраторную формулу центральных прямоугольников C++
C++ Найти приближенное значение определенного интеграла по методу прямоугольников с точностью e=10^-3
Вычисление определенного интеграла методом средних прямоугольников для функции C++
C++ Вычисление определенного интеграла методом центральных прямоугольников
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 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;
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:10  [ТС]     Решение интеграла метод центральных прямоугольников #3
Прога запустилась. Спасибо! только че то с маткадом ответ не сходится теперь. Вот такое выдал (см. вложенную картинку)

cin>>t; убрал ниче не изменилось. Это я че то ступил.
Изображения
 
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 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, так и должно быть?
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:28  [ТС]     Решение интеграла метод центральных прямоугольников #5
Нет. Щас посмотрю может че найду. Спасибо.
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:34  [ТС]     Решение интеграла метод центральных прямоугольников #6
Вообще вот полное решение из маткада там ошибок точно нет. Проверено преподом)
Миниатюры
Решение интеграла метод центральных прямоугольников  
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:35     Решение интеграла метод центральных прямоугольников #7
А сами функции где?
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:43  [ТС]     Решение интеграла метод центральных прямоугольников #8
А так эти начальные условия что ли. Вот.
Миниатюры
Решение интеграла метод центральных прямоугольников  
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:46     Решение интеграла метод центральных прямоугольников #9
I1(t), I2(t), I3(t) — вот эти я имел ввиду, они в расчётах используются.
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 18:51  [ТС]     Решение интеграла метод центральных прямоугольников #10
Вот они
Миниатюры
Решение интеграла метод центральных прямоугольников  
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 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);
Проверьте теперь.
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 19:26  [ТС]     Решение интеграла метод центральных прямоугольников #12
Немножко не понял а как упростить то что во-первых? В квадрат возвел.
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 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.
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 19:36  [ТС]     Решение интеграла метод центральных прямоугольников #14
Сделал. Вот результат работы программы.
Миниатюры
Решение интеграла метод центральных прямоугольников  
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 19:38     Решение интеграла метод центральных прямоугольников #15
А в mathcad было Q3=2,099·10^(-4), что то же самое — значит сходится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 19:39     Решение интеграла метод центральных прямоугольников
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
exovoini
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 44
11.11.2011, 19:39  [ТС]     Решение интеграла метод центральных прямоугольников #16
Да я уж вижу) Спасибо большое еще раз за помощь
Yandex
Объявления
11.11.2011, 19:39     Решение интеграла метод центральных прямоугольников
Ответ Создать тему
Опции темы

Текущее время: 00:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru