Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2009, 10:24   #1
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию сравнить интегралы

Значения интегралов должны быть прибл-но равны,а у меня разные(
Помогите пожалуйста разобраться.Может массив неверно объявил?

Даны вещественные числа a, b. Значения функции (согласно вариантам) записать в массив. Вычислить значение интеграла, используя:
1) Формулу трапеций
I1=h*[f(a)/2+f(a+h)+f(a+2h)+…+f(a+(n-1)h)+f(b)/2]
2) Формулу Симпсона
I2=h/3*(f(a)+f(b)+4*(f(a+h)+f(a+3h)+…+f( a+(n-1)h))+
2*(f(a+2h)+f(a+4h)+…+f(a+(n-2)h)))
h=(b-a)/n, n=100.
f(x)=1/((0.5+0.1x3)√x); a=0.1; b=2.1

ФОРМУЛА ТРАПЕЦИЙ
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int main()
{
const int n=100;
double a=0.1, b=2.1;
double h;
double F[n],I;
int i;
h=(b-a)/n;

for(i=1;i<n;++i)
F[i] =1/((0.5+0.1*pow(a+(i-1)*h,3))*sqrt(a+(i-1)*h));
F[0] =1/((0.5+0.1*pow(a,3)*sqrt(a)));
F[n] =1/((0.5+0.1*pow(b,3)*sqrt(b)));

I=0;
for(i=1;i<=n-1;i++)
I += F[i];
I += F[0]/2 + F[n]/2;
I *= h;

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

getch();
return 0;
}



ФОРМУЛА СИМПСОНА
#include <math.h>

int main()
{
const int n=100;
double a=0.1, b=2.1;
double h;
double F[n],I2;
int i;
h=(b-a)/n;

for(i=1;i<n;++i)
F[i] =4*(1/((0.5+0.1*pow(a+(i-1)*h,3))*sqrt(a+(i-1)*h)))+2*(1/((0.5+0.1*pow(a+(i-1)*h,3))*sqrt(a+(i-1)*h)));
F[0] =1/((0.5+0.1*pow(a,3)*sqrt(a)));
F[1] =1/((0.5+0.1*pow(b,3)*sqrt(b)));

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

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

getch();
return 0;
}
ai\ekcah^p вне форума Ответить с цитированием
Старый 18.05.2009, 12:02   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, оформите код тегом CODE ("#" на панели в окне редактирования) (прямо сейчас исправьте) Иначе его сложно читать.
Во-вторых, во втором варианте в цикле вы каждое F умножаете на 4, а нужно умножать уже полученную сумму.
И еще, расшифруйте вот это:
Код:
f(x)=1/((0.5+0.1x3)√x);
Что значит 0.1x3?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 18.05.2009 в 12:08.
Sazary вне форума Ответить с цитированием
Старый 18.05.2009, 12:13   #3
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию

икс в третей степени
ai\ekcah^p вне форума Ответить с цитированием
Старый 18.05.2009, 12:31   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

ai\ekcah^p, а первую часть поста вы проигнорировали?
В следующий раз на код в таком виде и смотреть не буду.

Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int main()
{
const int n=100;
double a=0.1, b=2.1;
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] = 1/((0.5 + 0.1*pow(x,3))*sqrt(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;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 18.05.2009, 12:47   #5
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию

Спасибо огромное Sazary! Я понял свою ошибку!
ai\ekcah^p вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интегралы на с++ dimpa91 Помощь студентам 1 04.01.2009 14:16
Интегралы в Delphi odrey Общие вопросы Delphi 4 04.06.2008 23:10
Сравнить колонки Romuald Microsoft Office Excel 11 22.01.2008 09:28
сравнить 2 строчки oLMeR Общие вопросы Delphi 3 02.11.2007 11:51