#include <stdio.h> #define NPT 100 /* Number of data points */ #define NTERM 5 /* Number of term */ int main() { int i,j,status; array double u[NPT],x[NPT],y[NPT],a[NTERM]; /* Create a data set of NTERM order polynomial with uniform random deviation*/ linspace(x,0.1,0.1*NPT); y = 8*x.*x.*x.*x + 5*x.*x.*x + 3*x.*x + 6*x + (array double[NPT])(7); /* put uniform random deviation on data set */ urand(u); y += 0.1*u; status=polyfit(a,x,y); if(status) printf("Abnormal fit"); printf("\n%11s\n","Coefficients"); for (i=0;i<NTERM;i++) printf(" a[%1d] = %8.6f \n",i,a[i]); printf("y = %f at x = %f\n", polyeval(a, 2.0), 2.0); }
Coefficients a[0] = 8.000048 a[1] = 4.999537 a[2] = 2.998743 a[3] = 6.015915 a[4] = 7.033637 y = 199.057500 at x = 2.000000