Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
09.06.2015
Размер:
659 б
Скачать
#include<stdio.h>
#include<math.h>
int rect(double,double,double,double (*)(double),double *);
double func(double);
void main(void){
	double s,eps=0.001,a=0,b=1;
	int error;
	error=rect(a,b,eps,func,&s);
	if(error==0)printf("integral=%e\n",s);
	else printf("error in rect\n");
}
int rect(double x1,double x2,double e,double (*g)(double),double *s)
{int n=20,nmax=16384,i; double h,s0;
h=(x2-x1)/n;
for(i=1,*s=0;i<=n;i++)*s+=g(x1+(i-1)*h);
*s*=h;
do { s0=*s; n*=2; h/=2;
for(i=1,*s=0;i<=n;i++)*s+=g(x1+(i-1)*h);
*s*=h; 
if(fabs(*s-s0)<e)return 0;
} while(n<nmax);
//аварийный выход
return 1;
}
double func(double t){ return t*t; }


Соседние файлы в папке lecture7