Files
2025-02-Numerical/lib/nr/ansi/recipes/fdjac.c
2025-09-12 18:55:25 +09:00

28 lines
460 B
C

#include <math.h>
#define NRANSI
#include "nrutil.h"
#define EPS 1.0e-4
void fdjac(int n, float x[], float fvec[], float **df,
void (*vecfunc)(int, float [], float []))
{
int i,j;
float h,temp,*f;
f=vector(1,n);
for (j=1;j<=n;j++) {
temp=x[j];
h=EPS*fabs(temp);
if (h == 0.0) h=EPS;
x[j]=temp+h;
h=x[j]-temp;
(*vecfunc)(n,x,f);
x[j]=temp;
for (i=1;i<=n;i++) df[i][j]=(f[i]-fvec[i])/h;
}
free_vector(f,1,n);
}
#undef EPS
#undef NRANSI