The documentation for PossibleZeroQ says:
- With the setting
Method->"ExactAlgebraics",PossibleZeroQwill use exact guaranteed methods in the case of explicit algebraic numbers.
Unfortunately, there is no formal definition of what expressions are considered explicit algebraic numbers. I noticed that trig functions of rational multiples of π are not considered explicit algebraic numbers. Neither are RootSum expressions with algebraic functions as a second argument, nor Re, Im parts of Root expressions.
In[1]:= PossibleZeroQ[
Root[-7 + 56 #1^2 - 112 #1^4 + 64 #1^6 &, 4] - Sin[π/7], Method -> "ExactAlgebraics"]
PossibleZeroQ::ztest1: Unable to decide whether numeric quantity Root[-7 + 56 #1^2 - 112 #1^4 + 64 #1^6 &, 4,] - Sin[π/7] is equal to zero. Assumіng it is. >>
Out[1]= True
In[2]:= PossibleZeroQ[
Root[25 + 3300 #1^4 - 530 #1^8 + 20 #1^12 + #1^16 &, 16] -
RootSum[5 - 20 #1^2 + 16 #1^4 &, Sqrt], Method -> "ExactAlgebraics"]
PossibleZeroQ::ztest1: Unable to decide whether numeric quantity Root[25 + 3300 #1^4 - 530 #1^8 + 20 #1^12 + #1^16 &, 16] - RootSum[5 - 20 #1^2 + 16 #1^4 &, Sqrt[#1] &] is equal to zero. Assumіng it is. >>
Out[2]= True
In[3]:= PossibleZeroQ[Re[Root[5 + 20 #1^2 + 16 #1^4 &, 1]], Method -> "ExactAlgebraics"]
PossibleZeroQ::ztest1: Unable to decide whether numeric quantity Re[Root[5 + 20 #1^2 + 16 #1^4 &, 1]] is equal to zero. Assumіng it is. >>
Out[3]= True
Could you suggest a function that can determine if a given expression is considered an explicit algebraic number from PossibleZeroQ's point of view?



RootReduce[]? – J. M.'s missing motivation Jun 06 '13 at 02:31RootReduce. But, first, it can take much time for larger expressions, and if I only need to check for zero, I want to invokeRootReduceonly if necessary. Second, it does not work for cases likeRootReduce[RootSum[5 - 20 #1^2 + 16 #1^4 &, Sqrt]]so other approaches (e.g. invokeNormalfirst) may be needed. – Vladimir Reshetnikov Jun 06 '13 at 02:41RootSum, and even more so that the sum of aRootSumand aRootis accepted, but the difference isn't. (Differences betweenRoots, though, are handled without any message.) – Oleksandr R. Jun 06 '13 at 03:49