То, что вы хотите сделать, называется полиномиальной интерполяцией . Существует много методов (см. http://en.wikipedia.org/wiki/Polynomial_interpolation), но вы должны иметь верхнюю границу U для степени полинома и, по крайней мере, значения U + 1.
Если у вас есть последовательные значения, тогда существует простой алгоритм.
Для заданной последовательности x1, x2, x3, ..., пусть Delta (x) будет последовательностью разностей x2 - x1, x3 - x2, x4 - x3, .... Если у вас есть последовательные значения полинома степени n, то n-я итерация Delta является постоянной последовательностью.
Например, полином n ^ 3:
1, 8, 27, 64, 125, 216, ...
7, 19, 37, 61, 91, ...
12, 18, 24, 30, ...
6, 6, 6, ...
Чтобы получить следующее значение, введите еще 6, а затем вернитесь назад.
6, 6, 6, 6 = 6, ...
12, 18, 24, 30, 36 = 30 + 6, ...
7, 19, 37, 61, 91, 127 = 91 + 36, ...
1, 8, 27, 64, 125, 216, 343 = 216 + 127, ...
Ограничение на количество значений выше гарантирует, что ваша последовательность никогда не станет пустой при выполнении различий.