# Is there a general algorithm that can be implemented via a computer program that can identify the function being represented by a graph?

It might help understanding my question to think of the hypothetical situation in which I draw a seemingly random function on a piece of paper (with an accurate coordinate axis already on the paper), and I scan my drawing into the computer. Then I open an application that can "look" at the graph (as a set of data points, maybe? I don't know how such an algorithm would work) and identify the function's corresponding equation.

I know there are polynomial curve fitting methods, but I was wondering if there was a more general algorithm for identify any type of function's equation in their most used form.

-
Your graph is inaccurate, so there are many different functions that would look close enough. For many special classes there are specific algorithms, but you need to constraint yourself to get something useful (e.g. to polynomials of the smallest fitting degree). If you assume that your graph is accurate (that means it has infinite precision), then it uniquely determines your function (because of your assumption). There is no tool to guess it, your graph is your function. – dtldarek Jan 31 '13 at 22:10

If your graph has a distance $0.01$ from the graph of the function $y=x^2$ and distance $0.00001$ to the graph of the function $y=x^2+0.009$ which of the two functions you would choose?