Determining function from simple xy graph

293 Views Asked by At

I'm not sure if this question is too vague for here. Will delete if necessary.

I have a set of points, (1,782), (2,893), (3,992),... and I'm trying to determine the function that was used to generate them.

When plotted on a graph, it looks a lot like y = sqrt(x) * a + c, or something like y = Log(x - a) + c, but I've been playing around in excel, and these aren't quite right. I've also experimented with other roots, and not made progress.

Are there tools or methods I can use to get a better approximation, or any simple functions that I've overlooked?

1   782
2   893
3   992
4   1081
5   1164
6   1241
7   1313
8   1382
9   1447
10  1510
20  2031
30  2444
40  2796
50  3108
60  3392
70  3653
80  3897
90  4127
100 4344
200 6106
300 7462
400 8607

(The y values have been rounded to integers).

2

There are 2 best solutions below

0
On BEST ANSWER

A simple and accurate solution could be : $$f(x):=\sqrt{432718+184284\;x}$$ \begin{array} {c|cc} x&y&f(x)\\ \hline\\ 1& 782&785\\ 2& 893&895\\ 3& 992&993\\ 4& 1081&1082\\ 5& 1164&1164\\ 6& 1241&1240\\ 7& 1313&1313\\ 8& 1382&1381\\ 9& 1447&1446\\ 10& 1510&1508\\ 20& 2031&2029\\ 30& 2444&2442\\ 40& 2796&2794\\ 50& 3108&3106\\ 60& 3392&3390\\ 70& 3653&3651\\ 80& 3897&3896\\ 90& 4127&4125\\ 100& 4344&4343\\ 200& 6106&6106\\ 300& 7462&7464\\ 400& 8607&8611\\ \end{array}

enter image description here

1
On

To me, y = sqrt(x) * a + c seems to be very good in particular for large values of x (above x=25 the fit is excellent). To me, the real question is : what do you want to do ? If it is interpolation, I think that Lagrange polynomials (as suggested by Mark) would be the best idea since there is no much noise in your data. If it is extrapolation for values such x > 400 , I suppose that the above regression would be very reasonable [in such a case, fit your data for, say, x > 50]. Where I see problems is for low values of x; but here again, I should use Lagrange polynomials.