identify
find a closed form for a decimal approximation of a number
Calling Sequence
Parameters
Description
Examples
identify(x,opts)
x
-
a real or complex floating-point number or expression
opts
equations in the form of option=value, where option is one of all, BasisSizeAlg, BasisPolyConst, BasisProdConst, BasisSumConst, extension, LearnBasis, Rational, Algebraic, FuncRat, FuncAlg, PolyConst, FuncPoly, SumConst, FuncSum, ProdConst, and FuncProd.
If the input is a floating-point constant x, for example, 1.414213562, the identify command searches for an exact expression for the number. In this case, it determines that this is the constant 2.
If the input is a complex floating-point constant, for example, 1.386294361+3.141592654⁢I, the identify command is applied to the real and imaginary parts separately. In this case, it determines that this is the constant 2⁢ln⁡2+I⁢π.
The identify command applies the tests listed in the following section. If the input cannot be identified as an exact constant, then the numerical value x is returned. For the identify command to succeed, enough digits must be provided to approximate the number.
If the input is not a (complex) floating-point constant, then the identify command maps recursively over the input expression applying itself to each floating-point constant in the expression.
Applied Tests
The tests made are as follows.
Test if x rational.
Test if x is algebraic of degree 6 (default) or less.
Test if x is a function of a rational number e.g. ln⁡5.
Test if x is a function of an algebraic number of degree 6 or less.
Test if x is of the form a1+a2⁢t+a3t+a4⁢t+a5t+...+an⁢tk where t is a known transcendental constant e.g. π or ⅇ or ln⁡2.
(optional) Test if x is a function of the above form.
Test if x is of the form a1⁢t1+a2⁢t2+an⁢tn+...+a0 where ti are known algebraic or transcendental constants.
Test if x is of the form t1a1⁢t2a2⁢...⁢tnan where ti are certain constants and ai are rational.
The test for rational constants is made by looking at the continued fraction expansion of x. The test for an algebraic number up to degree 6, that is, a root of a polynomial m⁡z of degree 6 or less, is made by applying Bailey and Ferguson's IntegerRelations[PSLQ] algorithm to [x0,x1,x2,...,x6] to compute the minimal polynomial m⁡z for x and then solving for the roots and selecting the right one. If the solve command is not able to solve for the root in terms of radicals, the answer may be returned in the form of a RootOf.
Options
The remaining arguments to the identify command are treated as options. They are equations of the form option=value. The following options are supported.
all
The option all=true specifies trying all tests, including the optional ones. The option all=false specifies only the tests that are explicitly asked for, as specified below.
BasisSizeAlg
The option BasisSizeAlg=n specifies when testing whether x is an algebraic number, to search up to degree n (default is 6).
BasisPolyConst
The option BasisPolyConst=B1 specifies the use of basis B1, a list of real constants (default is π,ⅇ,ln⁡2, when making test 5, that is, t is chosen from this list.
BasisSizePoly
The option BasisSizePoly=n specifies the value of n to use in test 5.
BasisSumConst
The option BasisSumConst=B2 specifies the use of basis B2, a list of real constants (default is 1,2,3,π,ln⁡2,ln⁡3,ζ⁡3,ζ⁡5) when making test 7, that is, ti is chosen from this list.
BasisSizeSum
The option BasisSizeSum=n specifies the value of n to use in test 7 (default 3).
BasisProdConst
The option BasisProdConst=B3 specifies the use of basis B3, a list of real constants (default is 2,3,5,7,π,ⅇ,ln⁡2,ln⁡3,ζ⁡3,ζ⁡5) when making test 9, that is, ti is chosen from this list.
BasisSizeProd
The option BasisSizeProd=n specifies the value of n to use in test 9 (default 3).
extension
The option extension=B specifies adding the elements of B, a list of real constants, to the bases B1,B2,B3, when making tests 5, 7, and 9.
LearnBasis
The option LearnBasis=true specifies the use of nonrational constants found in tests 1-4 when making tests 5-10. The default for this option is false.
Rational, Algebraic, FuncRat, FuncAlg, PolyConst, SumConst, and ProdConst
The options Rational=false, Algebraic=false, FuncRat=false, FuncAlg=false, PolyConst=false, SumConst=false, and ProdConst=false specify not to perform tests 1, 2, 3, 4, 5, 7, and 9 respectively.
FuncPoly, FuncSum, and FuncProd
The options FuncPoly=true, FuncSum=true, FuncProd=true specify the performance of tests 6, 8 and 10 respectively.
identify⁡3.142857143
227
identify⁡3.146264370
2+3
identify⁡3.141701399
arcsinh⁡23120
identify⁡3.141592654
π
identify⁡2.596684952
3+π−2⁢π
identify⁡0.7692389013,all=false,FuncPoly=true
cos⁡ln⁡2
identify⁡2.7889921029138087050,BasisPolyConst=Catalan
2⁢Catalan+Catalan
f≔0.1428571429⁢x2+8.885765876⁢x+9.869604404
identify⁡f
x27+2⁢2⁢π⁢x+π2
f≔expand⁡sqrt⁡2+π⁢y+12
f≔2⁢y2+2⁢y2⁢2⁢π+2⁢y⁢2+y2⁢π2+2⁢y⁢π+1
f≔evalf⁡f
f≔20.75537028⁢y2+9.111612432⁢y+1.
20.75537028⁢y2+2⁢2+2⁢π⁢y+1
identify⁡f,LearnBasis=true
2⁢2+2⁢π2⁢y24+2⁢2+2⁢π⁢y+1
z≔evalf⁡exp⁡I⁢π5,20
z≔0.80901699437494742410+0.58778525229247312917⁢I
identify⁡z
54+14+I⁢10−2⁢54
See Also
evalf
IntegerRelations[LinearDependency]
IntegerRelations[PSLQ]
solve
Download Help Document