{VERSION 3 0 "SUN SPARC SOLARIS" "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 } {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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "Error" 7 8 1 {CSTYLE "" -1 -1 "" 0 1 255 0 255 1 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Diagnostic" 7 9 1 {CSTYLE "" -1 -1 "" 0 1 64 128 64 1 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 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 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "s:=proc(x,y);\n a:= x+y;\n RETURN(a);\nend;" }}{PARA 7 "" 1 "" {TEXT -1 41 "Warning, `a` \+ is implicitly declared local" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"sG R6$%\"xG%\"yG6#%\"aG6\"F+C$>8$,&9$\"\"\"9%F1-%'RETURNG6#F.F+F+F+" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "s(1,2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "a;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%\"aG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "s:=proc(x,y)\n local a;\n a:=x+y;\n RETURN(a);\nen d;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"sGR6$%\"xG%\"yG6#%\"aG6\"F+C $>8$,&9$\"\"\"9%F1-%'RETURNG6#F.F+F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "s2:=proc(x,y,z,t)\n local a,b,c;\n a:=x+y;\n b:=a+ z;\n c:=b+t;\n RETURN(c);\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#> %#s2GR6&%\"xG%\"yG%\"zG%\"tG6%%\"aG%\"bG%\"cG6\"F/C&>8$,&9$\"\"\"9%F5> 8%,&F2F59&F5>8&,&F8F59'F5-%'RETURNG6#F " 0 "" {MPLTEXT 1 0 13 "s2(2,5,-1,2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #\"\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "a;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%\"aG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "s2:=proc(x,y,z,t)\n global a,b,c;\n a:=x+y;\n b:=a+z;\n c:=b+t ;\n RETURN(c);\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#s2GR6&%\"x G%\"yG%\"zG%\"tG6\"F+F+C&>%\"aG,&9$\"\"\"9%F1>%\"bG,&F.F19&F1>%\"cG,&F 4F19'F1-%'RETURNG6#F8F+6%F.F4F8F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "s2(2,5,-1,2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\" )" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "a;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "b;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "c;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\")" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "s3:=proc(x,y,z,t)\n global \+ a,b,c;\n a:=s(x,y);\n b:=s(a,z);\n c:=s(b,t);\n RETURN(c);\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#s3GR6&%\"xG%\"yG%\"zG%\"tG6\"F+F+ C&>%\"aG-%\"sG6$9$9%>%\"bG-F06$F.9&>%\"cG-F06$F59'-%'RETURNG6#F:F+6%F. F5F:F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "s3(2,5,-1,2);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "a;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "b;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "c;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "myproc:=proc(a);\n b:=3;\n r:=a*b;\n RETURN(r);\ne nd;" }}{PARA 7 "" 1 "" {TEXT -1 41 "Warning, `b` is implicitly declare d local" }}{PARA 7 "" 1 "" {TEXT -1 41 "Warning, `r` is implicitly dec lared local" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'myprocGR6#%\"aG6$%\" bG%\"rG6\"F+C%>8$\"\"$>8%*&9$\"\"\"F.F4-%'RETURNG6#F1F+F+F+" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "myproc(4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "m yproc2:=proc(a);\n r:=a*b;\n b:=3;\n RETURN(r);\nend;" }}{PARA 7 " " 1 "" {TEXT -1 41 "Warning, `r` is implicitly declared local" }} {PARA 7 "" 1 "" {TEXT -1 41 "Warning, `b` is implicitly declared local " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(myproc2GR6#%\"aG6$%\"rG%\"bG6\" F+C%>8$*&9$\"\"\"8%F1>F2\"\"$-%'RETURNG6#F.F+F+F+" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 11 "myproc2(4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$%\"bG\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "b:='b';" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bGF$" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 7 "r:=4*b;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG,$% \"bG\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "b:=3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "r;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#7" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 167 "The commands above are examples of how t o use local and global variables and how to deal .\n\nWe now continue \+ our quest for a procedure that finds the min of a function\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 245 "gradstep:=proc(f,pt,epsilon )\n local x1,y1,gradx,grady,x2,y2;\n x1:=pt[1];\n y1:=pt[2];\n gra dx:=eval(diff(f(x,y),x),\{x=x1,y=y1\});\n grady:=eval(diff(f(x,y),y), \{x=x1,y=y1\});\n x2:=x1-epsilon*gradx;\n y2:=y1-epsilon*grady;\n R ETURN([x2,y2]);\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)gradstepGR 6%%\"fG%#ptG%(epsilonG6(%#x1G%#y1G%&gradxG%&gradyG%#x2G%#y2G6\"F1C)>8$ &9%6#\"\"\">8%&F66#\"\"#>8&-%%evalG6$-%%diffG6$-9$6$%\"xG%\"yGFI<$/FIF 4/FJF:>8'-FA6$-FD6$FFFJFK>8(,&F4F8*&9&F8F?F8!\"\">8),&F:F8*&FX\"\"\"FO F8FY-%'RETURNG6#7$FUFenF1F1F1" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 261 "findmin:=proc(f,guess,epsilon)\n local npt,nv,opt,ov,i;\n npt :=guess;\n nv:=f(npt[1],npt[2]);\n ov:=nv+1;\n for i from 1 to 200 \+ while (nv%(findminGR6%%\"fG%&guessG%(epsil onG6'%$nptG%#nvG%$optG%#ovG%\"iG6\"F0C'>8$9%>8%-9$6$&F36#\"\"\"&F36#\" \"#>8',&F6F8&F3>FAF6>F3-%)gradstepG6%F8FI9&> F6F7-%'RETURNG6%FIFAFDF0F0F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 287 "gradstep2:=proc(f,pt,epsilon)\n local x1,y1,gradx,grady,x2,y2, n;\n x1:=pt[1];\n y1:=pt[2];\n gradx:=eval(diff(f(x,y),x),\{x=x1,y= y1\});\n grady:=eval(diff(f(x,y),y),\{x=x1,y=y1\});\n n:=evalf(sqrt( gradx^2+grady^2));\n x2:=x1-epsilon*gradx/n;\n y2:=y1-epsilon*grady/ n;\n RETURN([x2,y2]);\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%*gra dstep2GR6%%\"fG%#ptG%(epsilonG6\"F*F*C*>%#x1G&9%6#\"\"\">%#y1G&F/6#\" \"#>%&gradxG-%%evalG6$-%%diffG6$-9$6$%\"xG%\"yGFB<$/FBF-/FCF3>%&gradyG -F:6$-F=6$F?FCFD>%\"nG-%&evalfG6#-%%sqrtG6#,&*$)F8F6\"\"\"F1*$)FHF6FXF 1>%#x2G,&F-F1*&*&9&F1F8F1FXFN!\"\"!\"\">%#y2G,&F3F1*&*&FjnFXFHF1FXFNF[ oF\\o-%'RETURNG6#7$FfnF^oF*6)F-F3F8FHFfnF^oFNF*" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 267 "findmin2:=proc(f,guess,epsilon)\n local npt, nv,opt,ov,i;\n npt:=guess;\n nv:=f(npt[1],npt[2]);\n ov:=nv+1;\n f or i from 1 to 10000 while (nv%)findmin 2GR6%%\"fG%&guessG%(epsilonG6'%$nptG%#nvG%$optG%#ovG%\"iG6\"F0C'>8$9%> 8%-9$6$&F36#\"\"\"&F36#\"\"#>8',&F6F8&F3>F AF6>F3-%*gradstep2G6%F8FI9&>F6F7-%'RETURNG6%FIFA,&FDF " 0 "" {MPLTEXT 1 0 18 "f:=(x,y)->x^2+y^2;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fGR6$%\"xG%\"yG6\"6$%)operatorG%&a rrowGF),&*$)9$\"\"#\"\"\"\"\"\"*$)9%F1F2F3F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "findmin2(f,[1,1],.1);" }}{PARA 8 "" 1 "" {TEXT -1 44 "Error, (in findmin2) cannot evaluate boolean" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "gradx;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&gradxG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "trace(fin dmin2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%)findmin2G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "findmin2(f,[1,1],.1);" }}{PARA 9 " " 1 "" {TEXT -1 41 "\{--> enter findmin2, args = f, [1, 1], .1" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$nptG7$\"\"\"F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#nvG\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#ovG\" \"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$optG7$\"\"\"F&" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%#ovG\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %$nptG7$,&\"\"\"F'*$-%%sqrtG6#\"\"#\"\"\"$!+++++]!#6F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#nvG,$*$),&\"\"\"F)*$-%%sqrtG6#\"\"#\"\"\"$!++++ +]!#6F.F/F." }}{PARA 9 "" 1 "" {TEXT -1 67 "<-- ERROR in findmin2 (now at top level) = cannot evaluate boolean\}" }}{PARA 8 "" 1 "" {TEXT -1 44 "Error, (in findmin2) cannot evaluate boolean" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "findmin2(f,[1,1],.1);" }}{PARA 8 "" 1 "" {TEXT -1 71 "Error, (in gradstep2) attempting to assign to `norm` whic h is protected" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "findmin2( f,[1,1],.1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%7$$\"+b1005!#6F$$\"+QO D??!#8\"#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "findmin2(f,[2 ,1],1e-3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%7$$\"*V@-5'!#8$\"*H5,0$F &$\"+Gue^Y!#=\"%PA" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {MARK "28 0 0" 37 }{VIEWOPTS 1 1 0 2 1 1805 }