MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Re: Guessing "exact" values


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


  • Prev by Date: Drawing a bounded smooth region with Mathematica
  • Next by Date: Minimize[] Problem
  • Previous by thread: Re: Re: Guessing "exact" values
  • Next by thread: Re: Guessing "exact" values