Скачиваний:
11
Добавлен:
01.05.2014
Размер:
2 Кб
Скачать
☆
# 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