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

Интегралы - C++

Восстановить пароль Регистрация
 
Jony Wocker
45 / 45 / 2
Регистрация: 19.11.2009
Сообщений: 362
26.05.2010, 17:59     Интегралы #1
При решении одного интеграла разными методами, ответы должны же быть одинаковыми?
http://www.cyberforum.ru/attachment....p;d=1273752305
Прямоугольник:
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
//---------------------------------------------------------------------------
 float a,b;
 int m=100;
float f(float x){
 return (1/(sqrt(2*pow(x,2)+3)));
  }
int main()
{cout<<"a="; cin>>a;   //0.8
 cout<<"b="; cin>>b;   //1.4
float s=0;
float x;
float h=(b-a)/m;
x=a;
while(x<=b){
s+=f(x+h/2);
x+=h;}
float f;
f=s*h;
printf("F=%7.4f",f);
getch();
return 0;
}
//---------------------------------------------------------------------------
Ответ:0.2582

Симпсон:
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
//---------------------------------------------------------------------------
#include <iostream.h>
#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
//---------------------------------------------------------------------------
 float a,b,x,h,n,i;
 int m=100;
float f(float x){
return (1/(sqrt(2*pow(x,2)+3)));
}
int main()
{cout<<"a="; cin>>a;      //0.8
 cout<<"b="; cin>>b;      //1.4 
h=(b-a)/m/2;
x=a;
i=f(x);
do{
n=0;
x+=h;
i+=4*f(x);
n+=2;
if (n==2*m){
x=b;
i=(i+f(x))*h/3;
}
else
x+=h;
i+=2*f(x);}
while(x>b);
printf("F=%10.4f",i);
getch();
return 0;
}
//---------------------------------------------------------------------------
Ответ: 3.3792

Какой из них правильный?
И где ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2010, 17:59     Интегралы
Посмотрите здесь:

Интегралы в С++ C++
C++ Интегралы
C++ интегралы
определенные интегралы C++
C++ Опять интегралы....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DartDayring
13 / 13 / 5
Регистрация: 10.02.2010
Сообщений: 72
26.05.2010, 18:32     Интегралы #2
Правильный ответ по методу прямоугольника
Jony Wocker
45 / 45 / 2
Регистрация: 19.11.2009
Сообщений: 362
26.05.2010, 18:38  [ТС]     Интегралы #3
А что не так с Симпсоном.
Я по блок схеме собирал.
Я ее плохо понимаю. Может поможете)))
Миниатюры
Интегралы  
Jony Wocker
45 / 45 / 2
Регистрация: 19.11.2009
Сообщений: 362
28.05.2010, 18:31  [ТС]     Интегралы #4
sos sos
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
28.05.2010, 19:29     Интегралы #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
float a,b,x1,x2,h,x;
 int m=100, i;
float f(float x){
return (1/(sqrt(2*pow(x,2)+3)));
}
int main()
{cout<<"a="; cin>>a;      //0.8
 cout<<"b="; cin>>b;      //1.4 
h=(b-a)/m/2;
for (i=1; i<m*2; i+=2){
    x1+=f(a+h*i);}
for (i=2; i<(m*2-1); i+=2){
    x2+=f(a+h*i);}
x=(h/3)*(f(a)+4*x1+2*x2+f(b));
 
               
cout<<"x="<<x<<" ";
 
getch ();}
как то так
Jony Wocker
45 / 45 / 2
Регистрация: 19.11.2009
Сообщений: 362
29.05.2010, 12:10  [ТС]     Интегралы #6
Спасибо.
В консоли работает.
А в формах пишет ответ :3,6598554395228E35
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
//-----Симпсон----------------------------------------------------------------------
 
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "Unit3.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit4.h"
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSimpson *Simpson;
 float a,b;
 int m=100;
float f(float x){
 return (1/(sqrt(2*pow(x,2)+3)));
  }
//---------------------------------------------------------------------------
__fastcall TSimpson::TSimpson(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TSimpson::aaChange(TObject *Sender)
{
aa->Text;
}
//---------------------------------------------------------------------------
 
void __fastcall TSimpson::beChange(TObject *Sender)
{
be->Text;
}
//---------------------------------------------------------------------------
 
void __fastcall TSimpson::Panel1Click(TObject *Sender)
{
if(aa->Text>="0" && aa->Text<="9" &&
be->Text>="0" && be->Text<="9"){
a=StrToFloat(aa->Text);
b=StrToFloat(be->Text);
float h,x1,x2,x,i;
h=(b-a)/m/2;
for (i=1; i<m*2; i+=2){
        x1+=f(a+h*i);}
for (i=2; i<(m*2-1); i+=2){
        x2+=f(a+h*i);}
x=(h/3)*(f(a)+4*x1+2*x2+f(b));
Otvet->Text=FloatToStr(x);}
else
Errore->ShowModal();
 
 
}
//---------------------------------------------------------------------------
Миниатюры
Интегралы  
Jony Wocker
45 / 45 / 2
Регистрация: 19.11.2009
Сообщений: 362
29.05.2010, 12:18  [ТС]     Интегралы #7
Таким образом заработало.
Какого хрена?
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
//-----Симпсон----------------------------------------------------------------------
 
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "Unit3.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit4.h"
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSimpson *Simpson;
 float a,b;
 float h,x1,x2,x,i;  //Переместил переменные сюда.
 int m=100;
float f(float x){
 return (1/(sqrt(2*pow(x,2)+3)));
  }
//---------------------------------------------------------------------------
__fastcall TSimpson::TSimpson(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TSimpson::aaChange(TObject *Sender)
{
aa->Text;
}
//---------------------------------------------------------------------------
 
void __fastcall TSimpson::beChange(TObject *Sender)
{
be->Text;
}
//---------------------------------------------------------------------------
 
void __fastcall TSimpson::Panel1Click(TObject *Sender)
{
if(aa->Text>="0" && aa->Text<="9" &&
be->Text>="0" && be->Text<="9"){
a=StrToFloat(aa->Text);
b=StrToFloat(be->Text);
//Были здесь.
h=(b-a)/m/2;
for (i=1; i<m*2; i+=2){
        x1+=f(a+h*i);}
for (i=2; i<(m*2-1); i+=2){
        x2+=f(a+h*i);}
x=(h/3)*(f(a)+4*x1+2*x2+f(b));
Otvet->Text=FloatToStr(x);}
else
Errore->ShowModal();
 
 
}
//---------------------------------------------------------------------------
impuls__s
0 / 0 / 0
Регистрация: 10.02.2010
Сообщений: 37
13.02.2011, 18:46     Интегралы #8
подскажите где взять <vcl.h> ???
выдает ошибку.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2011, 19:19     Интегралы
Еще ссылки по теме:

C++ Интегралы
C++ Интегралы. BC++
C++ Интегралы

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

Или воспользуйтесь поиском по форуму:
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.02.2011, 19:19     Интегралы #9
поставить С++ билдер
Yandex
Объявления
13.02.2011, 19:19     Интегралы
Ответ Создать тему
Опции темы

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