{VERSION 6 0 "IBM INTEL NT" "6.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 2 2 2 0 0 0 1 }{CSTYLE "_cstyle1" -1 222 "Times" 1 24 0 0 0 1 2 1 1 2 2 2 0 0 0 1 }{CSTYLE "_cstyle2" -1 223 "Times" 1 24 0 0 0 1 2 1 1 2 2 2 0 0 0 1 }{CSTYLE "_cstyle3" -1 224 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "_cstyle4" -1 225 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 } {CSTYLE "_cstyle5" -1 226 "Times" 1 14 0 0 0 1 1 1 2 2 2 2 0 0 0 1 } {CSTYLE "_cstyle6" -1 227 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 0 0 0 1 } {CSTYLE "_cstyle7" -1 228 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 } {CSTYLE "_cstyle8" -1 229 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 } {CSTYLE "_cstyle9" -1 230 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "_cstyle10" -1 231 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "_cstyle11" -1 232 "Courier" 0 1 255 0 0 1 0 1 0 2 1 2 0 0 0 1 }{CSTYLE "_cstyle12" -1 233 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "" 230 256 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE " " 230 257 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 224 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 224 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" 224 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" 224 264 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" 224 265 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" 228 266 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 228 267 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 224 268 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Tim es" 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 "_pstyle1" -1 203 1 {CSTYLE "" -1 -1 "Times" 1 24 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 8 4 2 0 2 0 2 2 0 1 }{PSTYLE "_pstyle2" -1 204 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }3 1 0 0 8 4 2 0 2 0 2 2 0 1 }{PSTYLE "_pstyle3" -1 205 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 2 0 2 0 2 2 0 1 }{PSTYLE "_pstyle4" -1 206 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 2 0 2 0 2 2 0 1 }{PSTYLE "_pstyle5" -1 207 1 {CSTYLE "" -1 -1 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 1 1 1 1 } 1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "_pstyle6" -1 208 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 }} {SECT 0 {EXCHG {PARA 203 "" 0 "" {TEXT 222 39 "Mathematics Department \+ Maple Tutorial 2" }}{PARA 204 "" 0 "" {TEXT 223 23 "Elements of Progra mming" }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "" 0 "" {TEXT 224 82 "This is an introduction to basic programming in Maple. \+ The emphasis is placed on " }{TEXT 225 20 "learning through use" } {TEXT 224 99 ", so explanatory text is kept to a minimum. For further information on any topic, do look in Help." }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "" 0 "" {TEXT 226 1 " " }}{PARA 205 "" 0 "for...do" {TEXT 226 16 "for...do ... od;" }}{PARA 205 "" 0 "for. ..do" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 55 "Simple sequences in Maple can be constructed using the " }{TEXT 227 3 "seq" }{TEXT 224 44 " command, but sometimes more is required. I" }{TEXT -1 0 "" }{TEXT 224 63 "t is helpful to t hink about what a sequence really is: it is a " }{TEXT 225 9 "function " }{TEXT 224 69 "which maps from the natural numbers into a set of nu mbers. Thus the " }{TEXT 259 17 "Fibonacci numbers" }{TEXT 224 42 " a re the values of the function defined by" }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 206 "" 0 "" {TEXT 229 2 " F" }{TEXT 230 12 "(1) = 1, \+ " }{TEXT 257 1 "F" }{TEXT 230 14 " (2) = 1, " }{TEXT 229 1 "F" } {TEXT 230 1 "(" }{TEXT 229 1 "n" }{TEXT 230 4 ") = " }{TEXT 229 1 "F" }{TEXT 230 1 "(" }{TEXT 229 1 "n" }{TEXT 230 6 "-1) + " }{TEXT 229 1 " F" }{TEXT 230 1 "(" }{TEXT 229 1 "n" }{TEXT 230 7 "-2) (" }{TEXT 256 4 "n > " }{TEXT 230 3 "2)." }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 205 "" 0 "" {TEXT 224 83 "Here is a simple program to lis t the first 100 Fibonacci numbers. Note the use of " }{TEXT 225 15 "s quare brackets" }{TEXT 224 37 " to denote an element of a sequence," }{TEXT 258 0 "" }{TEXT 224 187 " as opposed to the round brackets one normally uses for a function. (A practical point: holding down SHIF T as you press ENTER allows you to write the Maple code on more than o ne line.)" }}{PARA 205 "" 0 "" {TEXT 224 3 " " }}}{EXCHG {PARA 205 " > " 0 "" {MPLTEXT 1 231 70 "f[1]:= 1; \nf[2]:= 1;\nfor n from 3 to 100 do f[n]:= f[n-1] + f[n-2] od;" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 129 "This will allow you to find an y Fibonacci number between 1 and 100. Can you explain Maple's answer \+ when you enter the following?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 15 "f[100]; f[101];" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 224 301 "Once defined (and evaluated) this sequence can be used in other loops. Look at the differences between the outputs \+ produced by the next three input lines. The first one gives the ratio between successive terms, as a fraction. The second one also tells u s the number of each term, and the third one " }{TEXT -1 24 "uses the \+ Maple function " }{TEXT 260 5 "evalf" }{TEXT -1 4 " to" }{TEXT 262 1 " " }{TEXT 261 0 "" }{TEXT -1 59 "give an approximation to the fractio n, in decimal notation." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 37 "for n from 1 to 20 do f[n+1]/f[ n] od;" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 47 "for n from 1 \+ to 20 do print(n, f[n+1]/f[n]) od;" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 44 "for n from 1 to 20 do evalf(f[n+1]/f[n]) od;" }}} {EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 49 "The next example is another recursive sequence. " }{TEXT 225 1 " \+ " }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 74 "x[1]:=1;\nfor i from 2 to 5 do\n x[i]:=x[i-1]/2 + 1 /x[i-1]; evalf(x[i]) \nod;" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 35 "Can you explain what is happening? " } {TEXT 224 99 "Change the program to compute the first 8 terms, and out put 20 decimal digits by using the command " }{TEXT 225 1 " " }{TEXT 227 5 "evalf" }{TEXT 228 9 "(x[i],20)" }{TEXT 224 62 " . At what stag e is the answer accurate to 20 decimal places?" }}}{EXCHG {PARA 205 " " 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 226 25 "if..then ... el se ... fi;" }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "" 0 "" {TEXT 224 4 "The " }{TEXT 227 3 "do " }{TEXT 224 29 "loop can be \+ combined with an " }{TEXT 227 12 "if ... then " }{TEXT 224 147 " const ruction. What do you think the following program tells us about the \+ Fibonacci numbers defined above? (Use Help to discover the meaning of " }{TEXT 263 0 "" }{TEXT 264 7 "isprime" }{TEXT 265 1 "." }{TEXT 224 1 ")" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 70 "for n from 1 to 20 do\n if isprime(f[n]) then pri nt(n, f[n]) fi \nod;" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }} {PARA 205 "" 0 "" {TEXT 224 70 "A more complicated example of a recur sive sequence is the following. " }}{PARA 205 "" 0 "" {TEXT -1 0 "" }} {PARA 205 "" 0 "" {TEXT 224 1 " " }{XPPEDIT 2 0 "u[1]=1" "6#/&%\"uG6# \"\"\"F'" }{TEXT 224 3 ", " }{XPPEDIT 2 0 "u[n]=2*u[n-1]" "6#/&%\"uG6 #%\"nG*&\"\"#\"\"\"&F%6#,&F'F*F*!\"\"F*" }{TEXT 224 6 " if " }{TEXT 225 1 "n" }{TEXT 224 10 " is odd, " }{XPPEDIT 2 0 "u[n]=u[n-1]+1" "6# /&%\"uG6#%\"nG,&&F%6#,&F'\"\"\"F,!\"\"F,F,F," }{TEXT 224 5 " if " } {TEXT 225 1 "n" }{TEXT 224 9 " is even." }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 103 "u[1]:=1;\nfor n from 2 to 20 do\n if not irem(n,2)=0 then u[n]:=2*u[n-1];\n else \+ u[n]:=u[n-1]+1 fi\nod;" }}{PARA 207 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "" 0 "" {TEXT 224 29 "Has Maple done anything? Try" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "u[20];" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 77 "Yes, it has evaluated the sequence, but not printed it. To see why, look up " }{TEXT 227 10 "printlevel" }{TEXT 224 32 " in Help. Either input the line" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 14 "printlevel:=2;" }}}{EXCHG {PARA 205 "" 0 "" {TEXT 224 32 "and re-enter the above program, " }{TEXT 225 2 "or" }{TEXT 224 7 " add a " }{TEXT 227 5 "print" }{TEXT 266 6 "(u[n])" }{TEXT 228 1 ";" }{TEXT 227 1 " " }{TEXT 224 34 "command after each definition of " }{TEXT 267 4 "u[n]" }{TEXT 228 1 " " }{TEXT 224 28 " above and the n re-enter it." }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 233 18 "Modular arithmetic" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 40 "Maple is capable of ca lculating 'modulo " }{TEXT 268 1 "m" }{TEXT 224 9 "' where " }{TEXT 225 1 "m" }{TEXT 224 42 " is any natural number. For example, try " } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 231 12 "2+10 mod 11;" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 231 11 "5*9 mod 11;" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 51 "Consider a system of linear equations in mod ulus 7." }}{PARA 206 "" 0 "" {TEXT 230 11 "2x + y = 1" }}{PARA 206 " " 0 "" {TEXT 230 11 " x + 2y = 3" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 66 "To solve this system you can use either of the next two commands. " }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 231 31 "solve(\{2*x+y=1,x+2 *y=3\}) mod 7;" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 232 6 "msolve " }{MPLTEXT 1 231 22 "(\{2*x+y=1,x+2*y=3\},7);" }}}{EXCHG {PARA 205 " " 0 "" {TEXT -1 0 "" }}{PARA 205 "" 0 "" {TEXT 224 59 "See what happen s if you try to solve these equations mod 6." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 231 37 "solve(\{2*x+y =1,x+2*y=3\},\{x,y\}) mod 6;" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 231 37 "solve(\{2*x+y=2,x+2*y=4\},\{x,y\}) mod 6;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 205 "" 0 "" {TEXT -1 0 " " }}{PARA 205 "" 0 "" {TEXT 224 34 "WARNING! Maple only gives one of \+ " }{TEXT 225 5 "three" }{TEXT 224 79 " possible solutions. It is not \+ exhaustive; it stops after finding a solution. " }}{PARA 205 "" 0 "" {TEXT 224 71 "Be sure you know the limitations of the computer program you are using." }}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{PARA 208 "" 0 " " {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}{PARA 208 "" 0 "" {TEXT -1 0 "" }}}{MARK "1 0 2" 99 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }