Finding the equation of a curve

  • Thread starter Thread starter Alex
  • Start date Start date
  • Tags Tags
    Curve
AI Thread Summary
To find the equation of a curve given a set of points, start by selecting a functional form that fits the data, which can be aided by creating a scatterplot. For any finite set of points, there are infinitely many curves that can pass through them, so it's essential to define the conditions for the desired curve. A polynomial of degree n-1 can uniquely fit n points, but these can be overly complex, leading many to prefer spline functions, which are piece-wise polynomials. If an exact fit is not necessary, the least squares method can be used to find a curve that is close to the data. Existing software like MS Excel can assist in fitting curves, but the user must choose the type of regression to apply.
Alex
Messages
42
Reaction score
0
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.
 
Mathematics news on Phys.org
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?
 
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
http://www.cse.unsw.edu.au/~lambert/splines/


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:
http://mathworld.wolfram.com/LeastSquaresFitting.html
 
Last edited by a moderator:
Tom Mattson said:
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?

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.
 
HallsofIvy said:
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
http://www.cse.unsw.edu.au/~lambert/splines/
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:
http://mathworld.wolfram.com/LeastSquaresFitting.html


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
 
Last edited by a moderator:
Alex said:
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.

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.
 
Tom Mattson said:
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.

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 high school but I can't really remember the process.
 
Last edited:
Back
Top