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