I may be thinking of this too simplistically, but could you not do something along the lines of:
For each type of proposed pattern,
- Specify functions Fx and Fy as the functions to apply to the x and y values, respectively.
- Given that for a straight line, (y2 - y1) = m(x2 - x1), use the equation of a line in the form ( Fy(y2) - Fy(y1) ) = m ( Fx(x2) - Fx(x1) )
- Use the first and last data values to compute a value m
- Compute the estimated values for the internal data points
- Compute the error of the estimated values
- Select proposed pattern based on the one providing the smallest error
Is this a realistic idea, or am I thinking too simply?
Hope that helps.