#include <stdio.h> #include <math.h> #define NPT 100 #define SPREAD 0.1 #define NTERM 4 void funcs(double x, double func[]) { func[0]=cos(x); func[1]=sin(x); func[2]=exp(x); func[3]=1.0; } int main(void) { int i,j; array double a[NTERM],x[NPT],y[NPT],sig[NPT],u[NPT]; linspace(x, 0, 10); urand(u); y = 4*cos(x) + 3*sin(x) +2*exp(x) +(array double [NPT])1.0 + SPREAD*u; curvefit(a,x,y,funcs); printf("\n%11s\n","parameters"); for (i=0;i<NTERM;i++) printf(" a[%1d] = %f\n", i,a[i]); }

 parameters
 a[0] = 3.990255
 a[1] = 2.994661
 a[2] = 2.000000
 a[3] = 1.051525