Notebook that accompany package Builder.

Authors: Luis A. Medina and Doron Zeilberger
 	  Rutgers University
 	  [lmedina, zeilberg]@math.rutgers.edu

Please report bugs to: lmedina@math.rutgers.edu

Calling Builder.m

Please save Builder.m in a folder that is readable by Mathematica.  For example, if you are a Windows user,
you can save the file Builder.m in the following location:  C:\ProgramData\Mathematica\Applications.

Once this is done, you can read the package by simply typing:

<<Builder.m

The functions

If you need information about the functions included in this package, simply
type ?nameoffunction.  For example:

?GF

GuessRationalFunction

?GuessRationalFunction

Example 1

Table[(x/((x^3)+3x+1)),{x,1,10}]

GuessRationalFunction[{(1/5),(2/15),(3/37),(4/77),(5/141),(6/235),(7/365),(8/537),(9/757),(10/1031)},4,4,x]

Example 2

Table[(((x^2)+1)/((x^4)+3(x^3)+1)),{x,1,12}]

GuessRationalFunction[{(2/5),(5/41),(10/163),(17/449),(2/77),(37/1945),(50/3431),(65/5633),(82/8749),(101/13001),(122/18635),(145/25921)},4,4,x]

Example 3

The number of elements in the list should be bigger than the sum of the guess degrees.  
For example

Table[(((x^5)+1)/((x^4)+3(x^3)+1)),{x,1,9}]

GuessRationalFunction[{(2/5),(33/41),(244/163),(1025/449),(3126/1001),(7777/1945),(16808/3431),(32769/5633),(59050/8749)},5,5,x]

But

GuessRationalFunction[Table[(((x^5)+1)/((x^4)+3(x^3)+1)),{x,1,11}],5,5,x]

GF

?GF

The function that GF is trying to match is given by

f[h_,t_,n_]/;(h+t==n):=Max[1/2,h/n]

f[0,0,n_]:=1/2 (f[1,0,n]+f[0,1,n])

f[h_,t_,n_]/;h+t<n:=f[h,t,n]=Block[{$RecursionLimit=Infinity},Max[h/(h+t),1/2 (f[h+1,t,n]+f[h,t+1,n])]]

In particular, it studies

F[m_,n_,α_]:=f[n+α,n-m+1-α,2n+1]

Example 1

If no bound is entered, then GF uses an internal bound to calculate
the guess function.

GF[2,n,α]

Note that

Table[((2+9 n+8 (n^2))/(8 n+16 (n^2))),{n,3,10}]

and

Table[F[2,n,0],{n,3,10}]

Similarly

Table[((5+8 n)/(8+16 n)),{n,3,10}]

and

Table[F[2,n,-1],{n,3,10}]

Example 2

You can enter your own bound on n by typing

GF[3,n,α,Bound->15]

However, sometimes your bound is too small and GF cannot
guess the appropiate form of f.  In this case, GF returns an error
message.

GF[3,n,α,Bound->6]

BUILDER

?BUILDER

Example 1

BUILDER[4,n,α]

BUILDER[4,n,α]

Table[((-4-7 n+46 (n^2)+64 (n^3))/(-32 n+128 (n^3))),{n,37,50}]

Table[F[4,n,-1],{n,37,50}]

Example 2

As in the case of GF, you can change the bound on n by simply
doing

BUILDER[3,n,α,Bound->20]

However, sometimes your bound is too small and BUILDER cannot
find the appropiate closed form of f.  In this case, BUILDER returns 
an error message.

BUILDER[3,n,α,Bound->5]