Quote:> I have a question about using the thin-plate spline radial basis

functions,

> that is, phi(r) = r^2*log(r), for interpolating a surface.

> Is it necessary to normalise the coordinates (x,y) so that they lie on a

> unit square before doing interpolation?

> If so, why?

Normalization is important for numerical robustness. The method requires

inverting an NxN matrix (N is number of data points), a process that can

have numerical problems when the x and y values are large. BUT the

thin-plate spline algorithm is not invariant to general affine

transformations. The function you get by normalizing coordinates first is

not technically the function that minimizes the bending energy integral.

This is not an issue if you are simply trying to find an approximating

function for an arbitrary set of data points without having to triangulate

the (x,y) values. It may be an issue for applications that depend on the

approximating function to really be the minimizing function (statisticians

care about this for problems in spatial statistics).

The thin-plate spline algorithm is invariant under translations, so

translating the (x,y) by the average of the points is fine. You can then

apply a *uniform scale* to the data to force the axis-aligned bounding box

of the original data to fit inside the unit square. But you also want to

scale the sample values f(x,y) by the same uniform scale. That is, you can

scale (x,y,f) to (c*x,c*y,c*f).

--

Dave Eberly

http://www.magic-software.com