RootFinding
EvaluateAtRoot
evaluate polynomials or relations on polynomials at a real root
Calling Sequence
Parameters
Description
Examples
Compatibility
EvaluateAtRoot( polys, box, sys, vars, threshold = t, digits = d, output = o, strategy = s, accuracy = a )
EvaluateAtRoot( polys, vbox, sys, threshold = t, digits = d, output = o, strategy = s, accuracy = a )
EvaluateAtRoot( lcons, box, sys, vars, threshold = t, digits = d, output = u, earlyterminate = e )
EvaluateAtRoot( lcons, vbox, sys, threshold = t, digits = d, output = u, earlyterminate = e )
EvaluateAtRoot( scons, box, sys, vars, threshold = t, digits = d, output = u )
EvaluateAtRoot( scons, vbox, sys, threshold = t, digits = d, output = u )
polys
-
list( polynom ); list of polynomials to evaluate the signs of at a real root
box
non-empty list of intervals; isolating box for a real root of sys
sys
nonemptylist( polynom ); system of polynomials
vars
nonemptylist( name ); variables for the system sys, with ordering corresponding 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
lcons
list( relation( polynom ) ); list of relations to evaluate the truth of
scons
set( relation( polynom ) ); set of relations to evaluate the truth of
t
(optional) posint; threshold working precision that should not be exceeded (default infinity)
d
(optional) posint; starting working precision to use (default maximum precision of any interval in box or vbox)
o
(optional) nonemptylist( symbol ); non-empty list of symbols from among signs, refinement, and intervals defining the outputs returned and their sequential ordering (default [signs])
u
(optional) nonemptylist( symbol ); non-empty list of symbols from among truth and refinement defining the outputs returned and their sequential ordering (default [truth])
s
(optional) The symbol oracle or geometric; defines strategy to increase precision when there is scope for increased working precision to use in evaluation. (default oracle)
a
(optional) posint; defines a request for accuracy to achieve (default −∞)
e
(optional) truefalse; controls early termination behavior of the procedure when a meaningful truth value is achieved amongst the list of constraints. (default true)
EvaluateAtRoot is a multipurpose procedure to evaluate collections of polynomials or relations on polynomials at a real root.
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, EvaluateAtRoot 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.
Given a collection of polynomial relations, by default EvaluateAtRoot terminates upon evaluating any relation in the collection as false. When a list of relations lcons is passed, this early termination criteria can be turned off by using the option earlyterminate = false, which forces evaluation of the full list of polynomials.
When the parameter lcons is passed and the output truth is requested, any polynomials such that a sign cannot or is not reliably deduced will yield a truth value of FAIL. One scenario for this is where polynomials are skipped due to early termination.
Because truth values can only be mapped to an original relation for a collection with a fixed ordering, early termination isn't available with usage of the parameter scons.
If a truth value cannot be reliably determined given the parameters, then the return value will be FAIL.
lcons ≔ x2−3<0,0<x2−2,0<x+4
lcons≔x2<3,0<x2−2,0<x+4
polys ≔ map⁡r→lhs⁡r−rhs⁡r,lcons
polys≔x2−3,−x2+2,−4−x
sys ≔ x2−2;vars ≔ x;box ≔ 1..2
sys≔x2−2
vars≔x
box≔1..2
s,box ≔ RootFinding:-EvaluateAtRoot⁡polys,box,sys,vars,'output=signs,refinement','accuracy=20'
s,box≔−1,0,−1,213709911250252303767135151115727451828646838272..66784347265703844927234722366482869645213696
t,box ≔ RootFinding:-EvaluateAtRoot⁡lcons,box,sys,vars,'output=truth,refinement','digits=30'
t,box≔true,false,FAIL,1136276788042180458070828951474823657989790988021617205464301803469022129495137770981046170581301261101496891396417650688..90902143043374436645666316117985892639183279041729376437144096427752177035961102167848369364650410088811975131171341205504
t,box ≔ RootFinding:-EvaluateAtRoot⁡lcons,box,sys,vars,'output=truth,refinement','digits=30','earlyterminate=false'
t,box≔true,false,true,1460741119610710954571473490162359884261672472836437833193991718879756708123654433272144476462063870354965569624347616758910328999512347634358623676688012047497318823171316894051322637426162590488067364778518581413120551325743612687890989973504..73037055980535547728573674508117994213083623641821891659699585943987835406182721663607223823103193517748278481217380837955164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986752
sys ≔ x2+y+z−1,y2+x+z−1,z2+x+y−1
sys≔x2+y+z−1,y2+x+z−1,z2+x+y−1
vars ≔ x,y,z
vars≔x,y,z
lcons ≔ 0≤−17⁢x4⁢y−75⁢x3⁢y⁢z+80⁢x2⁢z2−44⁢y3⁢z+71⁢y⁢z3−82⁢y3,−62⁢x2⁢z3+97⁢x⁢y3⁢z−73⁢y⁢z4−56⁢x⁢y⁢z2+87⁢x⁢y<0,−23⁢x⁢y3⁢z+87⁢x⁢z4+72⁢x2⁢z2+37⁢x⁢y⁢z2+74⁢x⁢y2+6⁢y2≠0
lcons≔0≤−17⁢x4⁢y−75⁢x3⁢y⁢z+80⁢x2⁢z2−44⁢y3⁢z+71⁢y⁢z3−82⁢y3,−62⁢x2⁢z3+97⁢x⁢y3⁢z−73⁢y⁢z4−56⁢x⁢y⁢z2+87⁢x⁢y<0,−23⁢x⁢y3⁢z+87⁢x⁢z4+72⁢x2⁢z2+37⁢x⁢y⁢z2+74⁢x⁢y2+6⁢y2≠0
d ≔ 50
d≔50
iso ≔ RootFinding:-Isolate⁡sys,vars,'output=interval','digits'=d
iso≔x=−924942879758680150910286902258589248300024263817316831383123885216472214589586756787577295904684780545900544,−36997715190347206036411476090343569932000970552692673091532495540865888858358347027150309183618739122183602176,y=−1849885759517360301820573804517178496600048527634633661766247770432944429179173513575154591809369561091801088,−1849885759517360301820573804517178496600048527634633657766247770432944429179173513575154591809369561091801088,z=−462471439879340075455143451129294624150012131908658415191561942608236107294793378393788647952342390272950272,−36997715190347206036411476090343569932000970552692673151532495540865888858358347027150309183618739122183602176,x=1,1,y=0,0,z=0,0,x=0,0,y=1,1,z=0,0,x=158695109325735721731113388683434656490654702725515741383123885216472214589586756787577295904684780545900544,25391217492117715476978142189349545038504752436082518656129982163463555433433388108601236734474956488734408704,y=507824349842354309539562843786990900770095048721650371312259964326927110866866776217202473468949912977468817408,507824349842354309539562843786990900770095048721650372712259964326927110866866776217202473468949912977468817408,z=507824349842354309539562843786990900770095048721650371512259964326927110866866776217202473468949912977468817408,507824349842354309539562843786990900770095048721650372112259964326927110866866776217202473468949912977468817408,x=0,0,y=0,0,z=1,1
vbox ≔ iso1
vbox≔x=−924942879758680150910286902258589248300024263817316831383123885216472214589586756787577295904684780545900544,−36997715190347206036411476090343569932000970552692673091532495540865888858358347027150309183618739122183602176,y=−1849885759517360301820573804517178496600048527634633661766247770432944429179173513575154591809369561091801088,−1849885759517360301820573804517178496600048527634633657766247770432944429179173513575154591809369561091801088,z=−462471439879340075455143451129294624150012131908658415191561942608236107294793378393788647952342390272950272,−36997715190347206036411476090343569932000970552692673151532495540865888858358347027150309183618739122183602176
RootFinding:-EvaluateAtRoot⁡lcons,vbox,sys,'digits'=d
true,false,FAIL
RootFinding:-EvaluateAtRoot⁡lcons,vbox,sys,'earlyterminate=false'
true,false,true
polys≔17⁢x4⁢y+75⁢x3⁢y⁢z−80⁢x2⁢z2+44⁢y3⁢z−71⁢y⁢z3+82⁢y3,−62⁢x2⁢z3+97⁢x⁢y3⁢z−73⁢y⁢z4−56⁢x⁢y⁢z2+87⁢x⁢y,−23⁢x⁢y3⁢z+87⁢x⁢z4+72⁢x2⁢z2+37⁢x⁢y⁢z2+74⁢x⁢y2+6⁢y2
RootFinding:-EvaluateAtRoot⁡polys,vbox,sys,'digits'=d
−1,1,−1
constraints ≔ convert⁡lcons,'set'
constraints≔−23⁢x⁢y3⁢z+87⁢x⁢z4+72⁢x2⁢z2+37⁢x⁢y⁢z2+74⁢x⁢y2+6⁢y2≠0,0≤−17⁢x4⁢y−75⁢x3⁢y⁢z+80⁢x2⁢z2−44⁢y3⁢z+71⁢y⁢z3−82⁢y3,−62⁢x2⁢z3+97⁢x⁢y3⁢z−73⁢y⁢z4−56⁢x⁢y⁢z2+87⁢x⁢y<0
RootFinding:-EvaluateAtRoot⁡constraints,vbox,sys,'digits'=d
false
box ≔ map2⁡op,2,vbox
box≔−924942879758680150910286902258589248300024263817316831383123885216472214589586756787577295904684780545900544,−36997715190347206036411476090343569932000970552692673091532495540865888858358347027150309183618739122183602176,−1849885759517360301820573804517178496600048527634633661766247770432944429179173513575154591809369561091801088,−1849885759517360301820573804517178496600048527634633657766247770432944429179173513575154591809369561091801088,−462471439879340075455143451129294624150012131908658415191561942608236107294793378393788647952342390272950272,−36997715190347206036411476090343569932000970552692673151532495540865888858358347027150309183618739122183602176
r,s,box ≔ RootFinding:-EvaluateAtRoot⁡polys,box,sys,vars,'digits'=2⁢d,'output=refinement,signs,intervals'
r,s,box≔−1351805533204871503598658581291245321878330881470025723977137404661742974069835107134037625276089582993559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944,−1351805533204871503598658581291245321878330881470025723977137404661742974069835107134037625276089582991559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944,−108144442656389720287892686503299625750266470517602057918170992372939437925586808570723010022087166639374479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552,−54072221328194860143946343251649812875133235258801028959085496186469718962793404285361505011043583319672239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776,−108144442656389720287892686503299625750266470517602057918170992372939437925586808570723010022087166639374479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552,−54072221328194860143946343251649812875133235258801028959085496186469718962793404285361505011043583319672239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776,−1,1,−1,−3372139003113425169241267499784491383006157721118540276291232151559546893958534318090382154075429525623273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728,−3372139003113425169241267499784491383006157721118540276291232151559546893958534318090382154075429525595273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728,18823315602615879199565265879829831751972852418966284066442681168048087341177265368510769938464185077191093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912,18823315602615879199565265879829831751972852418966284066442681168048087341177265368510769938464185078611093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912,−697808848050458113512573868531122461914242153434816931632280514690666573609599752602267167852134429457273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728,−1395617696100916227025147737062244923828484306869633863264561029381333147219199505204534335704268858869546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763456
The RootFinding[EvaluateAtRoot] command was introduced in Maple 2022.
For more information on Maple 2022 changes, see Updates in Maple 2022.
See Also
Isolate
RefineRoot
Download Help Document