betacf.c

来自「适合大型数值计算代码 现在网络上已经找不到了 购买需要20$」· C语言 代码 · 共 46 行

C
46
字号
#include <math.h>#define MAXIT 100#define EPS 3.0e-7#define FPMIN 1.0e-30float betacf(float a, float b, float x){	void nrerror(char error_text[]);	int m,m2;	float aa,c,d,del,h,qab,qam,qap;	qab=a+b;	qap=a+1.0;	qam=a-1.0;	c=1.0;	d=1.0-qab*x/qap;	if (fabs(d) < FPMIN) d=FPMIN;	d=1.0/d;	h=d;	for (m=1;m<=MAXIT;m++) {		m2=2*m;		aa=m*(b-m)*x/((qam+m2)*(a+m2));		d=1.0+aa*d;		if (fabs(d) < FPMIN) d=FPMIN;		c=1.0+aa/c;		if (fabs(c) < FPMIN) c=FPMIN;		d=1.0/d;		h *= d*c;		aa = -(a+m)*(qab+m)*x/((a+m2)*(qap+m2));		d=1.0+aa*d;		if (fabs(d) < FPMIN) d=FPMIN;		c=1.0+aa/c;		if (fabs(c) < FPMIN) c=FPMIN;		d=1.0/d;		del=d*c;		h *= del;		if (fabs(del-1.0) < EPS) break;	}	if (m > MAXIT) nrerror("a or b too big, or MAXIT too small in betacf");	return h;}#undef MAXIT#undef EPS#undef FPMIN

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?