rofunc.c

来自「Numerical Recipes 是国际公认的高水平的、关于数值计算的书」· C语言 代码 · 共 29 行

C
29
字号
#include <math.h>

extern int ndatat;	/* defined in MEDFIT */
extern float *xt,*yt,aa,abdevt;

float rofunc(b)
float b;
{
	int j,n1,nmh,nml;
	float *arr,d,sum=0.0,*vector();
	void sort(),free_vector();

	arr=vector(1,ndatat);
	n1=ndatat+1;
	nml=n1/2;
	nmh=n1-nml;
	for (j=1;j<=ndatat;j++) arr[j]=yt[j]-b*xt[j];
	sort(ndatat,arr);
	aa=0.5*(arr[nml]+arr[nmh]);
	abdevt=0.0;
	for (j=1;j<=ndatat;j++) {
		d=yt[j]-(b*xt[j]+aa);
		abdevt += fabs(d);
		sum += d > 0.0 ? xt[j] : -xt[j];
	}
	free_vector(arr,1,ndatat);
	return sum;
}

⌨️ 快捷键说明

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