Algebraic
ConvertRootOf
convert algebraic objects to RootOf notation
Calling Sequence
Parameters
Options
Description
Examples
ConvertRootOf(f, options)
f
-
any Maple object
options
(optional) equation(s) of the form keyword = value, where keyword is either 'makeindependent' or 'substitutions'
If the option 'makeindependent' = true is given, ConvertRootOf will attempt to rewrite all algebraic objects, including RootOfs that are present in f, in terms of independent RootOfs, using the command evala/Algfield. Note that this computation can be very expensive. If 'makeindependent' = false is given, then ConvertRootOf will not perform any independence checking, and the RootOfs in the output may not be independent. By default, 'makeindependent' = FAIL is assumed, and a rewrite in terms of independent RootOfs will only be attempted if there are at most 4 distinct algebraic objects in f.
If the option 'substitutions' = true is given (or 'substitutions' for short), then ConvertRootOf does not actually perform the conversion but instead returns an expression sequence F, B, S, where
F is a set of forward substitutions, such that the result of subs(F, f) is equal to what ConvertRootOf returns without option substitutions,
B is a set of backward substitutions, essentially the inverse of the substitution induced by F, and
S, of type boolean, indicates whether the RootOfs in subs(F, f) are independent.
The ConvertRootOf command changes all occurrences of algebraic objects (typically radicals) in f to indexed RootOf notation.
Usually, the radical apm, for integers p<m, is transformed into the equivalent expression RootOf⁡_Zm−a,index=1p.
The imaginary unit I is replaced by RootOf⁡_Z2+1,index=1, unless it occurs in the second or third argument of a RootOf.
This command descends recursively into subexpressions, including tables. In particular, nested radicals are converted.
By default, this command performs a limited amount of independence checking, for efficiency reasons, unless the option 'makeindependent' is given (see below).
If the input is a single algebraic object, then ConvertRootOf always returns an irreducible RootOf.
AlgebraicConvertRootOf⁡sqrt⁡5
RootOf⁡_Z2−5,index=1
AlgebraicConvertRootOf⁡I+sqrt⁡5
RootOf⁡_Z2+1,index=1+RootOf⁡_Z2−5,index=1
AlgebraicConvertRootOf⁡I+sqrt⁡5,substitutions
I=RootOf⁡_Z2+1,index=1,5=RootOf⁡_Z2−5,index=1,RootOf⁡_Z2−5,index=1=5,RootOf⁡_Z2+1,index=1=I,true
AlgebraicConvertRootOf⁡RootOf⁡_Z2−sqrt⁡2⁢_Z+1,index=2
RootOf⁡_Z2−RootOf⁡_Z2−2,index=1⁢_Z+1,index=2
The imaginary unit I is replaced by RootOf⁡_Z2+1,index=1, unless it occurs in the second or third argument of a RootOf:
AlgebraicConvertRootOf⁡x+I+RootOf⁡_Z3−I,0..1+I
x+RootOf⁡_Z2+1,index=1+RootOf⁡_Z2−RootOf⁡_Z2+1,index=1⁢_Z−1,index=1
If there are at most 4 algebraic numbers in the input, the output RootOfs will be independent by default:
AlgebraicConvertRootOf⁡sqrt⁡2,sqrt⁡3,sqrt⁡6
RootOf⁡_Z2−2,index=1,RootOf⁡_Z2−3,index=1,RootOf⁡_Z2−3,index=1⁢RootOf⁡_Z2−2,index=1
AlgebraicConvertRootOf⁡sqrt⁡2,sqrt⁡3,sqrt⁡6,substitutions
2=RootOf⁡_Z2−2,index=1,3=RootOf⁡_Z2−3,index=1,6=RootOf⁡_Z2−3,index=1⁢RootOf⁡_Z2−2,index=1,RootOf⁡_Z2−3,index=1=3,RootOf⁡_Z2−2,index=1=2,true
If the input contains more than 4 algebraic objects, the output RootOfs are not necessarily independent:
AlgebraicConvertRootOf⁡I,sqrt⁡2,sqrt⁡3,sqrt⁡5,sqrt⁡6
RootOf⁡_Z2+1,index=1,RootOf⁡_Z2−2,index=1,RootOf⁡_Z2−3,index=1,RootOf⁡_Z2−5,index=1,RootOf⁡_Z2−6,index=1
AlgebraicConvertRootOf⁡I,sqrt⁡2,sqrt⁡3,sqrt⁡5,sqrt⁡6,makeindependent
RootOf⁡_Z2+1,index=1,RootOf⁡_Z2−2,index=1,RootOf⁡_Z2−3,index=1,RootOf⁡_Z2−5,index=1,RootOf⁡_Z2−3,index=1⁢RootOf⁡_Z2−2,index=1
ConvertRootOf recognizes trigonometric algebraic numbers:
AlgebraicConvertRootOf⁡sin⁡π5
RootOf⁡_Z4−5⁢_Z2+5,index=12
Unless the only algebraic object in the input is a trigonometric algebraic number, ConvertRootOf first converts to radicals and then to RootOfs:
AlgebraicConvertRootOf⁡sin⁡π5+I
RootOf⁡_Z2−2,index=1⁢RootOf⁡_Z2−5+RootOf⁡_Z2−5,index=1,index=14+RootOf⁡_Z2+1,index=1
See Also
convert,radical
convert,RootOf
evala,Algfield
evala,Indep
radfield
Download Help Document