From: jdadson@ix.netcom.com(Jive Dadson ) Newsgroups: sci.math.num-analysis Subject: Re: Help Wanted with Simple(?) Maths Problem Date: 25 Feb 1996 01:20:49 GMT In <4ga79m$d29@soap.news.pipex.net> Mike Armstrong writes: >[A data set is] made up [of] arbitrary points and I know the x, y >and z value of these points. > >My problem is how do I accurately interpolate the z value for >any given x-y coordinate. > The problem is not so simple, and defining the word "accurately" in this context is a bit sticky. Solutions fall into two broad categories: parametric and non-parametric. I will attempt to describe them broadly. I should tell you that I don't know much about parametric systems, and I am no expert on non-parametric systems either, but I am learning. Parametric solutions require that you know, or are willing to conjecture, something rather specific about the form of the function you are estimating. You find a "best fit" solution from among the set of parameterizations of some model. Among the simplest and best known of these is linear regression, which works for functions that can be assumed linear. "Softmax" or logit regression is another, which is used when the underlying function is a cumulative probability drawn from distributions in the exponential family, which includes most distributions you see described in introductory statistics books. "Non-parametric" is a bit of a misnomer. You still attempt to find parameters for a model, but the model is one that is general enough to approximate any function satisfying some very lenient requirements, usually including being continuous. Examples are various kinds of "spline" systems, neural networks, kernel systems, and adaptive logic networks. I know very little about adaptive logic networks, but if you want linear interpolation, one of those might be what you are looking for. They work by ANDing and ORing hyperplanes, resulting in a piecewise-linear surface. You might want to ask around in comp.ai.neural-nets and sci.stat.math for suggestions. There are some software packages available, some free, some inexpensive. You will need to be more specific about the problem you are trying to solve. What do you know about the data, how much of it is there, and do you need a function estimator you can call programatically (from a C or FORTRAN program for example), or do you just want a graphical look at a smoothed or interpolated version of the data? Jive