Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Вычисление опред. интеграла разными методами


Автор: LastOne 8.5.2010, 18:25
Очень прошу помочь....задали курсовик: "Вычислить определенный интеграл методами правых и левых прямоугольников,трапеций и методом Симпсона",времени мало осталось...а я еще новичек в С++. :(

вот интеграл  : sin(ln(x))dx/x в границах от 1 до e и с точностью eps=0,0001

Заранее СПАСИБО!!!

Автор: toxx 8.5.2010, 19:21
http://forum.vingrad.ru/forum/topic-37776/anchor-entry285689/15.html# посмотри.
если писать сам не хочешь тут лучше создавать тему http://forum.vingrad.ru/forum/Vingrad-help-center.html

Автор: LastOne 8.5.2010, 19:35
ну я написал большую часть,но мне кажется,что считает не правильно...и не хватает одного метода.
Вот код,если интересно
Код

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int main()
{
const int n=100;
double a=1, b=exp(x);
double h,x;
double F[n],I1,I2,tmp;
int i;
h=(b-a)/n;

for(i=0,x=a; i<n; i++,x+=h)
 F[i] = sin(log(x))/x;

I1 = 0;
for(i=1;i<n-1;i++)
 I1 += F[i];
I1 += F[0]/2 + F[n-1]/2;
I1 *= h;
//-------------
I2 = 0;
for(i=1; i<n; i+=2)
 I2 += F[i];
I2 *= 4;
tmp = 0;
for(i=2; i<n-1; i+=2)
 tmp += F[i];
I2 += tmp*2 + F[0] + F[n-1];
I2 *= h/3;

printf("\n integral po formule trapeciy raven = %f \n",I1);
printf("\n integral po formule Simpsona raven %f \n",I2);

getch();
return 0;
}

Автор: toxx 8.5.2010, 19:42
Цитата

но мне кажется,что считает не правильно...

почему так кажется?

а вы считали вручную?

Автор: LastOne 8.5.2010, 19:52
Нет.Просто ответы сильно отличаются друг от друга.

Автор: toxx 8.5.2010, 20:00
определение переменной выше чем вычисление
Код

double a=1, b=exp(x);
double h,x;

у вас х не инициализировано тут
Код

double a=1, b=exp(x);


должно быть так
Код

double h,x=1.0;
double a=1.0, b=exp(x);


Алгоритмы у вас вроде правильные, поэтому ошибки наверно тока в этих строчках

Автор: LastOne 10.5.2010, 10:42
Да,точно!!!smile
Спасибо за помощь!

Только вот с методом прямоугольников вобще разобраться не могу,делал как по ссылке на алгоритмы,но ничего не получилось....
Не подскажете как его написать?

Всё,разобрался!Уже не надоsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)