RootFinding
RefineRoot
refine a real root for a polynomial system
Calling Sequence
Parameters
Description
Examples
Compatibility
RefineRoot( interval, p, digits = d, partialresults = partial, strategy = s )
RefineRoot( interval, p, x, digits = d, partialresults = partial, strategy = s )
RefineRoot( box, sys, vars, digits = d, partialresults = partial, strategy = s )
RefineRoot( vbox, sys, digits = d, partialresults = partial, strategy = s )
RefineRoot( R, digits = d, partialresults = partial, strategy = s )
interval
-
single interval; isolating interval for a real root of the univariate polynomial p
p
univariate polynomial with rational coefficients
x
(optional) name; variable for the univariate polynomial p
box
non-empty list of intervals; isolating box for a real root of the system sys or polynomial p
sys
nonemptylist( polynom ); polynomials with rational coefficients defining a polynomial system
vars
nonemptylist( name ); variables for the polynomials in sys, ordered with respect to the intervals of box
vbox
non-empty list containing elements with type name = interval; simultaneously describes the isolating box for a real root of the system sys and the accompanying variables, where the name preceding each interval describes the associated variable for the interval of the isolating box
R
A real algebraic number represented by a (potentially nested) RootOf where all RootOfs represent a real algebraic number via indexing by rational intervals
d
(optional) posint; target precision to refine the root to (default 2⁢Digits)
partial
(optional) truefalse; defines whether a partially refined root is satisfactory to return in the case of lack of integrity in the input (default false)
s
(optional) The symbol oracle or geometric; defines strategy for a second attempt at refinement in the case of missing integrity in the input (default oracle)
RefineRoot is a function to refine a real root for a polynomial system to target precision defined by d.
Throughout, any interval can be represented by either a list or range of two rational numbers, i.e. [ rational, rational ] or rational .. rational. In other words, RefineRoot accepts and returns intervals under both such representations. A list or range of rationals represents an open real interval with rational endpoints with respect to one variable in this way. When the intervals are supplied as part of the parameter R, only ranges are applicable.
The return value of RefineRoot is in the same format as the parameter for input containing the isolating box, i.e. vbox, box, or R.
In the univariate case, the parameter interval is a single interval, and the polynomial p must be univariate. It is not necessary to supply a variable, which can be deduced from the single variable in p.
In the multivariate case, lists of intervals are supplied via box or vbox, but the intervals do not need to be represented in the same way for each element (ranges or lists of rational numbers are interchangable). In this case we assume n polynomials in sys, n elements of box, and n variables in vars, or n elements of vbox. The ordering of vars must correspond with the intervals contained within box to confirm which interval corresponds to which variable for the root. For the parameter vbox, the correspondence is clear.
For the parameter R, isolating intervals are supplied directly with each polynomial in the real algebraic number supplied.
RefineRoot attempts to refine to the target precision represented by d. This is always achievable when the input has integrity. The input has integrity if every polynomial in the system is radical, the solutions of the system are all zero dimensional, and the given box is isolating for the root, i.e. it contains exactly one real root. In the case of missing integrity, the attempt at refinement at a working precision matching the target may fail, and a second attempt at refinement is made using a working precision defined by the strategy determined by the value of the keyword option strategy. In this case the parameter partial defines whether it is acceptable to return a partially refined root which may not meet the target precision defined by d.
Working precision strategy for a second attempt at refinement in the case of lack of input integrity is defined by the keyword option strategy, i.e. the parameter s. When s = geometric, the procedure tries a higher working precision of twice the last working precision in the case of first failure to refine the root. When s = oracle, the situation is similar, but the next working precision to use also takes into account the current precision of the box, as well as the degree of the polynomials in the system for the root.
When a second attempt at refinement fails in the case of lack of input integrity, an error is thrown. This error represents an identification of lack of integrity that is one of two possibilities:
that there is a problem with the polynomial system,
or that the passed box is not isolating for the root.
In the univariate case where the passed interval contains roots but is not isolating, the procedure will converge to exactly one of the roots contained within the interval. There is no guarantee as to which.
In the case where the argument R is passed (a real algebraic number via RootOf), the same discussion on integrity of input is relevant, however construction and evaluation of the associated RootOf will do some checking that the associated box for the implied triangular system for the RootOf contains a root. It is still possible that the implied system lacks integrity, or the box is not isolating.
An error is thrown if the passed box does not contain any root for the system.
RootFinding:-RefineRoot⁡1..2,x2−2
417402170410649030795295147905179352825856..834804340821298061591590295810358705651712
RootFinding:-RefineRoot⁡1,2,x2−2
417402170410649030795295147905179352825856,834804340821298061591590295810358705651712
RootFinding:-RefineRoot⁡RootOf⁡_Z2−2,1..2
RootOf⁡_Z2−2,417402170410649030795295147905179352825856..834804340821298061591590295810358705651712
p≔x3−x−2
iso≔RootFinding:-Isolate⁡p,digits=20,output=interval
iso≔x=3313271600748426507012506445957390657265121778071482940061661655974875633165533184,82831790018710662675312661148934766431835444517870735015415413993718908291383296
intvl≔op⁡1,2,iso
intvl≔3313271600748426507012506445957390657265121778071482940061661655974875633165533184,82831790018710662675312661148934766431835444517870735015415413993718908291383296
RootFinding:-RefineRoot⁡intvl,p,x,digits=40
42409876489579859289760082508254600413026492787593149816327892691964784081045188247552,84819752979159718579520165016509200826053795575186299632655785383929568162090376495104
RootFinding:-RefineRoot⁡RootOf⁡_Z2−2⁢RootOf⁡_Z3−9,2..3,1..2
RootOf⁡_Z2−2⁢RootOf⁡_Z3−9,49114590637698329387692361183241434822606848..196458362550793317550779444732965739290427392,96319696147222114250994722366482869645213696..192639392294444228501999444732965739290427392
sys≔x2+y+z−1,y2+x+z−1,z2+x+y−1;vars≔x,y,z
sys≔x2+y+z−1,y2+x+z−1,z2+x+y−1
vars≔x,y,z
iso≔RootFinding:-Isolate⁡sys,vars,digits=40,output=interval
iso≔x=−5383876150931931047876638489883563296753123322300745198530623141535718272648361505980416,−21535504603727724191506553959534253187012491789202980794122492566142873090593446023921664,y=−10767752301863862095753276979767126593506246344601490397061246283071436545296723011960832,−10767752301863862095753276979767126593506245944601490397061246283071436545296723011960832,z=−21535504603727724191506553959534253187012492589202980794122492566142873090593446023921664,−21535504603727724191506553959534253187012492189202980794122492566142873090593446023921664,x=0,0,y=0,0,z=1,1,x=0,0,y=1,1,z=0,0,x=1847454222451612839138989670707781991114079744601490397061246283071436545296723011960832,147796337796129027131119173656622559289126385356811923176489970264571492362373784095686656,y=147796337796129027131119173656622559289126377356811923176489970264571492362373784095686656,923727111225806419569494835353890995557039922300745198530623141535718272648361505980416,z=147796337796129027131119173656622559289126379356811923176489970264571492362373784095686656,73898168898064513565559586828311279644563191178405961588244985132285746181186892047843328,x=1,1,y=0,0,z=0,0
box≔map2⁡op,2,iso1
box≔−5383876150931931047876638489883563296753123322300745198530623141535718272648361505980416,−21535504603727724191506553959534253187012491789202980794122492566142873090593446023921664,−10767752301863862095753276979767126593506246344601490397061246283071436545296723011960832,−10767752301863862095753276979767126593506245944601490397061246283071436545296723011960832,−21535504603727724191506553959534253187012492589202980794122492566142873090593446023921664,−21535504603727724191506553959534253187012492189202980794122492566142873090593446023921664
box≔RootFinding:-RefineRoot⁡box,sys,vars,digits=50
box≔−11561785996983501886378586278232365603750303297716460547890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460347890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460547890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460347890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460547890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460347890485652059026823698344598447161988085597568237568
box≔RootFinding:-RefineRoot⁡box,sys,vars,digits=60
box≔−6207186592549361906693791992465295869602855951721643593967965125711008708143844408671393477458601640355247900524685364822016,−496574927403948952535503359397223669568228476137731487517437207205688069665150755269371147819668813122841983204197482918576128,−6207186592549361906693791992465295869602855951721643593967965125711008708143844408671393477458601640355247900524685364822016,−496574927403948952535503359397223669568228476137731487517437207205688069665150755269371147819668813122841983204197482918576128,−6207186592549361906693791992465295869602855951721643593967965125711008708143844408671393477458601640355247900524685364822016,−496574927403948952535503359397223669568228476137731487517437207205688069665150755269371147819668813122841983204197482918576128
intvls≔map⁡r↦`..`⁡op⁡r,box
intvls≔−6207186592549361906693791992465295869602855951721643593967965125711008708143844408671393477458601640355247900524685364822016..−496574927403948952535503359397223669568228476137731487517437207205688069665150755269371147819668813122841983204197482918576128,−6207186592549361906693791992465295869602855951721643593967965125711008708143844408671393477458601640355247900524685364822016..−496574927403948952535503359397223669568228476137731487517437207205688069665150755269371147819668813122841983204197482918576128,−6207186592549361906693791992465295869602855951721643593967965125711008708143844408671393477458601640355247900524685364822016..−496574927403948952535503359397223669568228476137731487517437207205688069665150755269371147819668813122841983204197482918576128
intvls≔RootFinding:-RefineRoot⁡intvls,sys,vars,digits=75
intvls≔−1118187329008977802634693552378588657873139398432508152652405164837706556819627463168356949264781694283940034751631413079938662562256157830336031652518559744..−1118187329008977802634693552378588657873139398432508152652405164837706556819625463168356949264781694283940034751631413079938662562256157830336031652518559744,−1118187329008977802634693552378588657873139398432508152652405164837706556819627463168356949264781694283940034751631413079938662562256157830336031652518559744..−1118187329008977802634693552378588657873139398432508152652405164837706556819625463168356949264781694283940034751631413079938662562256157830336031652518559744,−1118187329008977802634693552378588657873139398432508152652405164837706556819627463168356949264781694283940034751631413079938662562256157830336031652518559744..−1118187329008977802634693552378588657873139398432508152652405164837706556819625463168356949264781694283940034751631413079938662562256157830336031652518559744
vbox≔iso1
vbox≔x=−5383876150931931047876638489883563296753123322300745198530623141535718272648361505980416,−21535504603727724191506553959534253187012491789202980794122492566142873090593446023921664,y=−10767752301863862095753276979767126593506246344601490397061246283071436545296723011960832,−10767752301863862095753276979767126593506245944601490397061246283071436545296723011960832,z=−21535504603727724191506553959534253187012492589202980794122492566142873090593446023921664,−21535504603727724191506553959534253187012492189202980794122492566142873090593446023921664
iso≔RootFinding:-RefineRoot⁡vbox,sys,digits=50
iso≔x=−11561785996983501886378586278232365603750303297716460547890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460347890485652059026823698344598447161988085597568237568,y=−11561785996983501886378586278232365603750303297716460547890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460347890485652059026823698344598447161988085597568237568,z=−11561785996983501886378586278232365603750303297716460547890485652059026823698344598447161988085597568237568,−11561785996983501886378586278232365603750303297716460347890485652059026823698344598447161988085597568237568
The RootFinding[RefineRoot] command was introduced in Maple 2022.
For more information on Maple 2022 changes, see Updates in Maple 2022.
See Also
EvaluateAtRoot
Isolate
Download Help Document