This function perform 2d surface fitting using Kriging algorithm.
int ocmath_2d_kriging_scat( int npts, const double* x, const double* y, const double* z, int noctMin, double radius, double dSmooth, int nEvalPTS, const double* pX, const double* pY, double* pZ, int noctMax = -1 );
EX1
#include <wks2mat.h> void ocmath_2d_kriging_scat_ex1() { int i, j, m, n, nx, ny; double xhi, xlo, yhi, ylo; nx = 20; ny = 20; xlo = 0.0; ylo = 0.0; xhi = 1.0; yhi = 1.0; double x[400], y[400], f[400]; m = 0; for (j=0; j<ny; ++j) { for (i=0; i<nx; ++i) { x[m] = (1.0 * (nx-i-1) / (nx-1)) * xlo + (1.0*i / (nx-1)) * xhi; y[m] = (1.0 * (ny-j-1) / (ny-1)) * ylo + (1.0* j / (ny-1)) * yhi; f[m]= x[m]*x[m]+y[m]*y[m]+x[m]*y[m]; ++m; } } double pf[10000], px[10000], py[10000]; n=0; nx = 100; ny = 100; for (j=0; j<ny; ++j) { for (i=0; i<nx; ++i) { px[n] = (1.0 * (nx-i-1) / (nx-1)) * xlo + (1.0*i / (nx-1)) * xhi +0.0005; py[n] = (1.0 * (ny-j-1) / (ny-1)) * ylo + (1.0* j / (ny-1)) * yhi; ++n; } } int nret; nret = ocmath_2d_kriging_scat(m, x, y, f, 3, 2, 1.8, n, px, py, pf); printf("nret = %d\n",nret); }
wks2mat.h