Скачиваний:
11
Добавлен:
01.05.2014
Размер:
2.19 Кб
Скачать
# include <math.h>
# include <iostream.h>

double F(double);

double Rectangle(double h, double a, int n)
{
int i;
double y=0,x_i=0;
for (i=0; i<=n-1;i++)
{
x_i=a+i*h;
y=y+h*F(x_i+h/2);
}
return y;
}

double Trapezium(double h, double a, int n)
{
int i;
double y=0,x_i=0,x_i_1=0;
for (i=0; i<=n-1; i++)
{
x_i=a+i*h;
x_i_1=a+(i+1)*h;
y=y+(h/2)*(F(x_i)+F(x_i_1));
}
return y;
}

double Simpson(double h, double a, int m)
{
int i;
double y=0, x_2i=0, x_2i_1=0, x_2i_2=0;
for (i=0; i<=m-1; i++)
{
x_2i=a+2*i*h;
x_2i_1=a+(2*i+1)*h;
x_2i_2=a+(2*i+2)*h;
y=y+(h/3)*(F(x_2i)+4*F(x_2i_1)+F(x_2i_2));
}
return y;

}

double F (double x)
{
return exp(sin(x));
}

void main (void)
{
csr(0);
double h,b,a,eps[3]={0.01,0.001,0.0001},y_R,y_R_1,y_T, y_T_1,y_S, y_S_1;
int m,n,N,n1;
do {
cout<<"\n‚ўҐ¤ЁвҐ зҐв­®Ґ Є®«ЁзҐбвў® Ё­вҐаў «®ў: ";
cin>>N;
n1=fmod(N,2);
if(n1==1)
{cout<<"ЌҐЇа ўЁ«м­л© ўў®¤.\nЌ ¦¬ЁвҐ «оЎго Є« ўЁиг ¤«п Ї®ўв®а­®Ј® ўў®¤ .";
waitpress();csr(0);}
} while (n1!=0);
m=N/2;
a=0;//­Ё¦Ё© ЇаҐ¤Ґ«
b=1;//ўҐае­Ё© ЇаҐ¤Ґ«
for(int i=0;i<3;i++)
{
csr(0);
cout<<"‡­ зҐ­ЁҐ EPS: "<<eps[i]<<endl;
n=N;
do
{
h=(b-a)/n;
y_R=Rectangle(h,a,n);
n=n*2;
h=(b-a)/n;
y_R_1=Rectangle(h,a,n);
}while (fabs(y_R-y_R_1)>eps[i]);
double y,y1;
y1=fabs(y_R_1-y_R);
y=y_R_1+y1/3;
cout<<"\n ‡­ зҐ­ЁҐ Ё­вҐЈа «  (ЇаאַгЈ.)";
cout<<y;
cout<<"\n ЋЄ®­з вҐ«м­®Ґ Є®«ЁзҐбвў® Ё­вҐаў «®ў "<<n<<"\n\n";
n=N;
do{
h=(b-a)/n;
y_T=Trapezium(h,a,n);
n=n*2;
h=(b-a)/n;
y_T_1=Trapezium(h,a,n);
}while (fabs(y_T-y_T_1)>eps[i]);
y1=fabs(y_T_1-y_T);
y=y_T_1-y1/3;
cout<<"\n ‡­ зҐ­ЁҐ Ё­вҐЈа «  (ва ЇҐжЁп) "<<y;
cout<<"\n ЋЄ®­з вҐ«м­®Ґ Є®«ЁзҐбвў® Ё­вҐаў «®ў "<<n<<"\n\n";
n=N;
do{
h=(b-a)/n;
m=n/2;
y_S=Simpson(h,a,m);
n=n*2;
h=(b-a)/n;
m=n/2;
y_S_1=Simpson(h,a,m);
}while (fabs(y_S-y_S_1)>eps[i]);
y1=fabs(y_S_1-y_S);
y=y_S_1-y1/15;
cout<<"\n ‡­ зҐ­ЁҐ Ё­вҐЈа «  (‘Ё¬Їб®­)"<<y;
cout<<"\n ЋЄ®­з вҐ«м­®Ґ Є®«ЁзҐбвў® Ё­вҐаў «®ў "<<n<<"\n\n";
waitpress();
}
}
Соседние файлы в папке Лабораторные работы 7_8