# integer sequences

Is anybody aware if there exists good computer software which tries to find, in a brute force manner, patterns in given finite sequences of numbers. For example , if you would give the Fibonacci sequence to it, it will see that there is a polynomial $P = x_1 + x_2 - x_3$, such that for all 3 consecutive integers in the sequence $x_1, x_2, x_3$ we have $P(x_1, x_2, x_3) = 0$.

Of course I understand that this is kind of an open question, furthermore it is slightly ill-posed, because one could always interpolate a finite sequence with a polynomial. But that polynomial will not be very nice in general. So, I guess the question is, more precisely, if there is a computer program (like sage or mathematica) which on input a sequence starts generating a list of algebraic relations satisfied by the elements, where the algebraic relations are of growing complexity in a suitable sense.

-
One could always write something that will query the OEIS for you... as for Mathematica, it has a function called FindSequenceFunction[]. – J. M. Jul 13 '12 at 15:24
Wolfram Alpha can sort of do this, for example wolframalpha.com/input/… – Cocopuffs Jul 13 '12 at 15:24
Your explicit example $P(x_1,x_2,x_3)=0$ at W|A... – draks ... Jul 13 '12 at 16:33
Douglas Hofstadter has written long ago about Seek Whence, a program that tried to do that. I believe it was in his Metamagical Themas book. – Ross Millikan Oct 10 '12 at 19:27
+1 for the humor in saying that this problem is "slightly" ill-posed :). And I second the reference to Hofstadter... his treatment shows why this is as rich a question as any in artificial intelligence, and not likely to be cracked by brute force. – mjqxxxx Oct 10 '12 at 19:34

You might want to take a look at the On-Line Encyclopedia of Integer Sequences or OEIS. It doesn't compute the sequences on demand but it has a very useful search engine for finding sequences. In addition, the database contains useful information about the relationships between different sequences.

-

There are an infinite number of possible combinations for equations: polynomials can have any number of terms, any powers as exponents, and any coefficients. There could be non-polynomials, too. There could be ugly relationships to transcendental functions, or other arbitrary man-made/defined functions such as the exponential integral function. What about relating a sequence to another more well known sequence?

There are an infinitude of ways of trying to relate, using brute force, one sequence to one equation. This systematic approach is not really feasible.

The program could go on forever testing all possible linear monomials. Why not? Sure, it will reach a point where its absurd to keep trying linear monomials, but how would it know to stop and try the next thing? It would have to be able to analyze the sequence and derive properties from it to know if its reached the limit of feasibility of any possible form. You know what I mean? So its not just a brute force program anymore, it has become a computer algebra system all over again, capable of thinking beyond brute force techniques.

-

There are simple formulas for determining a polynomial to fit any series of numbers. The maximum degree of the polynomial is no larger than one less than the number of numbers given in the series. The sequence. Does this help?

-
You have not really addressed the question – Shailesh Jul 2 at 1:01

Example... (Sorry I don't have full explanation)

$x=1,2,3,4$ and $Y=3,7,14,24$

$y=m_2(x-x_1)(x-x_2)+m_1(x-x_1)+y_1$

$m_1$ is slope $m_1=(y_2-y_1)/(x_2-x_1)\Longrightarrow m_1=(7-3)/(2-1) =2$

$m_2$ is change in slope $$m_2=((y_3-y_2)-(y_2-y_1))/(x_3-x_1) m_2=((14-7)-(7-3))/(3-1) =3/2$$

$y=3/2(x-2)(x-1)+2(x-1)+3 y=1.5x^2-0.5x+2$

-