{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 "" -1 256 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 258 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 259 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 260 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 262 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 263 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 264 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 265 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 266 "Helvetica" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 267 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 268 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 269 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 270 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 271 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 272 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 273 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 274 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 275 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 276 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 277 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 278 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 279 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 280 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 281 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 282 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 283 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 284 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 285 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 286 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 287 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 288 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 289 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 290 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 291 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 292 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 293 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 294 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 295 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 296 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 297 "Helvetica" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 298 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 299 "Helvetica" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 300 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 301 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 302 "Helvetica" 0 1 0 0 0 0 0 1 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 "Heading 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 256 1 {CSTYLE "" -1 -1 "Time s" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }3 1 0 0 8 2 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT 256 41 "MATH 605\nNewton method with a line-search" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "with(VectorCalculus):" }{TEXT -1 0 "" } {TEXT 257 0 "" }{TEXT 258 7 "Loading" }{TEXT 259 16 " VectorCalculus \+ " }{TEXT 260 7 "package" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "BasisFormat(false);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }{TEXT -1 0 "" }{TEXT 261 0 "" }{TEXT 262 8 "Loading " }{TEXT 263 7 "linalg " }{TEXT 264 7 "package" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 66 "f:=(x1-x2^2)^2+(x2-1)^2; plot3d(f, x1=-1..25, x2=0. .5,axes=boxed);" }{TEXT -1 0 "" }}}{EXCHG {PARA 256 "" 0 "" {TEXT -1 0 "" }{TEXT 265 10 "Procedure " }{TEXT 266 7 "newton1" }{TEXT 267 34 " for minimization with line search" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "newton1:=proc(f,xo,lv,N,eps,mu) #" }{TEXT -1 0 "" } {TEXT 268 0 "" }{TEXT 269 33 "Entry data for program: function " } {TEXT 278 2 " f" }{TEXT 279 19 ", an initial point " }{TEXT 280 2 "xo " }{TEXT 281 20 ", list of varaibles " }{TEXT 276 2 "lv" }{TEXT 277 25 ", a number of iterations " }{TEXT 270 2 "N," }{TEXT 271 20 " bound for gradient " }{TEXT 274 3 "eps" }{TEXT 275 11 ", constant " }{TEXT 272 2 "mu" }{TEXT 273 25 " for decrease condition\n " }{MPLTEXT 1 0 42 "local g,h,xk,pk,gk,hk,ak,fk, k,rk,gkk,w ;#" }{TEXT -1 0 "" }{TEXT 282 0 "" }{TEXT 283 28 "Local variables in procedure" }{MPLTEXT 1 0 73 "\nxk:=[evalf(xo[1]),evalf(xo[2])]; \ng:=Gradient(f,lv);h:=Hessian (f,lv); #" }{TEXT -1 0 "" }{TEXT 288 0 "" }{TEXT 289 33 "Formulas for \+ gradient and hessian" }{MPLTEXT 1 0 1 "\n" }{TEXT -1 0 "" }{TEXT 286 0 "" }{TEXT 287 0 "" }{TEXT -1 0 "" }{TEXT 284 0 "" }{TEXT 285 0 "" } {MPLTEXT 1 0 31 "gk:=subs(x1=xk[1],x2=xk[2],g):#" }{TEXT -1 0 "" } {TEXT 290 0 "" }{TEXT 291 38 "Evaluation of gradient at the point xk" }{MPLTEXT 1 0 67 "\ngkk:=vector([gk[1],gk[2]]):\nfk:=evalf(subs(x1=xk[ 1],x2=xk[2],f));#" }{TEXT -1 0 "" }{TEXT 292 0 "" }{TEXT 293 39 "Evalu ation of function at the point xk" }{TEXT -1 1 "\n" }{MPLTEXT 1 0 181 "\nfor k from 1 to N while evalf(norm(gkk,2)) >= evalf(eps)\n do g k:=subs(x1=xk[1],x2=xk[2],g):\ngkk:=vector([gk[1],gk[2]]): hk:=subs(x1 =xk[1],x2=xk[2],h);\npk:=linsolve(hk,-gk); ak:=1;#" }{TEXT -1 0 "" } {TEXT 294 0 "" }{TEXT 295 37 "Compting direction pk at the point xk" } {TEXT -1 1 "\n" }{MPLTEXT 1 0 314 "rk:=evalm(vector([xk[1],xk[2]])+ak* pk); \nwhile evalf(subs(x1=rk[1],x2=rk[2],f))>= fk+mu*ak*dotprod(gkk,p k) do\nak:=evalf(ak/2); \nrk:=evalm(vector([xk[1],xk[2]])+ak*pk); \nen d do;\nxk[1]:=rk[1];xk[2]:=rk[2];\nfk:=evalf(subs(x1=xk[1],x2=xk[2],f) );\nw[k]:=[xk,fk,evalf(norm(gkk,2))];\nprint(k,w[k],ak);\nend do;\nw; \nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "v:=newton1(f ,[13,31],[x1,x2],36,.1,0.5);#" }{TEXT -1 0 "" }{TEXT 301 0 "" }{TEXT 302 47 "Results of computations are kept in the array v" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "v[4];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 0 "" }{TEXT 296 55 "Computer Project #2: Usin g the Newton method procedure " }{TEXT 297 8 "newton1 " }{TEXT 298 156 "with a back-tracking line search, write a procedure which uses fo r a line seach a Wolfe condition (page 321) and a polynomial approxima tion to the function " }{TEXT 299 1 "F" }{TEXT 300 133 " (see Example \+ 10.6 (p.322), problem 10 (p.324) and classnotes).\nUse this procedure \+ to minimize functions from Problem 16 (d) (p.327)." }{TEXT -1 0 "" }}} }{MARK "12 0 3" 120 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }