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

Finding the equation of a curve

  1. Oct 11, 2005 #1
    How would I go about finding the equation of a curve given an arbitrary number of points? Please don't give me a full explanation if you don't want to, just the name of a process by which I could do this would be fine.
  2. jcsd
  3. Oct 11, 2005 #2

    Tom Mattson

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    You first have to choose a functional form to which to fit your points. In order to choose wisely, you should produce a scatterplot and try to find a functional form that looks close. For instance if in your data table the value of the dependent variable plunges downward for very small positive values of the dependent variable, and the function increases monotonically, then you might try to fit a log function to the data.

    So howsabout you post your data set?
  4. Oct 12, 2005 #3


    User Avatar
    Staff Emeritus
    Science Advisor

    Given any finite set of points, there exist an infinite number of curves that will pass through those points so you have to decide what conditions you want to put on the curve you are looking for. Google on "curve fitting" and you will see some options.
    If you are looking for a function of the form y= f(x), then putting the x and y values of n points into that equation will give you n equations which you could solve for n unknowns. In particular, a polynomial of degree n-1 will have n coefficients so given n points, there always exists a unique polynomial of degree n-1 passing through those points. Those tend to be very "wavy" so many applications use a "spline" function instead- a function that is "piece-wise" polynomial. Google on "spline functions-" in particular you might look at

    On the other hand, the best choice may not be a curve that actualy passes through the points but one that is "close" in some sense. For that, you might use a "least squares" method. Google on "least squares". Mathworld has this:
  5. Oct 12, 2005 #4
    Well that's the thing - I don't have a data set. I'm trying to write a program that will return an equation to a set of data that I input. I suppose I could write one to graph the data and estimate the family of that function based on that - as you mentioned - but I thought there might be an easier way.
  6. Oct 12, 2005 #5

    I checked the least squares method before I posted here but I wasnt sure if it would be quite right. I just skimmed over it, but I got the impression that the least squares method gave a "line of best fit" result. I need a function that will pass through every one of my points.

    I'll check out spline functions. Thanks
  7. Oct 12, 2005 #6

    Tom Mattson

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    You should probably look at an already existing program that can do this. By far the most ubiquitous one is MS Excel. It will fit your data to a curve, but the user has to choose what kind of regression he wants before anything can happen. As HallsofIvy said, there are an infinite number of curves that will fit the data, so the user must make a decision.
  8. Oct 12, 2005 #7
    I've tried to search for an already existing program to do this but I've found nothing that is open-source or easily incorporatable in a c program.

    Maybe you could help me with an example? Ie: How would I go about finding the equation of a sin curve for the points [(1,7), (2,21), (3, -14),]? Also how would I choose a regression for that curve? I'm sure that I did this in calculus back in highschool but I cant really remember the process.
    Last edited: Oct 12, 2005
  9. Oct 12, 2005 #8
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Similar Discussions: Finding the equation of a curve
  1. Equations of a Curve (Replies: 2)