{VERSION 4 0 "APPLE_PPC_MAC" "4.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 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 1 0 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 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 1 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 "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 "Maple Output" -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 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Plot" -1 13 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 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Author" -1 19 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 8 8 1 0 1 0 2 2 0 1 }} {SECT 0 {PARA 18 "" 0 "" {TEXT -1 25 "6. Sets, Lists and Arrays" }} {PARA 19 "" 0 "" {TEXT -1 28 "Dr. Saccone, Revised 2/12/01" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "resta rt;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 20 "Expression Sequences" }}{PARA 0 "" 0 "" {TEXT -1 3 "An " }{TEXT 256 10 "expression" }{TEXT -1 297 " is a very common, b asic Maple object. In fact, every Maple object can be thought of as so me combination of expressions. Examples of exressions are numerical co nstants and combinations of numerical constants through operators. For example we pass the expression 6*12+7/99 to the Maple command line" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "6*12+7/99;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6##\"%Nr\"#**" }}}{PARA 0 "" 0 "" {TEXT -1 66 "and M aple evaluates this expression. Other examples of expresions:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "2*a+C;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&%\"aG\"\"#%\"CG\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "sin(2)+exp(22);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,& -%$sinG6#\"\"#\"\"\"-%$expG6#\"#AF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "myName+yourName;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#, &%'myNameG\"\"\"%)yourNameGF%" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 3 "An " }{TEXT 257 20 "expression sequence " }{TEXT -1 53 " is simply a list of expressions separated by commas." } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "2+3,myName,sin(2),a^3+b^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6&\" \"&%'myNameG-%$sinG6#\"\"#,&*$)%\"aG\"\"$\"\"\"F.*$)%\"bGF(F.F." }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{SECT 0 {PARA 3 "" 0 "" {TEXT -1 14 "Sets and Lists" }}{PARA 0 "" 0 " " {TEXT -1 2 "A " }{TEXT 258 4 "set " }{TEXT -1 39 "is a collection of expressions that is " }{TEXT 259 11 "unordered. " }{TEXT -1 77 "Sets \+ are defined by placing an expression sequence within braces. For examp le" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "mySet := \{Monday,Tuesday,Sunday,sin(x),x^2+y^2+z^2\} ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&mySetG<'%(TuesdayG%'SundayG-%$ sinG6#%\"xG%'MondayG,(*$)F+\"\"#\"\"\"F1*$)%\"yGF0F1F1*$)%\"zGF0F1F1" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 134 "Notic e the order of the objects in the Maple output is different than the o rder in the input. Order is not defined on objects in sets." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 2 "A " }{TEXT 261 4 "list" }{TEXT -1 25 " on the other hand is an " }{TEXT 260 8 "ordere d " }{TEXT -1 84 "collection of objects and are defined by placing an \+ expression sequence in brackets." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "myList := [Monday,Tuesday,Su nday,sin(x),x^2+y^2+z^2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'myList G7'%'MondayG%(TuesdayG%'SundayG-%$sinG6#%\"xG,(*$)F,\"\"#\"\"\"F1*$)% \"yGF0F1F1*$)%\"zGF0F1F1" }}}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 179 "One can access invididual expressions in the lis t by placing the location of the expression in brackets. The first ele ment in the list is referenced by 1, the second 2, and so on." }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "myList[1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%'MondayG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "myList[4];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$sinG6#%\"xG" }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 262 9 "Example. " }{TEXT -1 79 "Each of the following commands plots a collection of points connected by lines." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "plot(\{[0,3],[1,4],[2,1],[3,7]\},style=line,view=0..7 );" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'CURVESG 6$7&7$$\"\"$\"\"!$\"\"(F*7$$\"\"\"F*$\"\"%F*7$$\"\"#F*F.7$$F*F*F(-%'CO LOURG6&%$RGBG$\"#5!\"\"F6F6-%&STYLEG6#%%LINEG-%+AXESLABELSG6$Q!6\"FE-% %VIEWG6$%(DEFAULTG;F6F+" 1 6 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " plot([[0,3],[1,4],[2,1],[3,7]],style=line,view=0..7);" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'CURVESG6$7&7$$\"\"!F)$\" \"$F)7$$\"\"\"F)$\"\"%F)7$$\"\"#F)F-7$F*$\"\"(F)-%'COLOURG6&%$RGBG$\"# 5!\"\"F(F(-%&STYLEG6#%%LINEG-%+AXESLABELSG6$Q!6\"FE-%%VIEWG6$%(DEFAULT G;F(F5" 1 6 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{PARA 0 "" 0 "" {TEXT -1 181 "Notice that the order in which t he points are plotted is different. This is because in the first comma nd a set of points was given and in the second line a list of points w as given." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 263 14 "Lists of Lists" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 85 "Each of the expressions in a list can be \+ just about anything, including another list." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "doubleList := [[1, 2],[3,4],[5,6]];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%+doubleListG7%7$ \"\"\"\"\"#7$\"\"$\"\"%7$\"\"&\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "doubleList[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$ \"\"$\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "doubleList[3, 2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "doubleList[3,2] := 99;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%+doubleListG6$\"\"$\"\"#\"#**" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 11 "doubleList;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #7%7$\"\"\"\"\"#7$\"\"$\"\"%7$\"\"&\"#**" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 99 "Notice how Maple uses a subscript \+ notation when referencing elements of the list in the assignment." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 264 7 "Mapping" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 206 "Suppose we want to perform an operation on every element in a list. The command to do this is map. The first argument is a fun ction, the second a list. Map applies the function to every element in the list." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 265 8 "Example." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "functionList := [x^3,exp(x^2),sin(x),cos(x)^2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%-functionListG7&*$)%\"xG\"\"$\"\"\"-%$expG6#*$)F (\"\"#F*-%$sinG6#F(*$)-%$cosGF3F0F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "diffWrt_x := expr -> diff(expr,x);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%*diffWrt_xGR6#%%exprG6\"6$%)operatorG%&arrowGF(-%%d iffG6$9$%\"xGF(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "deri vativeList := map(diffWrt_x,functionList);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%/derivativeListG7&,$*$)%\"xG\"\"#\"\"\"\"\"$,$*&F)F+- %$expG6#F'F+F*-%$cosG6#F),$*&F2F+-%$sinGF4F+!\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 6 "Arra ys" }}{PARA 0 "" 0 "" {TEXT -1 189 "An array is a generalization of a \+ list. While the elements of a list are indexed by positve integers, el ements in an array can be indexed by arbitrary integers, including neg ative integers." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 34 "myArray := array(1..3,[10,20,30]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(myArrayG-%'vectorG6#7%\"#5\"#?\"#I" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "myArray;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%(myArrayG" }}}{PARA 0 "" 0 "" {TEXT -1 140 "Maple will not automatically display all the elements of an array. This is usefu l when arrays become large. To display the contents use the " }{TEXT 266 6 "print " }{TEXT -1 8 "command." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "print(myArray);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'vectorG6#7%\"#5\"#?\"#I" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 56 "In this example the ar ray behaves very much like a list." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "myArray[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "myArray[2]:=99;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%(myArrayG6#\"\"#\"#**" }}}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 49 "Here is a new array ind exed by negative integers." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "newArray := array(-2..2,[7,9,11,13, 17]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)newArrayG-%&ARRAYG6$7#;!\" #\"\"#7'/6#F*\"\"(/6#!\"\"\"\"*/6#\"\"!\"#6/6#\"\"\"\"#8/6#F+\"#<" }}} {PARA 0 "" 0 "" {TEXT -1 33 "Notice the new format of display." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "newArray[-1] := 99;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%)newArra yG6#!\"\"\"#**" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "print(new Array);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&ARRAYG6$7#;!\"#\"\"#7'/6 #F(\"\"(/6#!\"\"\"#**/6#\"\"!\"#6/6#\"\"\"\"#8/6#F)\"#<" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "map(x -> x^2, newArray); " }{TEXT -1 13 "We can apply " }{TEXT 267 4 "map " }{TEXT -1 18 "to arrays as w ell." }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&ARRAYG6$7#;!\"#\"\"#7'/6#F( \"#\\/6#!\"\"\"%,)*/6#\"\"!\"$@\"/6#\"\"\"\"$p\"/6#F)\"$*G" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 268 15 "More Dimensions" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 63 "To define arrays of greater dimension use more sets of in dices." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "myDoubleArray := array(1..3,1..3);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%.myDoubleArrayG-%&arrayG6%;\"\"\"\"\"$F(7\"" }}} {PARA 0 "" 0 "" {TEXT -1 62 "Here there are no values assigned to the \+ entries in the array." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 41 "To assign values we supply a double list." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "myDoubleArray := array(1..3,1..3, [ [a,b,c],[d,e,f],[g,h,i]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%.myDou bleArrayG-%'matrixG6#7%7%%\"aG%\"bG%\"cG7%%\"dG%\"eG%\"fG7%%\"gG%\"hG% \"iG" }}}{PARA 0 "" 0 "" {TEXT -1 9 "Note the " }{TEXT 269 7 "pretty \+ " }{TEXT -1 46 "format in which the double array is displayed." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 28 "Some spec ial type of arrays." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "array (1..3,1..3,identity);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7 %7%\"\"\"\"\"!F)7%F)F(F)7%F)F)F(" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "array(1..3,1..4, [(1,3)=4,(2 ,4)=a], sparse);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7%7&\" \"!F(\"\"%F(7&F(F(F(%\"aG7&F(F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 20 "Vectors and Matrices" }}{PARA 0 "" 0 "" {TEXT -1 272 "Vectors and matrices are sp ecial cases of arrays (at least the way they are being defined below; \+ see the linear algebra tutorial for more on this). Their indexing alwa ys begins at 1. In the definition it is their size that is specified i nstead of the range of the indices." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "myVector := vector(3,[5,7,9 ]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)myVectorG-%'vectorG6#7%\"\"& \"\"(\"\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "myMatrix := m atrix(3,3,[[a,b,c],[d,e,f],[g,h,i]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)myMatrixG-%'matrixG6#7%7%%\"aG%\"bG%\"cG7%%\"dG%\"eG%\"fG7%%\"gG %\"hG%\"iG" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 64 "More on this topic will be found in the linear algebra tutorial ." }}}}{MARK "3 0 0" 8 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }