{VERSION 4 0 "IBM INTEL NT" "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 "" -1 256 "Helvetica" 1 14 128 0 0 1 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "" -1 257 "" 0 24 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 258 "Helvetica" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 259 "Helvetica" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 260 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 261 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 262 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 264 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 265 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 266 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 270 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 1 14 0 0 0 0 0 2 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 14 128 0 128 1 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 128 0 128 1 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 0 14 0 0 1 1 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 1 14 0 0 0 0 0 0 1 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 "Title" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }1 1 0 0 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Normal" -1 257 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 "Normal" -1 258 1 {CSTYLE "" -1 -1 "T imes" 1 14 0 0 0 1 2 2 1 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Normal" -1 259 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 "Normal" -1 260 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 "Normal" -1 261 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 1 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 256 "" 0 "" {TEXT 257 13 "MLC Lab Visit" }}{PARA 0 "" 0 "" {TEXT 256 26 "Mth 351 Aug 6 2001 Maple 6" }}{PARA 0 "" 0 "" {TEXT 258 16 "Bent E. Petersen" }}{PARA 0 "" 0 "" {TEXT 259 32 "Filena me: 351u2001_lab_visit.mws" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 271 130 "Some of the commands below may not work correct ly in Maple 5 and earlier. Usually there are other ways to achieve the same effect." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 261 "" 0 "" {TEXT 272 12 "Introduction" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 386 "Maple is a CAS, that is, a Computer Algebra System. It p erforms mathematical operations symbolically, but a large number of ro bust numerical routines are also built in. Maple can be used interacti vely as a rather fancy calculator, but it can also be used as a flexib le programming language. Our emphasis in this introduction is on inter active use. Even so we barely scratch the surface." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 214 "The workstations in the \+ MLC lab are PCs running Windows NT 4.0. You must have an ORST (aka myO RST, aka Student Lab) account to use the PCs in the MLC lab. OSU stude nts can obtain an ORST account within minutes at  " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 259 "" 0 "" {TEXT -1 19 "http://my.orst.edu/" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 254 "When you logon to a machine in the MLC lab your ORST directory in the ORST ser ver will be visible as drive Z: This is where you should keep your per sonal files. Then they will be available from any PC in the MLC lab (a nd many other labs) when you login. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 29 "Note there is a lab manual at" }}{PARA 260 "" 0 "" {TEXT -1 51 "http://web.orst.edu/~peterseb/lab_enchiridion .html " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 294 "You are unlikely to need any of the information in the manual but you might want to look at it for interest sake. Note in spite of what it may say in the lab manual your user profile is no longer saved (no r restored). Anything you want to save will have to be saved explicitl y on your drive Z:." }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 " " {TEXT 260 5 "Login" }}{PARA 0 "" 0 "" {TEXT -1 330 "The machines in \+ the lab are normally left on, but the monitors may be turned off. If t he monitor is off, then switch it on. Next press the Ctrl-Alt-Delete k eys simultaneously. You should get a login prompt. Enter your ORST use r name and press the Tab key (not the Enter key). Then enter your ORST password and press the Enter key." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 93 "Next you may see a message about a slow n etwork connection. This message is bogus. Ignore it." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 164 "Next you may see a que stion about a default Novell server. Just answer \"none\" unless you h ave a reason to answer otherwise. This question should never appear ag ain." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 269 " To start Maple (or Matlab, or Mathematica, ... ) select the Start butt on (lower left corner of the screen), then Programs from the menu, etc . If you don't know the appropriate steps here ask for help. Writing a ll this out in detail produces an incredibly dull document." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 261 6 "Logout" }} {PARA 0 "" 0 "" {TEXT -1 250 "When you are done with your session save your work, shutdown the software you were using and logout. To logout select the Start button (this is a very strange Windows idiom), and t hen select \"Shut Down ...\" and finally select \"Logon as another use r.\"" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 111 " Another way to logout is to press Ctrl-Alt-Delete. A menu will appear. Select logoff. That is the simplest way." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 329 "Do not select Restart or Shutdown unless you have a reason to do so and do not shut off the PC. There i s no harm in shutting off the PC, but doing so causes the next user to have a long wait while the machine reboots. You may turn off the moni tor if you wish. That will save power and will reduce the load on the \+ air-conditioner." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 186 "Note: If you do not logout you leave your account open f or the next person to come along. That person will have access to your personal files on the ORST server. Do not forget to logout!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 551 "If you plan to leave the lab, even just for a few minutes, save your work (to the Z: drive) and logoff. When you return and logon, even to a different mac hine, your work will be available. Do not select \"Lock Workstation.\" If you do, someone else wishing to use the workstation may power-cycl e it in order to gain access and your unsaved work may be lost as a re sult. The same comments apply to relying on a password protected scree nsaver. Don't do it. Save your work and logoff. You have no claim on a ny workstation if you are not physically present." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 262 13 "The Worksheet" }}{PARA 257 "" 0 "" {TEXT -1 470 "When you are using Maple in a window environ ment it is possible to move around on the worksheet by left-clicking t he mouse. As a result, commands may end up being executed in a nonline ar order. This can cause some confusion, since there is no visual clue . One way to fix a mess is to have Maple re-execute the whole workshee t (look on the Edit menu). This works best if old expressions are clea ned up first, so it is a good idea to start each worksheet with the co mmand " }{TEXT 263 8 "restart;" }{TEXT -1 40 " You do not need to do s o of course ...." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 275 115 "Maple commands are executed by p ressing the Enter key when the mouse cursor is in the line containing \+ the commands." }{TEXT 278 75 " Note that Maple skips over the interpol ated text comments (like this one)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 468 "Note each Maple command must be termina ted by a colon or a semicolon (except help commands preceded by a ques tion mark). You can spread the command over several lines by postponin g the terminating colon or semicolon. You simply move to a new line by pressing Enter. Maple will chatter at you when you move to a new line in this manner if the previous command is unterminated. Ignore it, bu t keep in mind a command will not be executed before it is properly te rminated." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 338 "You can also stack up several commands on one line by terminating them individually with colons or semicolons. The effect of the colon \+ is to suppress output from the corresponding command, though the comma nd is still carried out. All the commands on a line are executed when \+ you press the Enter key (with the cursor anywhere on the line)." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 249 "Maple ha s two ditto operators, % and %%. The value of % is the previously ev aluated expression, the value of %% is the one before that. Since th e Worksheet commands may be executed in any order, the ditto operators can cause a lot of confusion. " }{TEXT 276 86 "It is probably best to restrict them to the same line as the expressions they refer to" } {TEXT 277 1 "." }{TEXT -1 74 " Here is a silly example, which also dem onstrates the assignment operator." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 222 "Here's a useful fact: You can open a new command line below the current one by pressing Ctrl-J, or above the c urrent line, by pressing Ctrl-K. This is pretty useful when you realiz e you omitted something at a certain step." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "a:=5: b:=4: %%; % %; %;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 137 "You can also unassign variables. Right now a is 5. Th at would cause problems if we want to use a as a dummy variable of i ntegration!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "unassign('a','b'); a; b;" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 63 "You can pass any number of variables to the unassign() command." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 114 "A simpler way to unassign one var iable is to assign it its name extracted by single quotes (this is a M aple idiom)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "a:=5; a:='a': a;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 279 "This is quite convenient, but \+ sometimes the single quotes are hard to find on the keyboard and even \+ harder to see on the monitor. Thus, even though it is more typing you \+ may prefer to use the evaluate to a name function evaln() since it do es not require the pesky single quotes." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "a:=5; b:=4;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "unassign(evaln(a),evaln(b)); a; b;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 92 "Unfortunately, you can pass only one expression to evaln( ), since it returns only one name. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 " Maple has builtin constants" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "Pi; evalf(Pi); I; I^2;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 210 "N ote the upper case letters. If you enter pi you will just get the Gree k letter pi, not the real number pi. By the way, the evalf() function \+ takes a second parameter specifiying the precision in decimal digits. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "evalf(Pi,360);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 70 "Note the use of the line continuatio n character \\ in Maple's response." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 224 "You can also set the precision by assig ning a value to Digits (the default is 10). Maple usually does exact c alculations, but when floating point numbers are involved then Digits \+ sets the precision. Here's an amusing example" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "Digits:=4: \+ convert(evalf(Pi),`rational`);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 172 "The conversion to a rational number \+ makes use of Digits, rather than any precision specified in the evalf( ) command. You can easily find other rational approximations to pi" } {MPLTEXT 1 0 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Digits:=8: convert(evalf(Pi),rational);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 292 "N ote this time I omitted the backticks on the word \"rational.\" Most o f the time you do not need them, but if you have a variable called \"r ational\" you need the backticks to ensure that you pass a literal str ing to Maple's convert() function, rather than the value of your varia ble \"rational.\"" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 37 "Let's set Digits back to its default." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=10: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 139 "Let's look a bit at symbolic manipulations now. Maple distinguish es between functions and expressions. Here's one way to define a funct ion:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "f:=x->sin(3*x+x^2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 33 "We can also define an expressio n:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "g:=sin(3*x+x^2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 261 "Both of the examples above assume that x has not already been assigned a value. It needs to be an una ssigned variable. In the definition of f the x is a dummy variable , a place marker. In g however, it is part of the expression, and on e can refer to it." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 159 "To evaluate a function we use the usual function convent ion. To evaluate an expression one generally uses the subs() command ( though it has other subtle uses)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "f(1); subs(x=1,g);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 59 "No te the subs() command above does not assign a value to x." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 310 "An expression can also be evaluated by using the eval() command, but do check help to m ake sure you don't have any surprises in more complicated situations. \+ The commands eval() and subs() work in quite different ways. In the si mple case that we illustrated here eval() is actually the preferred co mmand to use." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "eval(g,x=1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 59 "Note the eval() command above d oes not assign a value to x." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 75 "We can convert an expression into a function by using the unapply() command" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "h:=unapply(g,x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 226 "You can \+ think of unapply() as turning the indicated variable(s) into dummy var iables or place markers. Thus f(x) is the the function f evaluated at x and unapply(f(x),x) ought to return the function f. Let's che ck that:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "ff:=unapply(f(x),x); (ff-f)(w);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 12 "Sure enough!" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 134 "Some Map le commands work on expressions, some work on functions, and some on b oth. For example, here are the derivatives of f and g." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "D(f) ; diff(g,x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 33 "Second derivatives are no problem" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "D(D(f)); di ff(g,x,x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 124 "but this notation can get out hand. Fortunately there is an alternative! Here are the fourth derivatives as an illustration:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "(D@@4)(f); diff(g,x$4);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 118 "Partial derivatives of expressions \+ are also easily computed (here nce relative to y and three times rel ative to x):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "diff(x/(x^2+y^2),x$3,y);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 414 "There is an inert v ersion Diff() of diff(). An inert function returns unevaluated. That m ay seem strange, but sometimes one can save time by postponing evaluat ion, or one can prevent Maple from attempting a calculation that will \+ fail at present, but can be caried out later in special cases or diffe rent contexts. Unevaluated expressions may be evaluated by using the c ommand value(), thought there are other ways." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 135 "Inert functions, togethe r with the ditto operator can be used to get nicely typeset expression s. See if you can sort out the following:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "Diff(x/(x^2+y^2),x$3 ,y): %=value(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 290 "As a final general example let's bring back some \+ fond memories from calculus - the problem of integration. Here's an ex ample to get you started: Once again I use postponed evaluation to get a nicely typeset equation. You don't need to do such trickery, of cou rse, but it's nice to know how." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "Int(1/(1+x^4),x): % = value( %);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 41 "You can obtain the same effect by writing" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "Int(1/(1+x^ 4),x) = int(1/(1+x^4),x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 157 "if you don't mind writing the integrand \+ twice. If you are just interested in evaluating the integral then you \+ can dispense with all the typesetting niceties:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "int(1/(1+x^ 4),x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 72 "I bet you wish you had a tool like this when you were stu dying calculus!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 46 "Naturally definite integrals are possible too." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "I nt(2*x^2*log(x)^3+x^3*log(x),x=1..2): %=value(%);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 139 "If you want a flo ating point number you can simply use evalf(), but there is a subtle a nd important difference depending on how you do it. " }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "a:=int(2* x^2*log(x)^3+x^3*log(x),x=1..2): evalf(a,16);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "evalf(Int(2*x^2*log(x)^3+x^3*log(x),x=1..2),16); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 299 "In the first case we assign the symbolic expression for the integ ral to a and then evaluate that expression. In the second example, M aple detects that we want a numeric result and evaluates the integral \+ numerically without first trying to obtain a symbolic solution. This i s important. For example" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "int(arctan(x)/log(x),x=Pi/8..Pi/4); evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "evalf(Int(arc tan(x)/log(x),x=Pi/8..Pi/4));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 500 "Here, in the first case, Maple decid ed after a while (possibly a long while) that it can not return a symb olic value for the integral and so returned it unevaluated. Then evalf () called a numeric quadrature rule to get an answer. In the second ca se however, Maple wasted no time trying to find a nonexistent symbolic solution, but instead used a numeric quadrature method. This is an im portant use of inert functions. You can grow noticably older waiting f or a symbolic solution to a complex problem." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 137 "There are refinements. For exa mple, you can specify what quadrature method to use. Enter the command ?int[numeric] for more information." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 258 "" 0 "" {TEXT -1 10 "Some Plots" }{TEXT 268 0 "" }{TEXT 269 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 124 "Functions and expression s can be plotted. There are numerous plot variations. Check the help \+ facility, ?plot, for details." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "f:=x->sin(1/x); g:=sin(1/x); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "plot(f,0..1,numpoints=2 00,title=\"Plotting a function\");" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "plot(g,x=0..1,numpoints=200,title=\"Plotting an expre ssion\");" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 88 "We can convert a function into an expression simply by ev aluating it, so one can also do" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 " plot(f(x),x=0..1):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 92 "I \+ supressed the output, since you probably don't want to see a third cop y of the same graph." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 117 "You can also plot anonymous functions, or expressions, that is, plot them without first assigning them to a variable:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "plot(x->x+sin(x),0..4*Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "plot(x+sin(x),x=0..4*Pi);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 265 29 "Taylor Series and Polynomials" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 288 "We have studied Taylor and int erpolation polynomials in class. Maple supports both. Actually the Tay lor polynomial is a special case of interpolation, with all the nodes \+ equal. but Maple's interpolation routine requires distinct nodes (we c an get around that restriction by using limits)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 50 "Let's start with an examp le of Taylor polynomials:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "expr:=taylor(exp(2*sin(x)),x=0,10); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 166 "Note taylor() works on expressions. The second argument specifies the center. The third argument specifies the order of the terms omitt ed. Parameters may be included:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "a:=evaln(a);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "expr:=taylor(exp(a*sin(x)),x=0,5); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 175 "Note I unevaluated a first, because we left it assigned to some \+ number above. If I had not unevaluated it then Maple would have substi tuted the value of a in this expression." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 132 "The data type returned by taylor( ) is a series, not a polynomial. If you want a polynomial to play with you need to do a conversion:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "taylor(tan(x),x=0,10): p:=co nvert(%,polynom);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 63 "You need backticks if you have used polynom as a v ariable name." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 55 "You can specify a different center, even a symbolic one" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "taylor(exp(x),x=c,4): pc:=convert(%,polynom);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 264 25 "Interpol ation Polynomials" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 74 "Maple provides a builtin command for computing interpolat ion polynomials. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 34 "q1:=interp([1,3,4,2],[2,1,3,1],x);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 193 "T he first parameter we pass to interp() is the list of (distinct) absci ssas, the second is the list of ordinates and the third is a name, the name for the variable to be used in the polynomial." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 110 "If you want a polynomi al function rather than a polynomial expression in some variable, you \+ can use unapply():" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "q2:=unapply(interp([1,3,4,2],[2,1,3,1],x),x );" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 "Let's check that it worked:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "q2(1); q2(3); q2(4); q2(2); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 163 "If you have a list of points you want to interpolate you can extr act the abscissas and ordinates by using the op() command (it lists th e operands in its argument):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "L:=[ [1,2], [2,-1], [3,-2], \+ [-1,1], [-2,7], [8,6], [7,5] ];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 108 "We start by declaring two empty lis ts, XX and YY, and then push the abscissas on XX and the ordinates on \+ YY:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "XX:=[]: YY:=[]: for pnt in L do XX:=[op(XX),pnt[1]]; \+ YY:=[op(YY),pnt[2]]; od:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 59 "Before we use XX and YY let's check that they look alright" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "XX; YY;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "p3:=interp(XX,YY,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "plot(p3,x=1..7,title=\"p3\");" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 186 "A convenient way to construct an interpolation polynomial for a function is to use the ma p() command to evaluate the function at each abscissa. Let's consider \+ the sine function on [0,4]:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "XX:=[0,1/2,1,3/2,2,5/2,3,7/2 ,4];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "YY:=evalf(map(sin,X X));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 126 "Here we used evalf() to force (approximate) evaluation of the \+ sine. Otherwise we will get an (painfully) exact answer. Try it." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "ps:=interp(XX,YY,t);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "plot([ps,sin(t)],t=0..6.5,title=\"Interpolation (red) of sin(t)(bl ue)\",color=[red,blue]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 79 "Note the previous example shows one way o f plotting two functions on one graph." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 266 20 "Interpolating Spline" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 267 "Maple computes splines of all degrees - check the help. Here we will look only at linear and (natural) cubic splines. A linear spline is just a piecewise linear function. The parameters are much the same as for interp(), but the abscissas must be in increasin g order." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "XX:=[1,2,5/2,3,13/4,15/4,5];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "YY:=[1,1,2,1,-1,-1,3];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "sp1:=spline(XX,YY,x,linear);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "sp3:=spline(XX,YY,x,cubic);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 135 "plot([sp1,sp3],x=1..5,color=[red,b lue],thickness=2,numpoints=200,title=\"piecewise linear (red) and cubi c spline (blue) interpolation\");" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 230 "You can see how the cubic spline \+ smoothens out the graph without introducing too much oscillation. If w e compare the piecewise linear spline and the interpolation polynomial we see unreasonable oscillation unsupported by the data:" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "pp:= interp(XX,YY,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 132 "plot([ sp1,pp],x=1..5,color=[red,blue],thickness=2,numpoints=200,title=\"piec ewise linear (red) and polynomial interpolation (blue)\");" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 203 "Note the vertical scales are different in the two graphs. We can plot all thre e function in one graph for a more convincing demonstartion of how wel l the cubic spline follows the piecewise interpolation." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 161 "plot( [sp1,sp3,pp],x=1..5,-3..9,color=[red,blue,black],thickness=2,numpoints =200,title=\"red=piecewise linear, blue=cubic spline, black=interpolat ion polynomial\");" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 174 "Note how I restricted the vertical range to -3. .9 so we would be able to see the details (otherwise the piecewise lin ear and the cubic spline just about merge on the graph)." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 267 30 "Trapezoi dal and Simpson's Rule" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 229 "Maple has numerous high-power quadrature methods bu ilt in, but if one simply wants to experiment with the trapezoidal rul e or Simpson's rule, these are available in the student package, acces sed through the command with(student)." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 179 "It is also fairly easy to roll your \+ own, even to write high order Newton-Cotes methods, if you wish. There are some example on my web page. For now, let's use the student packa ge." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "with(student):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "trapezoid(f(x),x=a..b,6);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "simpson(f(x),x=a..b,6);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 48 "Let's try an actual funct ion, say exp(x)*cos(x)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "trapezoid(exp(x)*cos(x),x=0..3,12): test:=evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "simpson (exp(x)*cos(x),x=0..3,12): sest:=evalf(%);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 36 "int(exp(x)*cos(x),x=0..3); evalf(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 57 "As we exp ected, Simpson's rule performs much better here." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT 279 5 "Plots" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 151 "Maple has a number of builtin plot commands. Additiona l commands are made available by loading the plots package (by means o f the with(plots) command)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 25 "Here is a well know plot." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "plot3d(sin( sqrt(x^2+y^2))/sqrt(x^2+y^2),x=-7..7,y=-7..7);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 202 "We can also do parametric plots. We will use parame ters t and p, so lets make sure first they have not been assigned \+ to some other expressions (otherwise we will get incomprehensibe error messages)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "t:=evaln(t): p:=evaln(p):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "plot3d([4*cos(t)*sin(p),4*sin(t)*sin(p),4*cos(p) ],t=-Pi..Pi/2,p=0..Pi/2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 101 "Many other plot comamnds are available. \+ Check ?plots. A nice plot to experiment with is the tubeplot" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(plots):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "tubep lot([t,t^2,t*sin(t)],t=-1..12,radius=6*(1+cos(t/4)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "tubeplot([4*cos(t),4*sin(t),6*t],t= 0..18,radius=1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT 270 15 "Closing Remarks" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 112 "We have barely scratched the surface. \+ There are many other things Maple can do. Try exploring the help facil ity!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "ifactor(111111111111111111);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "isprime(333667);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "isprime(333613);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "limit((exp(x)-1-x)/x^2,x=0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "sum(k^4,k=1..n);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "sum(k^(-2),k=1..infinity);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "fsolve(tan(x)=3*x,x,avoid=\{x=0\},0..1.4);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "fsolve(tan(x)=3*x,x,1.4..5); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "solve(\{x+2*y=3,3*x-2*y =5\},\{x,y\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 11 "Experiment!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}} {MARK "0 0 0" 13 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }