gser.c

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

C
36
字号
#include <math.h>#define ITMAX 100#define EPS 3.0e-7void gser(float *gamser, float a, float x, float *gln){	float gammln(float xx);	void nrerror(char error_text[]);	int n;	float sum,del,ap;	*gln=gammln(a);	if (x <= 0.0) {		if (x < 0.0) nrerror("x less than 0 in routine gser");		*gamser=0.0;		return;	} else {		ap=a;		del=sum=1.0/a;		for (n=1;n<=ITMAX;n++) {			++ap;			del *= x/ap;			sum += del;			if (fabs(del) < fabs(sum)*EPS) {				*gamser=sum*exp(-x+a*log(x)-(*gln));				return;			}		}		nrerror("a too large, ITMAX too small in routine gser");		return;	}}#undef ITMAX#undef EPS

⌨️ 快捷键说明

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