Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Create 3d function with a set of points

  1. Nov 14, 2012 #1
    I'm creating a computer program and I need to see what's most efficient. I need another program [lol] that I can input 3d points in and have it create the function.
    the points are this v e t
    100 500 3
    300 3000 28
    500 1000 3
    1000 5000 45
    1000 10000 330
  2. jcsd
  3. Nov 14, 2012 #2

    Simon Bridge

    User Avatar
    Science Advisor
    Homework Helper

    Cannot be done unless you know what sort of function to expect.
  4. Nov 14, 2012 #3
    I can get much more points if that's what it needs. Pretty much I need to be able to put in v and e and get t out of it
  5. Nov 15, 2012 #4
  6. Nov 15, 2012 #5

    Simon Bridge

    User Avatar
    Science Advisor
    Homework Helper

    Off your first post - you have a bunch of data points which are from some function f(x,y,z) right? You have asked for a program to recover the equation of f(x,y,z) from the set of ordered triples {(xi,yi,zi)}. The problem is that f(x,y,z) can be anything.

    Look at the simpler example in 2D ... if I have ordered pairs {(1,1),(2,1),(3,1),...} we could say that the curve is y=1 ... but it could also be y=cos(kx): k=2pi, so which is it? There are an infinite number of possible cosine curves.... then there are other periodic functions ... and, in this case, there are infinite data points. If there were finite data points, then I could also fit polynomials. Then there are all the possible irregular functions, peicewise functions and on and on and on. In 3D f(x,y,z) could even loop back on itself.

    Programs like matlab have built-in assumptions that they use to do interpolation - they do not, in general, find the equation of the generating function.
    gridfit, your example, for instance, assumes the data corresponds to a surface z=f(x,y)... and makes assumptions about the nature of the surface.

    For the 2D case I could use the polyfit function - but I have to also input the order of the polynomial I want to fit.
    Last edited: Nov 15, 2012
  7. Nov 15, 2012 #6


    User Avatar
    Science Advisor

    Given any finite number of points, there exist an infinite number of functions that give those points. In fact, given n points, there exist an infinite number of polynomials of degree n that give those points.
  8. Nov 15, 2012 #7
    Well its more t=f(v,e)
  9. Nov 15, 2012 #8


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    Doesn't help.
    Basing a mathematical model purely on datapoints, without reference to the underlying physics (or whatever), is an exercise in numerology. In any real environment you should have some preconception of the relationship, even if it is only smoothness and asymptotic behaviour.
    In most cases, a first order approximation (over a limited range of values) will be a linear fit. Standard regression tools will allow you to get the best such fit to the data. But beware of trying to extrapolate beyond the range of datapoints unless you have information regarding asymptotes.
    Beyond that, smoothness assumptions could justify the use of splines, etc. You should avoid feeding in more arbitrary constants to achieve the fit than are justified by the number of datapoints and their precision. There are standard tests for that. G--gle parameter estimation model chi-square.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook