farmerdoug
05-26-2010, 09:18 AM
Here's the code.
MatDoub x(npts,ndim);
VecDoub y(npts), xstar(ndim);
for (l = 0; l < 3; l ++)
for (m = 0; m < 3; m++)
{
y[l*3 + m] = l*l + m*m;
x[l*3+m][0] = l;
x[l*3+m][1] = m;
printf("%f %f %f\n", x[l*3+m][0], x[l*3+m][1], y[l*3 + m]);
}
Powvargram vgram(x,y);
Krig<Powvargram> krig(x,y,vgram);
xstar[0] = 1;
xstar[1] = 2;
ystar = krig.interp(xstar);
printf("%f\n",ystar);
0.000000 0.000000 0.000000
0.000000 1.000000 1.000000
0.000000 2.000000 4.000000
1.000000 0.000000 1.000000
1.000000 1.000000 2.000000
1.000000 2.000000 5.000000
2.000000 0.000000 4.000000
2.000000 1.000000 5.000000
2.000000 2.000000 8.000000
0.000000
The answer should be 5.
???
What did I do wrong?
thanks.
MatDoub x(npts,ndim);
VecDoub y(npts), xstar(ndim);
for (l = 0; l < 3; l ++)
for (m = 0; m < 3; m++)
{
y[l*3 + m] = l*l + m*m;
x[l*3+m][0] = l;
x[l*3+m][1] = m;
printf("%f %f %f\n", x[l*3+m][0], x[l*3+m][1], y[l*3 + m]);
}
Powvargram vgram(x,y);
Krig<Powvargram> krig(x,y,vgram);
xstar[0] = 1;
xstar[1] = 2;
ystar = krig.interp(xstar);
printf("%f\n",ystar);
0.000000 0.000000 0.000000
0.000000 1.000000 1.000000
0.000000 2.000000 4.000000
1.000000 0.000000 1.000000
1.000000 1.000000 2.000000
1.000000 2.000000 5.000000
2.000000 0.000000 4.000000
2.000000 1.000000 5.000000
2.000000 2.000000 8.000000
0.000000
The answer should be 5.
???
What did I do wrong?
thanks.