{VERSION 2 3 "SUN SPARC UNIX" "2.3" } {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 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 1 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 1 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 1 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 261 "" 1 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 1 10 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 270 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 274 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 278 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 282 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 286 "" 0 1 0 0 0 0 0 1 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 "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 "" 0 256 1 {CSTYLE "" -1 -1 "" 1 14 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 "" 0 257 1 {CSTYLE "" -1 -1 "" 1 14 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 "" 0 258 1 {CSTYLE "" -1 -1 "" 1 14 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 "" 0 259 1 {CSTYLE "" -1 -1 "" 1 14 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 "" 0 260 1 {CSTYLE "" -1 -1 "" 1 14 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 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT -1 26 "1. The Fibonacci number s " }{TEXT 277 1 "F" }{TEXT 256 1 "0" }{TEXT -1 2 ", " }{TEXT 278 1 "F " }{TEXT 257 1 "1" }{TEXT -1 22 ", ... are defined by: " }{TEXT 279 1 "F" }{TEXT 258 1 "0" }{TEXT 280 4 " = F" }{TEXT 259 1 "1" }{TEXT 281 4 " = 1" }{TEXT -1 6 ", and " }{TEXT 282 1 "F" }{TEXT 260 1 "n" } {TEXT 283 4 " = F" }{TEXT 261 3 "n-1" }{TEXT 284 4 " + F" }{TEXT 263 3 "n-2" }{TEXT -1 5 " for " }{TEXT 285 6 "n >= 2" }{TEXT -1 1 "." }} {PARA 257 "" 0 "" {TEXT -1 52 "Write a recursive Maple routine that ca lculates the " }{TEXT 286 1 "n" }{TEXT -1 21 "'th Fibonacci number." } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 132 "fibonacci := proc (n :: n onnegint)\n if n < 2 then\n RETURN (1);\n else\n RETURN (fibon acci (n-1) + fibonacci (n-2));\n fi;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "seq(fibonacci (i), i=1..10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6,\"\"\"\"\"#\"\"$\"\"&\"\")\"#8\"#@\"#M\"#b\"#*)" }}} {EXCHG {PARA 258 "" 0 "" {TEXT -1 46 "2. What does the following Maple procedure do?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "tolerance := 0.01;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*toleranceG$\"\"\"!\"# " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 288 "WhatAmI := proc (f, x, y)\n local x2, y2;\n global tolerance;\n\n x2 := evalf(x); y2 := e valf(y);\n if abs (x2-y2) < tolerance and abs(f(x2)-f(y2)) < toleranc e then\n RETURN ((f(x2)+f(y2))*(y2-x2)/2);\n else\n RETURN (Wha tAmI (f, x2, (x2+y2)/2) + WhatAmI(f, (x2+y2)/2, y2));\n fi;\nend:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "WhatAmI(cos, 0, 1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+_qm9%)!#5" }}}{EXCHG {PARA 259 "" 0 "" {TEXT -1 22 "Answer: it integrates " }{TEXT 274 1 "f" }{TEXT -1 6 " from " }{TEXT 275 1 "x" }{TEXT -1 4 " to " }{TEXT 276 1 "y" } {TEXT -1 102 ". Note that it automatically takes partition elements s mall enough that f is nearly constant on them." }}}{EXCHG {PARA 0 "" 0 "" {TEXT 264 114 "3. Write a recursive Maple procedure that given a \+ piece of text (eg: \"Hello\") returns the text reversed (\"olleH\")." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 282 "backwards := proc (text) \n local last_letter, all_except_last;\n\n if length (text) <= 1 the n RETURN (text) fi;\n\n last_letter := substring (text, length(text)) ;\n all_except_last := substring (text, 1..length(text)-1);\n RETURN (cat (last_letter, backwards (all_except_last)));\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "backwards (`Does it work? Of course !`);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%9!esruoc~fO~?krow~ti~seoDG" } }}{EXCHG {PARA 260 "" 0 "" {TEXT -1 59 "4. Write a recursive Maple pro cedure that given a function " }{TEXT 265 1 "f" }{TEXT -1 17 " and an \+ interval " }{TEXT 266 5 "[a,b]" }{TEXT -1 17 " finds a zero of " } {TEXT 267 1 "f" }{TEXT -1 4 " in " }{TEXT 268 5 "[a,b]" }{TEXT -1 22 " \n(you may assume that " }{TEXT 269 4 "f(a)" }{TEXT -1 5 " and " } {TEXT 270 4 "f(b)" }{TEXT -1 134 " have opposite signs) by dividing th e interval into halves, then quarters etc,\nuntil a zero is found to s ome tolerance. (An interval " }{TEXT 271 5 "[c,d]" }{TEXT -1 24 " mus t contain a zero if " }{TEXT 272 4 "f(c)" }{TEXT -1 5 " and " }{TEXT 273 4 "f(d)" }{TEXT -1 37 " have opposite\nsigns - exploit this)." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "tolerance := 0.001;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%*toleranceG$\"\"\"!\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 414 "zero := proc (f, aa::realcons, bb: :realcons)\n local a, b, midpoint;\n global tolerance;\n\n a := eva lf(aa); b := evalf(bb);\n if abs(b - a) < tolerance then\n RETURN \+ ((a+b)/2);\n fi;\n\n midpoint := (a+b)/2;\n if f(midpoint) * f(a) < = 0 then\n RETURN (zero (f, a, midpoint));\n elif f(midpoint) * f( b) <= 0 then\n RETURN (zero (f, midpoint, b));\n else ERROR (`Must have opposite signs at endpoints`) fi;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "zero (cos, 1, 2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+#y+3d\"!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "cos (\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$!+.^?bW!#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "16 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }