add numerical recipes library

This commit is contained in:
2025-09-12 18:55:25 +09:00
parent d4dff245bd
commit 2c75620ec9
1344 changed files with 63869 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
/* Driver for routine fitexy */
#include <stdio.h>
#include <math.h>
#define NRANSI
#include "nr.h"
#include "nrutil.h"
#define NPT 30
int main(void)
{
long idum=(-1);
int j;
float a,b,chi2,q,sa,sb,siga,sigb;
float *x,*y,*dx,*dy,*dz;
x=vector(1,NPT);
y=vector(1,NPT);
dx=vector(1,NPT);
dy=vector(1,NPT);
dz=vector(1,NPT);
for (j=1;j<=NPT;j++) {
dx[j]=0.1+ran1(&idum);
dy[j]=0.1+ran1(&idum);
dz[j]=0.0;
x[j]=10.0+10.0*gasdev(&idum);
y[j]=2.0*x[j]-5.0+dy[j]*gasdev(&idum);
x[j] += dx[j]*gasdev(&idum);
}
printf("Values of a,b,siga,sigb,chi2,q:\n");
printf("Fit with x and y errors gives:\n");
fitexy(x,y,NPT,dx,dy,&a,&b,&siga,&sigb,&chi2,&q);
printf("%11.6f %11.6f %11.6f %11.6f %11.6f %11.6f\n\n",
a,b,siga,sigb,chi2,q);
printf("Setting x errors to zero gives:\n");
fitexy(x,y,NPT,dz,dy,&a,&b,&siga,&sigb,&chi2,&q);
printf("%11.6f %11.6f %11.6f %11.6f %11.6f %11.6f\n",
a,b,siga,sigb,chi2,q);
printf("...to be compared with fit result:\n");
fit(x,y,NPT,dy,1,&a,&b,&siga,&sigb,&chi2,&q);
printf("%11.6f %11.6f %11.6f %11.6f %11.6f %11.6f\n\n",
a,b,siga,sigb,chi2,q);
printf("Setting y errors to zero gives:\n");
fitexy(x,y,NPT,dx,dz,&a,&b,&siga,&sigb,&chi2,&q);
printf("%11.6f %11.6f %11.6f %11.6f %11.6f %11.6f\n",
a,b,siga,sigb,chi2,q);
printf("...to be compared with fit result:\n");
fit(y,x,NPT,dx,1,&a,&b,&siga,&sigb,&chi2,&q);
sa=sqrt(siga*siga+SQR(sigb*(a/b)))/b;
sb=sigb/(b*b);
printf("%11.6f %11.6f %11.6f %11.6f %11.6f %11.6f\n",
-a/b,1.0/b,sa,sb,chi2,q);
free_vector(dz,1,NPT);
free_vector(dy,1,NPT);
free_vector(dx,1,NPT);
free_vector(y,1,NPT);
free_vector(x,1,NPT);
return 0;
}
#undef NRANSI