{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 256 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 1 18 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 275 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 8 2 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 3" 4 5 1 {CSTYLE "" -1 -1 "" 1 12 0 0 0 0 1 0 0 0 0 0 0 0 0 }0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } 1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Plot" 0 13 1 {CSTYLE " " -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 3 "" 0 "" {TEXT 256 75 "Convex Hull, Lucas Theore m, Aziz's Theorem and the Sendov-Ilyeff Conjecture" }}{PARA 4 "" 0 "" {TEXT 257 16 "Bent E. Petersen" }}{PARA 0 "" 0 "" {TEXT 260 22 "Mathem atics Department" }}{PARA 0 "" 0 "" {TEXT 261 23 "Oregon State Univers ity" }}{PARA 0 "" 0 "" {TEXT 262 17 "Corvallis, Oregon" }}{PARA 4 "" 0 "" {TEXT 258 17 "February 29, 2000" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT 259 12 "Introduction" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 625 "In this worksheet we produce s ome code to compute and plot the convex hull of a finite set of points in the plane. We then generate some random polynomials and use our co nvex hull routine to illustrate Lucas theorem - for any complex polyno mial P the roots of the derivative are contained in the convex hull of the roots of P. The numerical experiments illustrate that there is co nsiderable additional structure in the distribution of the roots of th e derivative of P. We mention two additional pieces of information, A ziz's theorem and the as yet unproved (except in special cases and lo w degree) Sendov-Ilyeff conjecture." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "restart; with(plots):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT -1 0 "" } {TEXT 256 20 "Some List Procedures" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 299 "Since roots often come with multipliciti es we will use lists as our basic data structure for points in the pla ne rather than sets. Lists are also more convenient when it comes to d escribing the convex hull of a finite set of points, since in that cas e we need the extreme points in a definite order." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 76 "Comparison of lists in Ma ple seems to proceed without evaluating the entries" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "evalb([3. 0,2]=[3,2]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "evalb([3,2]=[3,2]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 191 "T here is probably some way to fix this problem, but we may just as well write our own comparison routine. We only need to compare numeric lis ts with two entries, that is, points in the plane." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "issame:=(a, b)->is(a[1]=b[1]) and is(a[2]=b[2]);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%'issameGR6$%\"aG%\"bG6\"6$%)operatorG%&arrowGF)3-%#isG6#/&9$6#\"\" \"&9%F4-F/6#/&F36#\"\"#&F7F " 0 "" {MPLTEXT 1 0 22 "issa me([3.0,2],[3,2]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "issame([3,2],[3,2]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 293 "Sometimes it is useful t o be able to remove all copies of a point from a list. Maple has a bui lt in procedure, remove(), for removing all list entries satisfying a Boolean condition. Our list, pts, will be a list of lists, points, an d we want to remove all occurences of a point, pt, from it." }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 " rempt:=proc(pt,pts)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " local z,is pt;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " ispt:=z->issame(pt,z);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 " remove(ispt,pts);" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 37 "Let's test it with a short test list:" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "test01:=[[0,1],[2,3],[2.0,3],[-1,2],[2,3.0],[2.0,3.00],[1,0]];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'test01G7)7$\"\"!\"\"\"7$\"\"#\"\" $7$$\"#?!\"\"F+7$F/F*7$F*$\"#IF/7$F-$\"$+$!\"#7$F(F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "rempt([2,3],test01);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%7$\"\"!\"\"\"7$!\"\"\"\"#7$F&F%" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 174 "Roots of polynomi als will be found as lists of complex numbers. Thus we need a procedur e to convert these lists to lists of points in the plane. Here's one t hat does the job." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 19 "makereal:=proc(pts)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "local rpts, z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " rpts:=[];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " for z in pts do rp ts:=[op(rpts),[Re(z),Im(z)]]; od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " rpts;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 311 "The procedure we use here for pushing an element onto a list is very useful. In the co de above rpts is a list of points in the plane. The function call op(r pts) returns the entries of the list. We adjoin one entry, and then fo rm a new list by enclosing the entries in square brackets. Let's test \+ this procedure:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 32 "test02:=[-I+1,2+3*I,-3-2*I,I,2];" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%'test02G7',&\"\"\"F'%\"IG!\"\",&\"\"#F'F(\"\"$ ,&!\"$F'F(!\"#F(F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "maker eal(test02);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7'7$\"\"\"!\"\"7$\"\"# \"\"$7$!\"$!\"#7$\"\"!F%7$F(F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 240 "The routine cprod() computes the thi rd component of the cross-product of two plane vectors viewed as vecto rs in space. If cprod(a,b) > 0 then b lies counterclockwise of a (with the usual conventions concerning the orientation of the plane)." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "cprod:=(a,b)-> a[1]*b[2]-a[2]*b[1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&cprodGR6$%\"aG%\"bG6\"6$%)operatorG%&arrowGF),&*&&9$ 6#\"\"\"F2&9%6#\"\"#F2F2*&&F0F5F2&F4F1F2!\"\"F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT 263 25 "Finding One Ex treme Point" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 373 "Given a list of plane points pts and a list [a,b] the proced ure farout(pts, [a,b]) finds the point in pts where ax+by takes its m aximum value. In case there are several maximum points the one furthes t in the direction of [b,-a] along the line ax+by=c is returned. This point is guaranteed to be an extreme point of the convex hull of the \+ set of points in the list pts. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "farout:=proc(pts,vec)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "local ovec, c, pt, ctemp, fout, prj , prjtemp;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "if nops(pts)=0 then R ETURN(FAIL); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "if nops(pts)=1 \+ then RETURN(pts[1]); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "if vec[ 1]=0 and vec[2]=0 then return(FAIL); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " ovec:=[vec[2],-vec[1]];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " c:=pts[1,1]*vec[1]+pts[1,2]*vec[2]; fout:=pts[1];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 " for pt in pts do" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 36 " ctemp:=pt[1]*vec[1]+pt[2]*vec[2]; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " if ctemp > c then fout:=pt; " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " c:=ctemp; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " elif ctemp = c then " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " # compute projections along line" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 " prj:=ovec[1]*fout[1]+ovec[2]*fout[2];" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 " prjtemp:=ovec[1]*pt[1]+ovec[2]* pt[2];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " if prjtemp > prj then fout:=pt; fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " fi; od;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "fout;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 109 "Let's test this routine with the direction vector [0,- 1]. We should obtain the leftmost of the lowest points." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 231 "test0 3:=[[2,1],[-1,-1],[-1,-2],[2,1.0],[2,-2],[-1,3],[1,-3],[2,-3],[-1,-3], [1,2],[1.0,2],[2,3],[-1,2],[3,2],[2,4],[3,1],[2.0,1.0],[-2,2],[3,3],[- 3,4],[0,3],[0,3.0],[2,-1],[2,0],[3,-1],[3,4],[2,-1],[2.0,1],[1.0,3.0], [1.0,3],[-4,4]];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'test03G7A7$\"\" #\"\"\"7$!\"\"F*7$F*!\"#7$F'$\"#5F*7$F'F,7$F*\"\"$7$F(!\"$7$F'F47$F*F4 7$F(F'7$F.F'7$F'F27$F*F'7$F2F'7$F'\"\"%7$F2F(7$$\"#?F*F.7$F,F'7$F2F27$ F4F=7$\"\"!F27$FF$\"#IF*7$F'F*7$F'FF7$F2F*7$F2F=FJ7$F@F(7$F.FH7$F.F27$ !\"%F=" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "ex1:=farout(test0 3,[0,-1]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$ex1G7$!\"\"!\"$" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 95 "On the other hand, using the vector [0,1] should result in the rightmost of the highest points." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "ex2:=farout(test03,[0,1]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$ex2G7$\"\"$\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "view1:=plot(test03,style=point,symbol=cir cle,color=blue,thickness=3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "view2:=plot([ex1,ex2],style=point,symbol=cross,color=red,thickne ss=3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "display(\{view1,v iew2\});" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'C URVESG6'7A7$$\"\"#\"\"!$\"\"\"F*7$$!\"\"F*F.7$F.$!\"#F*F'7$F(F17$F.$\" \"$F*7$F+$!\"$F*7$F(F87$F.F87$F+F(F<7$F(F57$F.F(7$F5F(7$F($\"\"%F*7$F5 F+F'7$F1F(7$F5F57$F8FA7$F*F5FG7$F(F.7$F(F*7$F5F.7$F5FAFHF'7$F+F5FL7$$! \"%F*FA-%'COLOURG6&%$RGBGF*F*$\"*++++\"!\")-%&STYLEG6#%&POINTG-%'SYMBO LG6#%'CIRCLEG-%*THICKNESSG6#F6-F$6'7$F;FK-FQ6&FSFTF*F*FW-Ffn6#%&CROSSG Fin-%+AXESLABELSG6$%!GFgo-%%VIEWG6$%(DEFAULTGF[p" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 77 "It's pretty clear that our routine is picking out extreme points as expected." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT 264 15 "The Convex Hull" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 398 "There are a number of \+ algorithms for finding the convex hull of a finite set of points. The \+ basic idea is to obtain the extreme points in order, for some orientat ion of the boundary. Joining successive points with line segments (and also the last and first points) we obtain the boundary of the convex \+ hull. Because we need the extreme points in order we work with lists r ather than sets of points." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 22 "In one algorithm, the " }{TEXT 266 11 "Graham sca n" }{TEXT -1 832 ". One first finds one extreme point ep and a support ing line L through the point ep. The leftmost of the lowest points cou ld be used for example, with the supporting line a parallel to the x-a xis. We direct L so that all the points lie to the left of L. The rem aining points p are then sorted according to the angle the ray through ep and p makes with L. Points with the same angle are sorted accordin g to the distance from ep. Now we draw segments between successive poi nts, starting at p, as long as each new segment turns to the left. At \+ any point where a right turn is required, we remove the current point \+ from our list, go back to the previous point, and try again. We may ha ve to backtrack several times. Eventually only the extreme points rema in. This algorithm is implemented in J. Orwant, J. Hietaniemi and J. M acdonald, " }{TEXT 265 30 "Mastering Algorithms with Perl" }{TEXT -1 17 ", O'Reilly 1999. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 25 "Another algorithm is the " }{TEXT 267 11 "Jarvis walk " }{TEXT -1 614 ". In this algorithm we first locate one extreme point ep. We then choose another point p. Now we step through all the point s in the list. If we find one q such that the segment from ep to q is clockwise from the segment from ep to p then we replace p by q. In ca se the segments are collinear we replace p by the q if q is further fr om ep. When we can find no more points the final value of p is an extr eme point. We now replace ep by this point and repeat the process unti l we end up back at the original ep. Note the extreme points come out \+ in counterclockwise order. This algorithm is implemented in K. Loudon, " }{TEXT 268 27 "Mastering Algorithms with C" }{TEXT -1 16 ", O'Reill y 1999." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 410 "The Jarvis walk requires less computation at each step than the G raham scan, but we traverse the list of points several times. In the G raham scan we have a preliminary sort and the extra work of computing \+ angles whereas in the Jarvis walk a simple cross-product calculation g ives us the sense of the angles. It is hard to say which is best, but \+ for the few points that we deal with it probably does not matter." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 "H ere is our Maple implementation of the Jarvis walk." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "jarvis:=p roc(pts)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "local xpts,ep,xp,testpt s,q,qc,sn;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "if nops(pts) = 0 then RETURN([]); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "# Find an extre me point to start at" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "ep:=farout( pts,[1,0]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "# Remove all copies \+ of the extreme point" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "testpts:=re mpt(ep,pts);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "# If there are no o ther points we are done" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "if nops( testpts)=0 then RETURN([ep]); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "# Initialize the list of extreme points" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "xpts:=[];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "# Put \+ ep back - we need it to detect when to stop" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "testpts:=[op(testpts),ep];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "# Choose initial reference point" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 22 "q:=testpts[1]; xp:=ep;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "# Start walk - end it when we get back to ep" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "while not issame(ep,q) do xpts:=[op (xpts),xp];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for qc in testpts \+ do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 " if cprod(qc-xp,q-xp) > 0 \+ then q:=qc;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " elif cprod(qc-xp ,q-xp) = 0 then " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 " if (qc[1] -xp[1])^2 + (qc[2]-xp[2])^2 >" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " \+ (q[1]-xp[1])^2 + (q[2]-xp[2])^2 then q:=qc; fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " od; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "xp:=q;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "od; xpts;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 53 " Let's test the jarvis() procedure on the list test03." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "xp:=jarv is(test03);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#xpG7'7$\"\"$!\"\"7$F '\"\"%7$!\"%F*7$F(!\"$7$\"\"#F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "view01:=plot(test03,style=point,symbol=circle,color=blue,thick ness=3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "view02:=plot([o p(xp),xp[1]],color=red,thickness=3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "display(\{view01,view02\});" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'CURVESG6'7A7$$\"\"#\"\"!$\"\" \"F*7$$!\"\"F*F.7$F.$!\"#F*F'7$F(F17$F.$\"\"$F*7$F+$!\"$F*7$F(F87$F.F8 7$F+F(F<7$F(F57$F.F(7$F5F(7$F($\"\"%F*7$F5F+F'7$F1F(7$F5F57$F8FA7$F*F5 FG7$F(F.7$F(F*7$F5F.7$F5FAFHF'7$F+F5FL7$$!\"%F*FA-%'COLOURG6&%$RGBGF*F *$\"*++++\"!\")-%&STYLEG6#%&POINTG-%'SYMBOLG6#%'CIRCLEG-%*THICKNESSG6# F6-F$6%7(FJFKFMF;F:FJ-FQ6&FSFTF*F*Fin-%+AXESLABELSG6$%!GFdo-%%VIEWG6$% (DEFAULTGFho" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT 269 13 "L ucas Theorem" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 233 "Lucas theorem states that for a complex polynomial P, the root s of the derivative lie inside the convex hull of the roots of P. This theorem dates back at least to 1874. It is fairly easy to prove. A pr oof is given in Morris Marden, " }{TEXT 270 23 "Geometry of Polynomial s" }{TEXT -1 287 ", American Mathematical Society, 1949, 1966. This bo ok contains many results that refine the information given by Lucas th eorem in various circumstances. For example, Jensen's circles theorem, 1913, which has a similar proof, gives additional information in the \+ case of real polynomials." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 169 "Here is a procedure to plot the convex hull of th e roots of a polynomial and its first two derivatives. From Lucas' the orem we know that the convex hulls will be nested." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "lucas:=proc (p,z)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 " local N,a,q,qq,b,c,ax,bx ,cx,img1,img2,img3,img4,img5,img6;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 " N:=degree(p); if N < 3 then RETURN(FAIL); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " a:=makereal([fsolve(p,z,complex)]);" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 15 " q:=diff(p,z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " b:=makereal([fsolve(q,z,complex)]);" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 66 " img1:=plot(a,style=point,symbol=circle,color =blue,thickness=3): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " ax:=jarvi s(a);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 " img2:=plot([op(ax),ax[1] ],color=blue,thickness=3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 " img 3:=plot(b,style=point,symbol=circle,color=red,thickness=3): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " bx:=jarvis(b);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " img4:=plot([op(bx),bx[1]],color=red,thickness=3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " qq:=diff(q,z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 " c:=makereal([fsolve(qq,z,complex)]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 " img5:=plot(c,style=point,symbol=circle, color=brown,thickness=3): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " cx: =jarvis(c);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " img6:=plot([op(cx) ,cx[1]],color=brown,thickness=3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "display(\{img1,img2,img3,img4,img5,img6\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 17 "Let's try it out!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "p01:=4*z^9-6*z^8-5*z ^7+z^5+2*z^4-3*z^3+2*z^2+4*z+6;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$ p01G,4*$)%\"zG\"\"*\"\"\"\"\"%*$)F(\"\")F*!\"'*$)F(\"\"(F*!\"&*$)F(\" \"&F*\"\"\"*$)F(F+F*\"\"#*$)F(\"\"$F*!\"$*$)F(F:F*F:F(F+\"\"'F7" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "lucas(p01,z);" }}{PARA 13 " " 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6%7+7$$\"1+++iPA a?!#:\"\"!7$$\"1+++R3lHg!#;$\"1+++^dpayF/7$$!1+++?\"[Ll#F/$\"1+++yBjL* )F/7$$!1+++PTIljF/$\"1+++[S1KdF/7$$!1+++RyXf5F*F+7$F8$!1+++[S1KdF/7$F3 $!1+++yBjL*)F/7$F-$!1+++^dpayF/F'-%'COLOURG6&%$RGBGF+F+$\"*++++\"!\")- %*THICKNESSG6#\"\"$-F$6'7*7$$!1+++5nd8!)F/F+7$$!1+++!f(zoVF/F+7$$!1+++ `@BONF/$!1+++KM52oF/7$Fgn$\"1+++KM52oF/7$$\"1+++7s80PF/$!1+++$>)f#G&F/ 7$F_o$\"1+++$>)f#G&F/7$$\"1+++H))3!3(F/F+7$$\"1+++p3yH=F*F+-FI6&FKFLF+ F+-%&STYLEG6#%&POINTG-%'SYMBOLG6#%'CIRCLEGFO-F$6%7)FioFcoF[oFVFfnF^oFi oF\\pFO-F$6'7+F " 0 "" {MPLTEXT 1 0 63 "p02:=4*z^9-(6+5*I)*z^8-5*z^7+z^5+2*z^4-(3-2*I )*z^3+2*z^2+4*z+6;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$p02G,4*$)%\"z G\"\"*\"\"\"\"\"%*&,&!\"'\"\"\"%\"IG!\"&F/)F(\"\")F*F/*$)F(\"\"(F*F1*$ )F(\"\"&F*F/*$)F(F+F*\"\"#*&,&!\"$F/F0F " 0 "" {MPLTEXT 1 0 13 "lucas(p02,z);" } }{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6%7(7 $$\"1+++-%zr`\"!#:$\"1+++i1s$*z!#;7$$!1+++p>Za@F-$\"1+++8_bFfF-7$$!1,+ +5<)fU'F-$\"1+++&R;wL\"F-7$$!1+++*>-TH$F-$!1+++\"*GC0VF-7$$\"1+++cc*4J #F-$!1+++8+;\\MF-F'-%'COLOURG6&%$RGBG$\")#)eqk!\")$\"))eqk\"FHFI-%*THI CKNESSG6#\"\"$-F$6'7+7$$!1+++&*zP<5F*$\"1+++`1M>9F-7$$!1,++hfdelF-$!1+ ++%)))QMcF-7$$!1+++2i>)3'F-$\"1+++%H%o6dF-7$$!1+++W7wvCF-$!1+++pu56\") F-7$$!1+++/'o$)Q#F-$\"1+++voT?5F*7$$\"1+++6!f%=aF-$!1+++4`cF*$\"1+++*=?2.\"F*-FC6&FE\"\"!F\\q$\"*++++\"FH-%&STYLEG6#%&POINT G-%'SYMBOLG6#%'CIRCLEGFK-F$6'7)F3F8F.7$$\"1+++2T[X7F-$\"1+++5?HW8F-F=7 $$\"1+++e([Hh%F-$\"1+++j%3Wt)FdpF'FBF_qFcqFK-F$6%7)FepF`oFRFWF[oFeoFep FjpFK-F$6'7*7$$!1+++JvXRyF-$\"1+++OGBz=F-7$$!1+++jh?d%F-7$$\"1+++\\vDEq F-$!1+++a(3'3(*!#=7$$\"1+++j+ " 0 "" {MPLTEXT 1 0 29 "p03:=z^6+z^5+z^4+z^3+z^2+z+1 ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$p03G,0*$)%\"zG\"\"'\"\"\"\"\" \"*$)F(\"\"&F*F+*$)F(\"\"%F*F+*$)F(\"\"$F*F+*$)F(\"\"#F*F+F(F+F+F+" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "lucas(p03,z);" }}{PARA 13 " " 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6'7(7$$!1+++z')o 4!*!#;$!1+++\"RP)QVF*7$F($\"1+++\"RP)QVF*7$$!1+++S$4_A#F*$!1+++A\"z#\\ (*F*7$F1$\"1+++A\"z#\\(*F*7$$\"1+++>!)*[B'F*$!1+++D[J=yF*7$F9$\"1+++D[ J=yF*-%'COLOURG6&%$RGBG\"\"!FD$\"*++++\"!\")-%&STYLEG6#%&POINTG-%'SYMB OLG6#%'CIRCLEG-%*THICKNESSG6#\"\"$-F$6%7)F8F=F5F-F'F0F8F@FP-F$6'7'7$$! 1+++w/K.nF*FD7$$!1+++#*>&pv$F*$!1+++5;v,dF*7$Fhn$\"1+++5;v,dF*7$$\"1++ +kb%>%HF*$!1+++u4n$o'F*7$F`o$\"1+++u4n$o'F*-FA6&FCFEFDFDFHFLFP-F$6%7(F _oFdoF\\oFZFgnF_oFgoFP-F$6'7&7$$!1+++@_MnSF*$!1+++ct(\\d#F*7$F`p$\"1++ +ct(\\d#F*7$$\"1+++#))=,M(!#<$!1+++@!HJJ&F*7$Fhp$\"1+++@!HJJ&F*-FA6&FC $\")#)eqkFG$\"))eqk\"FGFdqFHFLFP-F$6%7'FgpF]qFdpF_pFgpF`qFP-%+AXESLABE LSG6$%!GF\\r-%%VIEWG6$%(DEFAULTGF`r" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 145 "These examples are probably showing much more regularity that you expected. Perhaps you think I selected them! Let's try some random polynomials." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 5 "" 0 "" {TEXT 271 36 "Random Polynomials and Lucas Theorem" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 296 "We will illustrate Lucas' theorem for polynomials with random roots in the un it disk. First here is a procedure for constructing a polynomial with \+ given roots, specified in polar coordinates. The parameter r is the \+ list of moduli (radia) and the parameter t is the list of arguments \+ (angles)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 22 "polarpoly:=proc(r,t,z)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " local k; if nops(r)<>nops(t) then RETURN(FAIL); fi; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 " product(z-evalf(r[k])*evalf(e xp(I*t[k])),k=1..nops(r));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 22 "Now some random moduli" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "ranmod:=proc(N)" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 12 " local a,k;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for k from 1 to N do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 " a[k]: =evalf(rand()/10^12);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " od;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " [seq(a[k],k=1..N)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 26 "and some random arguments." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "rana rg:=proc(N)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " local a,k;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for k from 1 to N do" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 35 " a[k]:=evalf(2*Pi*rand()/10^12);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " [seq(a[k],k=1..N)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end :" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 99 "Now we can define a function that returns random polynomials with \+ all their roots in the unit disk." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "ranpoly:=N->polarpoly(ranmod (N),ranarg(N),z);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(ranpolyGR6#%\" NG6\"6$%)operatorG%&arrowGF(-%*polarpolyG6%-%'ranmodG6#9$-%'ranargGF1% \"zGF(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 17 "Let's try it out." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "lucas(ranpoly(12),z);" }} {PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6%7'7$ $\"1+++w;y)p&!#;$!1+++h72#y#F*7$$\"1+++)f\\4-%F*$\"1+++$Qm)4ZF*7$$!1++ +'43'ybF*$\"1+++*=4bx\"F*7$$\"1+++!*zbT?F*$!1+++(3nK@%F*F'-%'COLOURG6& %$RGBG$\")#)eqk!\")$\"))eqk\"FBFC-%*THICKNESSG6#\"\"$-F$6'7.7$$!1+++0g SarF*$\"1+++aqwR@F*7$$!1+++E&)e+GF*$\"1+++jP$4L\"F*7$$!1+++py\\!)>!#<$ !1+++khS@DFY7$$\"1+++#pc&[7F*$!1+++'**px3%F*7$$\"1+++xMP_9F*$\"1+++\\+ Ea@F*7$$\"1+++L>v]@F*$!1+++.>#Q:&F*7$$\"1+++0bS>HF*$\"1+++%RyD\"=F*7$$ \"1+++j$[V6$F*$\"1*****fQ6L#yFY7$$\"1+++7u\\9XF*$\"1+++**elLfF*7$$\"1+ ++=#Rsf%F*$!1+++RQ-l6F*7$$\"1+++gK_fdF*$!1+++#4A$H=F*7$$\"1+++I!)4\\jF *$!1+++f.0eMF*-F=6&F?\"\"!Feq$\"*++++\"FB-%&STYLEG6#%&POINTG-%'SYMBOLG 6#%'CIRCLEGFE-F$6%7'F^qF_pFLF`oF^qFcqFE-F$6%7'7$$\"1+++1BCOgF*$!1+++1 \"p#4JF*7$$\"1+++TJsnUF*$\"1+++,&GHK&F*7$$!1*****4f'GqjF*$\"1+++d!H%f> F*7$$\"1+++9lQ@?F*$!1+++R4]eYF*Ffr-F=6&F?FfqFeqFeqFE-F$6'7-F`s7$$!1+++ *GM99#F*$\"1+++b=!)G6F*7$$\"1+++tbEghFY$\"1*****H(H*oQ'!#>7$$\"1+++;Z* G\"=F*$!1+++$=!yYKF*7$$\"1+++TOgn=F*$\"1+++\"3=9z\"F*Fes7$$\"1+++jX!3 \"HF*$\"1+++gAuT8F*7$$\"1+++-sd(z$F*$!1+++HpiS`FYF[s7$$\"1+++Bg\"[I&F* $!1+++#p7`k\"F*FfrFjsFhqF\\rFE-F$6'7,F27$$!1+++!)4b'[\"F*$\"1,++Y&)f![ *FY7$$\"1+++NKsS9F*$\"1+++a?RVFFYF77$$\"1+++ydm'>#F*$!1+++!R#3#Q#F*7$$ \"1+++s]D^AF*$\"1+++Z;xL9F*7$$\"1+++WW*H+$F*$\"1+++Tdf.:FYF-7$$\"1+++` #*=1ZF*$!1+++N0K39F*F'F " 0 "" {MPLTEXT 1 0 21 "lucas(ranpoly(10),z);" }} {PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6'7,7$ $!1+++]`a\"=(!#;$\"1+++Cl&Q?#F*7$$!1+++l_)==%F*$!1+++Y$Q5J&F*7$$!1+++P #[8=$F*$!1+++E%\\*pfF*7$$!1+++sAn[?F*$\"1+++r]VQ[F*7$$!1+++dF;:G!#<$!1 +++'3DtF'F*7$$\"1+++CUR`=F*$\"1+++<,i;@F*7$$\"1+++4OCf>F*$\"1+++-r'R&* *F?7$$\"1+++Ko:CFF*$\"1+++a-$R+\"F?7$$\"1,++.9X8dF*$\"1+++Ve4KiF*7$$\" 1+++&pBS\"zF*$!1+++v.yhTF?-%'COLOURG6&%$RGBG\"\"!Fin$\"*++++\"!\")-%&S TYLEG6#%&POINTG-%'SYMBOLG6#%'CIRCLEG-%*THICKNESSG6#\"\"$-F$6%7*FVFQF7F 'F-F2FnRF*7$$!1+++*)oFV7F*$!1+++#4VBS&F*7 $$!1+++tM)p6\"F*$!1+++`](eh$F*7$$\"1+++IZr.>F*$\"1+++u-hZ;F*7$$\"1+++& z3FT#F*$\"1+++))4OYZF?7$$\"1+++/_%R7&F*$\"1+++.v5JaF*7$$\"1+++nf*>&pF* $!1+++Ltl4AF?-Ffn6&FhnFjnFinFinF]oFaoFeo-F$6%7)FgrFbrFipF_pFdpF^qFgrF \\sFeo-F$6'7*7$$!1+++_\"QV*[F*$\"1+++MWKb:F*7$$!1+++B&**4+$F*$!1,++$\\ JE6&F*7$$!1+++4Iqf7F*$!1+++&>)3\"o%F*7$$!1+++-#QrP(F?$\"1+++OsUSIF*7$$ !1+++x\"G]L*!#=$!1+++Mc6M;F*7$$\"1+++xtV6@F*$\"1+++3.6S5F*7$$\"1+++gy) >`%F*$\"1+++#=J%=YF*7$$\"1+++R97ufF*$!1+++UCFh;F[u-Ffn6&Fhn$\")#)eqkF \\o$\"))eqk\"F\\oFavF]oFaoFeo-F$6%7)FhuFcuFctFdsFisF^tFhuF]vFeo-%+AXES LABELSG6$%!GFiv-%%VIEWG6$%(DEFAULTGF]w" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "lu cas(ranpoly(10),z);" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6'7,7$$!1+++Z:N4&*!#;$\"1+++7J3@GF*7$$!1+++HB &4G'F*$!1+++Ie/!)[F*7$$!1+++e(***\\fF*$!1+++R!\\Z0#F*7$$!1+++CD)=#HF*$ !1++++T2bFF*7$$!1+++gLE8;F*$\"1+++#Q$=$4)F*7$$\"1+++#*z`%R\"!#<$!1+++u )o/;\"F*7$$\"1+++PVA7F*$\"1+++3[#[d$F*7$$\"1+++h V\"Q>#F*$\"1+++F'3wt*FD7$$\"1+++zd9Y\\F*$!1+++Lm8KSF*-Ffn6&FhnFjnFinFi nF]oFaoFeo-F$6%7(FgrF]rFcqF_pFdpFgrF\\sFeo-F$6'7*7$$!1,++)oulU(F*$\"1+ ++v\"3Nt\"F*7$$!1*****RglcQ&F*$!1+++i`5;OF*7$$!1+++)H@eg$F*$!1+++f3p1> F*7$$!1+++#=Q+7\"F*$\"1+++k7'*oeF*7$$!1+++F%Gc*eFD$!1+++p`EZ6F*7$$\"1+ ++j7\"pV\"F*$\"1+++Stp-EFD7$$\"1+++\"[2Ip\"F*$\"1+++iOZ*p#F*7$$\"1+++( [Au;%F*$!1+++n5y@MF*-Ffn6&Fhn$\")#)eqkF\\o$\"))eqk\"F\\oF`vF]oFaoFeo-F $6%7(FguFbuFctFdsFisFguF\\vFeo-%+AXESLABELSG6$%!GFhv-%%VIEWG6$%(DEFAUL TGF\\w" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 199 "As you c an see the roots are distributed with no discernable pattern, but the \+ convex hulls tend to be very similar to each other. With smaller degre e we might expect less regularity. Let's try a few." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "lucas(ran poly(5),z);" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*- %'CURVESG6'7&7$$!1+++x,$Q?$!#;$\"1+++9Y7JpF*7$$\"1+++[jFaKF*$\"1+++%G# f/KF*7$$\"1+++eiBTOF*$!1+++E9nt8F*7$$\"1+++2>#yT(F*$\"1*****pYo)H$*!#> -%'COLOURG6&%$RGBG$\"*++++\"!\")\"\"!FD-%&STYLEG6#%&POINTG-%'SYMBOLG6# %'CIRCLEG-%*THICKNESSG6#\"\"$-F$6%7'7$$\"1+++GGo>\"*F*$!1+++<0\"3-%!#< 7$$\"1+++\"R!z#)GF*$\"1+++A1I'R%F*7$$!1+++S&4-@&F*$\"1+++^*GyJ)F*7$$\" 1+++#)=k4LF*$!1+++vgc6IF*FT-F>6&F@FDFDFAFM-F$6'7%7$$!1+++gl\"*=7F*$\"1 +++p6d$[&F*7$$\"1+++CFINRF*$\"1+++`QLH5F*7$$\"1+++'4Udh&F*$\"1+++%H[Ec '!#=-F>6&F@$\")#)eqkFC$\"))eqk\"FCF\\qFEFIFM-F$6%7&FbpFhoF]pFbpFhpFM-F $6%7'F7F-F'F2F7F=FM-F$6'7'FinFZF^o7$$\"1+++h[(\\y$F*$\"1+++Fntj;F*FTFc oFEFIFM-%+AXESLABELSG6$%!GF_r-%%VIEWG6$%(DEFAULTGFcr" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "lucas(ranpoly(4),z);" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6%7%7$$!1+++!G)*[P(!#<$!1+++1RrkA !#;7$$!1+++0?Av:F-$\"1+++AgK99F-F'-%'COLOURG6&%$RGBG$\")#)eqk!\")$\")) eqk\"F9F:-%*THICKNESSG6#\"\"$-F$6'7&7$$!1+++Sje\\OF-$\"1+++KRSKWF-7$$! 1+++n^.&Q\"F-$!1+++/i'zN&F-7$$!1+++(*fEyiF*$!1+++UOXp8F-7$$\"1+++QW-P5 F-$\"1+++d9SUfF*-F46&F6\"\"!FY$\"*++++\"F9-%&STYLEG6#%&POINTG-%'SYMBOL G6#%'CIRCLEGF<-F$6%7&FRFCFHFRFWF<-F$6'7%7$$!1+++)Hg/e#F-$\"1+++d`.*)GF -7$$!1+++Fkl96F-$!1+++(ebY\"RF-7$$\"1+++B(*[gAF*$!1+++kfh*\\#F*-F46&F6 FZFYFYFfnFjnF<-F$6%7&F^pFdoFioF^pFcpF<-F$6'7$F.F'F3FfnFjnF<-%+AXESLABE LSG6$%!GF^q-%%VIEWG6$%(DEFAULTGFbq" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "lu cas(ranpoly(11),z);" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6*-%'CURVESG6'7-7$$!1+++#y\\^b)!#;$!1+++l'*=`FF*7$$!1+++B ./uoF*$!1+++WA_*f'F*7$$!1+++^La`JF*$!1+++2NUeoF*7$$\"1+++&eGqG)!#<$!1+ ++g5m`5F*7$$\"1+++6U6h5F*$\"1+++LLOKjF*7$$\"1+++)fg+P\"F*$!1+++>0@^KF: 7$$\"1+++m)GuK#F*$\"1+++(QZJ/\"F*7$$\"1+++(pdpW#F*$!1+++\"f3FZ#F*7$$\" 1+++?Jq+OF*$!1+++iIt:CF*7$$\"1+++Ach#z$F*$\"1+++#p#3ubF*7$$\"1+++)=)o# >%F*$\"1+++*om&[CF*-%'COLOURG6&%$RGBG\"\"!F^o$\"*++++\"!\")-%&STYLEG6# %&POINTG-%'SYMBOLG6#%'CIRCLEG-%*THICKNESSG6#\"\"$-F$6%7*FenFVF=F'F-F2F QFenFjnFjo-F$6'7,7$$!1+++KT\")4uF*$!1+++p;T_HF*7$$!1+++D*RV(fF*$!1,++$ oS'yfF*7$$!1+++$>46p#F*$!1+++yEe!o&F*7$$\"1+++Fx976F*$!1,++)R(>%o(F:7$ $\"1+++gJ;.9F*$\"1+++tGx/cF*7$$\"1+++(\\i)G?F*$\"1+++#fBfe%F:7$$\"1+++ u(pm<#F*$!1+++Xn)Rv\"F*7$$\"1+++p.P'=$F*$!1+++)R-#yAF*7$$\"1+++xJnhMF* $\"1+++Z$z&o[F*7$$\"1+++UEf\\OF*$\"1+++7ZvV?F*-F[o6&F]oF_oF^oF^oFboFfo Fjo-F$6%7*FasF\\sFhqFdpFipF^qFgrFasFfsFjo-F$6'7+7$$!1+++vp]DjF*$!1+++A !z,A$F*7$$!1+++qKVT^F*$!1+++D0gL`F*7$$!1+++(p@%)4#F*$!1+++,wdbWF*7$$\" 1+++Y1%Hw\"F*$!1+++5sEV@F:7$$\"1+++#)Q'ox\"F*$\"1+++!\\%*o$\\F*7$$\"1+ ++yM34=F*$!1+++g\\mY6F*7$$\"1+++;7$)oGF*$!1+++E\"o&R?F*7$$\"1+++xII*3$ F*$\"1+++c$>w7%F*7$$\"1+++HTB2JF*$\"1+++`H^_:F*-F[o6&F]o$\")#)eqkFao$ \"))eqk\"FaoF_wFboFfoFjo-F$6%7*FfvFavFbuF^tFctFhtF\\vFfvF[wFjo-%+AXESL ABELSG6$%!GFgw-%%VIEWG6$%(DEFAULTGF[x" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 303 "The degree of similarity between two com pact sets in a metric space can be measured by the Hausdorff metric. H ere we see that differentiating does not change the convex hull of the roots by very much. The two convex hulls are close in the sense of th e Hausdorff metric, but what about the sets of roots?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT 272 47 "Aziz's Theorem and th e Sendov-Ilyeff Conjecture" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 13 " Abdul Aziz, " }{TEXT 273 47 "On the zeros of a p olynomial and its derivative" }{TEXT -1 381 ", Bull. Austral. Math. So c., 31 (1985), 245-255, shows, among other things, if a polynomial P( z) has all its roots in a disk of radius r, then for each root of th e derivative P'(z) there is a root of P(z) within distance r. Thus \+ if we denote by Z(P) the roots of P(z) and by B(r) the set of comp lex numbers of modulus at most r then Z(P') is contained in Z(P) + B(r)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 95 "Note each compact subset of the plane is contained in a unique smalle st closed disk called the " }{TEXT 275 10 "circumdisk" }{TEXT -1 39 ". The radius of the disk is called the " }{TEXT 276 12 "circumradius" } {TEXT -1 94 ". This seems obvious until you start thinking about it! S ee I.M. Yaglom and V.G. Boltyanskii, " }{TEXT 274 14 "Convex Figures" }{TEXT -1 34 ", Holt, Rinehard and Winston. Thus" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 73 "Z(P') is contained in \+ Z(P) + B(r) where r is the circumradius of Z(P)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 478 "If we could also show th at Z(P) is contained in Z(P') + B(r) where r is the circumradius o f Z(P) then we would have that the Hausdorff distance from Z(P) t o Z(P') is bounded by the circumradius r of Z(P). But, except in \+ special cases, this proposed fact is not known to be true. It is the c onjecture of Sendov as communicated by Ilyeff. Note our calculations a bove do suggest very strongly that at least the extreme points of Z(P ) are contained in Z(P') + B(r)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 98 "The proof of the Sendov-Ilyeff conjecture for degree 6 may be found in Emmanuel S. Katsoprinakis, " }{TEXT 277 31 "On the Sendov-Ilyeff Conjecture" }{TEXT -1 144 ", Bull. London Mat h. Soc. 24 (1992), 449-455. This paper also contains enough citations \+ to get you started on what's known about the conjecture." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 9 "Have fun!" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "66 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 }