Finding the equation of a curve

1. Oct 11, 2005

Alex

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. Oct 11, 2005

Tom Mattson

Staff Emeritus
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?

3. Oct 12, 2005

HallsofIvy

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: Apr 21, 2017
4. Oct 12, 2005

Alex

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.

5. Oct 12, 2005

Alex

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: Apr 21, 2017
6. Oct 12, 2005

Tom Mattson

Staff Emeritus
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.

7. Oct 12, 2005

Alex

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
8. Oct 12, 2005