{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Headi ng 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Out put" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT 256 53 "The following examples is Jan Verschelde 's examples:" }{TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT 257 183 " The purpose of this worksheet is to generate instances of multivariate polynomials with complex coefficients. Executing this worksheet gene rates the files exf1, exf2, exf3, and exf4." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 41 "The Jacobian for a Ste wart-Gough Platform" }}{PARA 0 "" 0 "" {TEXT -1 58 "We derive the Jaco bian for a platform, first symbolically." }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 32 "1. The Symbolic Jacobian Matrix." }}{EXCHG {PARA 0 "" 0 " " {TEXT -1 81 "A rotation is represented by a quaternion q, as an elem ent in projective 3-space:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "q := array(0..3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "Q := sum(q ['i']^2,'i'=0..3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "Rhat := Matri x(3,3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "R := Rhat/Q:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "Rhat[1,1] := q[0]^2 + q[1]^2 - q[2]^2 - q[3 ]^2:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "Rhat[2,2] := q[0]^2 - q[1]^ 2 + q[2]^2 - q[3]^2:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "Rhat[3,3] : = q[0]^2 - q[1]^2 - q[2]^2 + q[3]^2:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Rhat[1,2] := 2*(q[1]*q[2] + q[0]*q[3]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Rhat[2,1] := 2*(q[1]*q[2] - q[0]*q[3]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Rhat[1,3] := 2*(q[1]*q[3] - q[0]*q[2]):" } {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Rhat[3,1] := 2*(q[1 ]*q[3] + q[0]*q[2]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Rhat[2,3] : = 2*(q[2]*q[3] + q[0]*q[1]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Rha t[3,2] := 2*(q[2]*q[3] - q[0]*q[1]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "R;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,**$)&%\"qG6# \"\"!\"\"#\"\"\"F,*$)&F(6#F,F+F,F,*$)&F(6#F+F+F,F,*$)&F(6#\"\"$F+F,F,! \"\"-%'RTABLEG6%\")#\\>u#-%'MATRIXG6#7%7%,*F%F,F-F,F1F:F5F:,&*(F+F,F/F ,F3F,F,*(F+F,F'F,F7F,F,,&*(F+F,F/F,F7F,F,*(F+F,F'F,F3F,F:7%,&*(F+F,F/F ,F3F,F,*(F+F,F'F,F7F,F:,*F%F,F-F:F1F,F5F:,&*(F+F,F3F,F7F,F,*(F+F,F'F,F /F,F,7%,&*(F+F,F/F,F7F,F,*(F+F,F'F,F3F,F,,&*(F+F,F3F,F7F,F,*(F+F,F'F,F /F,F:,*F%F,F-F:F1F:F5F,%'MatrixGF," }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 38 "Next we define the position vector pt:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "pt := :" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 65 "and we define the locations at endplate and the basepl ate joints:" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i from 1 to 6 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " a a||i := :" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " bb||i := :" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "Now we are ready to define the Jacobian matrix:" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "jp := Matrix(6,6):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i from 1 to 6 do" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 90 " jpA||i := LinearAlgebra:-ScalarMultiply(pt-bb||i, Q)+LinearAlgebra:-Multiply(Rhat,aa||i);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for j from 1 to 3 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " \+ jp[i,j] := jpA||i[j];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 86 " jpB||i := LinearAlgebra:-Cro ssProduct(LinearAlgebra:-Multiply(Rhat,aa||i),pt-bb||i);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for j from 1 to 3 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " jp[i,j+3] := jpB||i[j];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 55 "We better do not ask here to \+ compute the determinant..." }{MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT 258 22 "2. Numerical Instances" }{TEXT 259 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 109 "We have three vectors to specify: the po sition vector and the locations at endplate and the baseplate joints. " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 143 " For the purposes of applyin g homotopy continuation to factor the polynomials, we generate random \+ complex number of modulus one, using 20 digit" }{MPLTEXT 1 0 0 "" }} {PARA 0 "" 0 "" {TEXT -1 9 "precision" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=20;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'Dig itsG\"#?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "randcomp := pro c()" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 " description `returns a ran dom complex number of modulus one`;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local angle;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "angle := stat s[random,uniform[0,2*Pi]](1):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " \+ evalc(cos(angle)+sin(angle)*I):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "e nd proc:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "randcomp();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#^$$!5M'[R>54a!y*)!#?$\"5[a!*H$*)yBRS%F&" }}} }{SECT 0 {PARA 5 "" 0 "" {TEXT -1 9 "Example 1" }}{PARA 0 "" 0 "" {TEXT -1 76 "In this first instance, we pick the locations and positio n vector at random:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "rando mize:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i from 1 to 3 \+ do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " p[i] := randcomp(): " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 20 "for i from 1 to 6 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for j from 1 to 3 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " \+ a||i[j] := randcomp();" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " b| |i[j] := randcomp();" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do:" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 37 "f1 := LinearAlgebra:-Determinant(jp):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "save f1, \"verschelde/svw_exf1\";" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 9 "Example 2" }}{PARA 0 "" 0 "" {TEXT -1 61 "Here we set the third element of all locations equal to z ero:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=20;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%'DigitsG\"#?" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 20 "for i from 1 to 6 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " a||i[3] := 0:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " b||i[3] := 0:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "f2 := LinearAlgebra:-Determi nant(jp):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "save f2,\"vers chelde/svw_exf2\";" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 9 "Example 3 " }}{PARA 0 "" 0 "" {TEXT -1 47 "In addition we set q[1] and q[2] equa l to zero:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=20;" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'DigitsG\"#?" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 21 "q[1] := 0: q[2] := 0:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "f3 := LinearAlgebra:-Determinant(jp):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "f3:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "ff:=f3:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "save ff, \"verschelde/svw_exf3\";" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 9 "Example 4" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 56 "Finally, \+ we let the point pt have arbitrary coordinates:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 11 "Digits:=20;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%'DigitsG\"#?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i fr om 1 to 3 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " p[i] := evaln(p[i ]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "pt := ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#ptG-%'RTABLEG6%\")W()HC-%'MATRIXG6#7%7#&%\"pG6#\"\" \"7#&F/6#\"\"#7#&F/6#\"\"$&%'VectorG6#%'columnG" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 18 "jp := Matrix(6,6);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "for i from 1 to 6 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 " jpA||i := LinearAlgebra:-ScalarMultiply(pt-bb||i,Q)+LinearAlge bra:-Multiply(Rhat,aa||i);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for j from 1 to 3 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " jp[i,j] := jpA||i[j];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 86 " jpB||i := LinearAlgebra:-CrossProduct(Lin earAlgebra:-Multiply(Rhat,aa||i),pt-bb||i);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for j from 1 to 3 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " jp[i,j+3] := jpB||i[j];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#jpG-%'RTABLEG6%\")wGwC-%'MATRIXG6#7(7(\"\"!F .F.F.F.F.F-F-F-F-F-%'MatrixG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "f4 :=LinearAlgebra:- Determinant(jp):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "save f4, \"verschelde/svw_exf4\";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}} }{MARK "1 2 7 8 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }{RTABLE_HANDLES 27419492 24298744 24762876 }{RTABLE M7R0 I5RTABLE_SAVE/27419492X,%)anythingG6"6"[gl!"%!!!#*"$"$,**$&%"qG6#""!""#"""*$&F* 6#F.F-F.*$&F*6#F-F-!""*$&F*6#""$F-F5,&*&F0F.F3F.F-*&F)F.F7F.!"#,&*&F0F.F7F.F-*& F)F.F3F.F-,&F;F-Fy#\$Hp!yHL*F?$!5/!4!GMFL."f$F?F0,&F*F0F1!""F0F0*(^$$"5/Qf">1!Qbf>!#>$"57h?J9[ 3'=+%F?F0F+F0F2F0F0,(*&F)F0,&F6F0^$$"5">'*GQ4/bco$F?$!5aK>O**)zFLF0 F+F0F2F0F0,(*&F)F0,&F6F0^$$"5]$=>"pM`n!e*F?$!5XUE!fx%\UlGF?F0F0F0*&^$$"5i,(zX#H "G7&QF?$!5tq.W$*3LlG#*F?F0FFF0F0*(^$$!56.Vnk"**3aB"FL$!5#Hn.*F?$!5/7R2QA&*G#H%F?F0F0F0*&^$$"59IxR+>\4!f&F?$ "5T=!*y1dDh"H)F?F0FFF0F0*(^$$!5LyDzs\r_u>FL$!5W/i'>=@j==$F?F0F+F0F2F0F0,(*&F)F0 ,&F6F0^$$"5RLKl!GIstX%F?$"5J!*)QXy^Q;&*)F?F0F0F0*&^$$"5gjI)H]t:ak&F?$!5/Hn9'=NY SD)F?F0FFF0F0*(^$$!5a7z;G*yZF"RF?$"5;L=$*e1ENh>FLF0F+F0F2F0F0,(*&F)F0,&F6F0^$$! 5_4[%y_B;K***F?$!5KDwQ%f+)y#o$Fw%4^gq$**o"F?$"5*Hx2b=Irh&)*F?F0F0F0*(^$$"5kb)peQh&fm=FL$"53!=g&oam1#=(F?F0F+ F0F2F0F0*&^$$"5=!pz&4.!pxz*F?$"5cIg:2C/$4+#F?F0FFF0F0,(*&F)F0,&F`tF0^$$!5/V]EqS `n)p*F?$!5()RlEa:&GjV#F?F0F0F0*(^$$"5X14x.BaAK7F?$!5*)G.q5U/?'*>FLF0F+F0F2F0F0* &^$$"5^(QxTRM\6#HF?$!5nRtyR3A$Qc*F?F0FFF0F0,(*&F)F0,&F`tF0^$$!5f_&QpL-;>y)F?$"5 *\i%3i0,4$y%F?F0F0F0*(^$$!5C.%f"\eiX-xF?$"5:u!)oyh1tX=FLF0F+F0F2F0F0*&^$$!5c::P Be\/xhF?$!5hk$)3*Q(H5kyF?F0FFF0F0,(*&F)F0,&F`tF0^$$"5O!z947Uq_T"F?$!5E/C7@**QM* *)*F?F0F0F0*(^$$!5.Y&z+Q)*=!=6FL$!5o.yNT6DKe;FLF0F+F0F2F0F0*&^$$!5l"*G'R'[djs)* F?$!5A-J)4fgJ4f"F?F0FFF0F0,(*&F)F0,&F`tF0^$$!5m_0JQU?[QEF?$"5r7DjN^@kX'*F?F0F0F 0*(^$$!5s7mf+ZJ3H6FL$"5"eMHs.F43l"FLF0F+F0F2F0F0*&^$$!5FcR3k%*QPc>F?$"5"e;fYH.j n!)*F?F0FFF0F0,(*&F)F0,&F`tF0^$$"5cex$)****pP'='F?$"5#Qni=.%RwcyF?F0F0F0*(^$$"5 K%>A)))**35)z(F?$!5