RATE - A Mathematica guessing machine

The file rate.m (given the - in this case - unwanted simplification features of the recent versions of Mathematica, I recommend to use rate2.m) allows you to guess a closed form expression (if existent) for a sequence of numbers, given the first few terms of the sequence. (See the appendix of my paper "Advanced determinant calculus" for explanations of how the program works.)

There are 5 objects provided by the program: Rate, Ratekurz, Rateeins, Rateint, Ratepol.

Rate tries to find a closed form for a sequence within the hierarchy of expressions of the form <rational function>, <product of rational function>, <product of product of rational function>, etc. It may give several answers.

Ratekurz tries to find a closed form for a sequence within the hierarchy of expressions of the form <rational function>, <product of rational function>, <product of product of rational function>. (I.e., it searches only within the first 3 levels of the search that is done by Rate.)

Rateeins does the same thing as Ratekurz, with the difference that it immediately exits if one answer is found.

Rateint just tries rational interpolation.

Ratepol just tries (polynomial) interpolation.

You may want to try the examples

Rate[1, 2, 3]
Rate[1, 4, 9, 16]
Rate[1, 3, 6, 10]
Rate[1, 2, 6, 24]
Rate[1, 2, 7, 42, 429, 7436, 218348, 10850216]
(alternating sign matrices)

Rateeins, Ratekurz, Rateint, and Ratepol work in the same way.

For users of rate2.m: The function PProduct that features in guessed results stands for "product". Having obtained a result, in case you are interested to see what the simplification procedures of Mathematica do, you enter

%/.PProduct->Product

General Hint/Warning: It is (most of the time) wise to first enter just a moderate number of terms. The formula that you are looking forward may not be so complicated, and therefore this moderate number of terms may already suffice to guess the formula. The more terms you enter, Rate* will try to find higher and higher order formulae, and that may require more time.


If you are looking for something similar within the "q-world", then the file rate.q is exactly the right thing for you. It contains the analogous objects Rateq, Ratekurzq, Rateeinsq, Rateintq und Ratepolq.

Here you may want to try

Rateq[1, 1+q, 1+q+q^2, 1+q+q^2+q^3, q]

which explains the syntax. It is the same for Ratekurzq, Rateeinsq, Rateintq, and Ratepolq.


A small excerpt from the German-English Dictionary:
Rate! is German for Guess!
kurz is German for short
eins is German for one

Back to Christian Krattenthaler's home page.