
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы 7_8 / LAB7
.CPP # 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();
}
}
# 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();
}
}