Re: Re: Re: Guessing "exact" values

*To*: mathgroup at smc.vnet.net*Subject*: [mg76306] Re: [mg76256] Re: [mg76171] Re: [mg76079] Guessing "exact" values*From*: Daniel Lichtblau <danl at wolfram.com>*Date*: Sat, 19 May 2007 04:43:03 -0400 (EDT)*References*: <200705160920.FAA29604@smc.vnet.net> <200705170959.FAA01041@smc.vnet.net> <200705181023.GAA13487@smc.vnet.net>

Andrzej Kozlowski wrote: > Mathematica can "recognize" algebraic numbers, by using the function > RootApproximant (or the function Recognize in the Legacy > NumberTherory package): > > ToRadicals[RootApproximant[N[Sqrt[2] + Sqrt[3], 30]]] > Sqrt[5 + 2*Sqrt[6]] > > This may not look so impressive until you check: > > FullSimplify[Sqrt[2] + Sqrt[3] - Sqrt[5 + 2*Sqrt[6]]] > 0 > > Anyway, doing this for algebraic numbers has a solid mathematical > basis: the so called LLL Lattice Reduction) algorithm. I don=92t know, = > > however, of any mathematical basis for "recognizing" transcendentals, = > > except by means of stored values or some other "ad hoc" approach > (essentially "sophisticated guessing") > > Andrzej Kozlowski > > > On 17 May 2007, at 18:59, Murray Eisenberg wrote: > > >>As I remember, at IMS'06 (Avignon) Stephen Wolfram (via remote link-= > > >>up) >>played with a function to do just that. Did I remember correctly? >> >>If so, I cannot recall the name of the function, so I don't know >>whether >>the function made it into 6.0. The closest thing I can find is >>RootApproximant, but that doesn't seem to "recognize" an expression >>involving a transcendental number. >> >>Szabolcs wrote: >> >>>"Another computer algebra system" has a function, identify(), which >>>attempts to guess the exact expression that evaluates to a particular >>>numerical value. >>> >>>Example: >>> >>>In[1]:= N[3Pi+3/2,10] >>> >>>Out[1]= 10.92477796 >>> >>> >>>>identify(10.92477796); >>> >>> 3 >>> - + 3 Pi >>> 2 >>> >>>Is there a package with similar functionality for Mathematica? >>> >>>Szabolcs >>> >> >>-- >>Murray Eisenberg murray at math.umass.edu >>Mathematics & Statistics Dept. >>Lederle Graduate Research Tower phone 413 549-1020 (H) >>University of Massachusetts 413 545-2859 (W) >>710 North Pleasant Street fax 413 545-1801 >>Amherst, MA 01003-9305 >> A common approach is to use a predefined basis of transcendentals, e.g certain powers of e, pi, gamma, and maybe some set of radicals of "small" integers. One then seeks rational combinations of these that give the input value to close approximation. This step typically uses LLL or PSLQ. Simple code to demonstrate the concept was presented in TMJ back in 1996 (and based on some email and maybe news group correspondence from late 1995). The reference is below. Transcendental Recognition. In: Tricks of the Trade, Paul Abbott editor. The Mathematica Journal 6(2):29-30 (1996). To obtain electronically go to: http://www.mathematica-journal.com/issue/v6i2/ Scroll to Tricks of the Trade (under Tutorials), click to download the notebook, go to "Trancendental Recognition" section. I'll mention that a perusal of documentation suggests the identify() function for the most part uses this approach. Daniel Lichtblau Wolfram Research

**References**:**Guessing "exact" values***From:*Szabolcs <szhorvat@gmail.com>

**Re: Guessing "exact" values***From:*Murray Eisenberg <murray@math.umass.edu>

**Re: Re: Guessing "exact" values***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>