2
$\begingroup$

I have a series of datasets which I need to interpolate, I did this once in uni but that was a long time ago. I could use any pointers I can get.

So I have put the data up here in the hope that someone might be able to explain to me how I may resolve this. I realise that by posting my data here someone might do the interpolation for me and suck all the fun out of the exercise but I suppose this is a risk I am willing to take (wink, wink)

The data represents the "Power Curve" of some wind turbines, and is given by the respective manufacturers. A continuous function to represent this data would allow us to compute the power output for a given windspeed and vica-versa. In each case x represents wind speed measured in m/s and y represents power in kW. Leading to something like this: The result should look like this

 Series 1            Series 2          Series 3     Series 4       Series 5 x    y            x      y           x   y        x      y       x      y  0    0            0      0           0   0        0      0       0      0 1    0            2.5    0           1   0        1.5    0       1      0 2    2            3.5    22          2   0        2.5    0       2      2 3    18           4.5    62          3   1,5      3.5    23      3      18 4    56           5.5    120         4   17       4.5    78      4      56 5    127          6.5    195         5   44,5     5.5    160     5      127 6    240          7.5    298         6   72       6.5    285     6      240 7    400          8.5    443         7   123,7    7.5    456     7      400 8    626          9.5    614         8   197      8.5    679     8      626 9    892          10.5   792         9   277      9.5    953     9      892 10  1223         11.5   962         10  364      10.5   1255    10     1223 11  1590         12.5   1093        11  445      11.5   1543    11     1590 12  1830         13.5   1190        12  533      12.5   1638    12     1900 13  1950         14.5   1253        13  583      13.5   1670    13     2310 14  2050         15.5   1284        14  618      14.5   1670    14     2310 15  2050         16.5   1298        15  620      15.5   1670    15     2310 16  2050         17.5   1295        16  618      16.5   1670    16     2310 17  2050         18.5   1276        17  580      17.5   1670    17     2310 18  2050         19.5   1245                     18.5   1670    18     2310 19  2050         20.5   1211                     19.5   1670    19     2310 20  2050         21.5   1174                     20.5   1670    20     2310 21  2050         22.5   1148                     21.5   1670    21     2310 22  2050         23.5   1128                     22.5   1670    22     2310 23  2050         24.5   1118                     23.5   1670    23     2310 24  2050                                         24.5   1670    24     2310 25  2050                                         24.5   1670    25     2310   
  • 0
    @klonq: I inserted the image for you. Note that you won't be able to save changes/edits as it is now (due to rep threashold). If you need to make edits, remove the exclamation mark `!` from before the link text for the image (you'll see it if you need to make edit) before you save.2011-04-13

1 Answers 1

4

Basically, interpolating a polynomial function amounts to solving a system of linear equations. If you have data $(x_1,y_1),(x_2,y_2),(x_3,y_3),\ldots,(x_n,y_n),$ you look for a polynomial of degree $n-1$ fitting the data. Say the polynomial is

$p(x)=a_n x^{n-1} + a_{n-1} x^{n-2} + a_{n-2} x^{n-3} + \ldots + a_{2} x + a_1$

Imposing that all your data points lie on the polynomial curve determines the coefficients $a_k$. Indeed, you get a set of equations

$\left\{\begin{align} p(x_1) & = y_1 \\ p(x_2) & = y_2 \\ \ldots\\ p(x_n) & = y_n \end{align}\right.$

or more explicitly

$\left\{\begin{align} a_n x_1^{n-1} + a_{n-1} x_1^{n-2} + a_{n-2} x_1^{n-3} + \ldots + a_{2} x_1 + a_1 & = y_1 \\ a_n x_2^{n-1} + a_{n-1} x_2^{n-2} + a_{n-2} x_2^{n-3} + \ldots + a_{2} x_2 + a_1 & = y_2 \\ \ldots\\ a_n x_n^{n-1} + a_{n-1} x_n^{n-2} + a_{n-2} x_n^{n-3} + \ldots + a_{2} x_n + a_1 & = y_n \end{align}\right.$

Solving these equations is then a problem in linear algebra which considering the small amount of points you have in your problems should be easy enough for a computer.

However, I have my doubts, looking at your data, about the value of a polynomial interpolation. For instance, most of your data sets seem to get into an asymptotic regime, i.e. the curve becomes flat for high values. I think that is important and polynomial functions don't exhibit that behaviour. Which means that while interpolating gives a good approximation of intermediate values as it is supposed to do, it doesn't capture the meaning of the data. I suspect that you must have a better curve that fits the data and is empirically or theoretically more valuable than a polynomial interpolation. In that case, fitting the curve would go through a least squares method or something similar. Which is indeed an appropriate question for Cross Validated.

Finally, assuming you still want to go with interpolation, there are other interpolation methods, many of which are implemented in mathematical programming packages. Among them, the famous spline interpolation method. Here are some other interpolation methods you might want to consider.

  • 0
    The things look vaguely sigmoidal... I would also recommend interpolation with piecewise cubics, but I'd use a monotonic method instead of splines (which may exhibit unnecessary oscillations in this case). That is, we're assuming the data are error-free; if not, least-squares should be done instead of interpolation.2011-04-14