{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 Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "Help Normal" -1 30 "Times" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{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 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" 18 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 1 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 0 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 1 0 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 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 0 1 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 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 271 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 276 "" 0 1 0 0 0 0 0 1 0 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 0 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 0 1 0 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 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 1 0 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 0 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 283 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 1 14 0 0 0 0 0 0 0 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 1 } {CSTYLE "" -1 286 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 287 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 291 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 292 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 293 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 294 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 295 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 296 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 297 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 298 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 299 "" 0 14 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 300 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 301 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 302 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 303 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 304 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 305 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 306 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 307 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 308 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 309 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 310 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 311 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 312 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 313 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 314 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 315 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 316 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 317 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 318 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" 18 319 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 320 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 321 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 322 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 323 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 324 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 325 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 326 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 327 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 328 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 329 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 330 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 331 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 332 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 333 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 334 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 335 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 336 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 337 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 338 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 339 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 340 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 341 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 342 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 343 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 344 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 345 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 346 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 347 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 348 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 349 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 350 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 351 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 352 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 353 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 354 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 355 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 356 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 357 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 358 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 359 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 360 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 361 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 362 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 363 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 364 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 365 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 366 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 367 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 368 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 369 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 370 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 371 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 372 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 373 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 374 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 30 375 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 } {CSTYLE "" 30 376 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" 30 377 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" 30 378 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 30 379 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 30 380 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 381 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 382 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 383 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 384 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 385 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 386 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 387 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 388 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 389 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 390 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 391 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 392 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 393 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 394 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 395 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 396 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 397 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 398 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 399 "" 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 "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 } {PSTYLE "Normal" -1 256 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 }{PSTYLE "Title" -1 257 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 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Heading 2" -1 258 1 {CSTYLE "" -1 -1 "Ti mes" 1 14 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }1 1 0 0 8 2 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 }} {SECT 0 {EXCHG {PARA 257 "" 0 "" {TEXT -1 9 "Lecture 3" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 32 "Maple 6 versus Previous Versions" }} {EXCHG {PARA 0 "" 0 "" {TEXT -1 50 "Let's discuss once more some diffe rences between " }{TEXT 256 9 "Maple 6 " }{TEXT 259 23 "and previous versions. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 45 "In previous versions of Maple :\n\ninstead of " }{TEXT 345 6 " end if" }{TEXT -1 15 " one must use " }{TEXT 346 2 "fi" }{TEXT -1 14 ",\ninstead of " }{TEXT 347 3 "end" }{TEXT -1 1 " " }{TEXT 348 4 "pro c" }{TEXT -1 15 " one must use " }{TEXT 349 3 "end" }{TEXT -1 14 ",\n instead of " }{TEXT 350 6 "end do" }{TEXT -1 15 " one must use " } {TEXT 351 2 "od" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 12 "instea d of " }{TEXT 352 16 "return statement" }{TEXT -1 14 " one must use \+ " }{TEXT 353 17 "RETURN(statement)" }{TEXT -1 3 ".\n\n" }{TEXT 359 7 " Maple 6" }{TEXT -1 46 " does however allow one to use the old forms \+ " }{TEXT 354 2 "od" }{TEXT -1 2 ", " }{TEXT 355 2 "fi" }{TEXT -1 5 " a nd " }{TEXT 356 3 "end" }{TEXT -1 10 ". In fact " }{TEXT 357 3 "end" } {TEXT -1 65 " alone will work for any of these so-called delimiters. \+ Thus in " }{TEXT 257 7 "Maple 6" }{TEXT -1 24 " we would usually write :" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 95 "f:=proc(x) \n if x > 0 then \n return sin(x); \n \+ else \n return cos(x); \n end if; \nend proc:" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 7 "But in " }{TEXT 258 7 "Maple V" }{TEXT -1 46 " we M UST write the same procedure as follows:" }}}{PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "f:=proc(x) \n if x > 0 then \n RETURN(sin(x)); \n \+ else \n RETURN(cos(x)); \n fi; \nend:\n" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "The latter will also work in " }{TEXT 358 7 "Maple 6" } {TEXT -1 2 ". " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 1 {PARA 3 "" 0 "" {TEXT -1 27 "The Concatenation Operator " }} {EXCHG {PARA 0 "" 0 "" {TEXT -1 26 "Another difference is the " } {TEXT 260 22 "concatenation operator" }{TEXT 268 2 ". " }{TEXT -1 13 " In Maple 6 " }{TEXT 360 6 "x || y" }{TEXT -1 42 " gives the concaten ation of strings x and " }{TEXT 361 1 "y" }{TEXT -1 48 ". In previous \+ versions of Maple it was given by " }{TEXT 266 3 "x.y" }{TEXT -1 75 ". Concatenation is useful for forming variables. Here's a simple exam ple:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "for i from 1 to 5 d o\n x||i:=i^2;\nod;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 76 "We have c reated the four variables x1,x2,x3,x4 and assigned to xi the value " } {XPPEDIT 18 0 "i^2;" "6#*$%\"iG\"\"#" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "x 1,x2,x3,x4;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 269 78 "The Maple help pa ge for || states that the use of this operator is discourage." }{TEXT -1 89 " In the next section we show how to use indexed variables for \+ the same purpose. Usually " }{TEXT 362 9 "cat(x,y) " }{TEXT -1 14 "is \+ the same as" }{TEXT 363 7 " x || y" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 14 "The func tion " }{TEXT 267 3 "cat" }{TEXT -1 124 " may also be useful to get ri d of extra commas when printing combinations of text and integers, as \+ in the following example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 123 "for i from 1 \+ to 4 do\n#print(`If i = `, i, ` then i^2 = `, i^2);\nprint(cat(`If i = `, i, ` then i^2 = `, i^2, `.`));\nend do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 89 "Note that the cat operator will not work nicely with floating point numbers. For ex ample:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "x||1.0:=3;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "cat(x,1.0):=3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "x||1:=3; " }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 52 "But note that if we use cat we get an error message:" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "cat(x,1):=3; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 10 "Check out " }{TEXT 364 4 "?cat" }{TEXT -1 19 " for more examples." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 17 "Indexed Variables" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 56 "An alternative way to create several variable is to use " }{TEXT 261 17 "indexed variables" }{TEXT -1 34 ". These are variables of the form " }{TEXT 262 4 "x[i]" }{TEXT -1 25 " which Maple exhibits as " } {XPPEDIT 263 0 "x[i];" "6#&%\"xG6#%\"iG" }{TEXT 264 2 " ." }{TEXT -1 15 " That is, the " }{TEXT 265 1 "i" }{TEXT -1 144 " becomes a subscr ipt. This is the same in Maple 6 as in previous versions of Maple. [ Althought the notation is similar to that for arrays, an " }{TEXT 367 16 "indexed variable" }{TEXT -1 11 " is not an " }{TEXT 366 5 "array" }{TEXT -1 80 ". We will discuss the distinction later. Indexed variabl es are actually of type " }{TEXT 365 5 "table" }{TEXT -1 2 ".]" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 37 "for i from 1 to 5 do\n x[i]:=i^2;\nod;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 90 "One may also use doubly, triply, e tc., subscribted variables as in the following examples:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "A[2,5]:=2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "z[1,2,2,3]:=x^2 + sin(x);" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 11 "Sequences, " }{TEXT 283 25 "(max, min, seq, ithprime)" }} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 "Pe rhaps the most important " }{TEXT 368 5 "types" }{TEXT -1 4 " or " } {TEXT 369 7 "classes" }{TEXT -1 25 " of objects in Maple are " }{TEXT 274 16 "sequences, sets " }{TEXT -1 4 "and " }{TEXT 275 5 "lists" } {TEXT -1 46 ". It is vital to understand these thoroughly. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "We star t with some examples of " }{TEXT 270 9 "sequences" }{TEXT -1 4 ": A " }{TEXT 276 8 "sequence" }{TEXT -1 3 " (" }{TEXT 341 3 "aka" }{TEXT -1 4 " an " }{TEXT 339 10 "expression" }{TEXT -1 1 " " }{TEXT 340 8 "s equence" }{TEXT -1 151 ") is just a bunch of expressions separated by \+ commas: The expressions may be numbers, variables, functions, etc...-- and they need not all be different." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "sequence1:=1,2,1,A,3,x,sin(t);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 3 "If " }{TEXT 277 9 "sequence1" }{TEXT -1 20 " is a sequence then " } {TEXT 278 12 "sequence1[i]" }{TEXT -1 47 " is the i-th term of the seq uence, for example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "sequ ence1[5];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "sequence1[3]; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "sequence2:=55,7,33,-1,4 ;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 90 "The maximum and minimum of a sequence or real numbers is obtained by use of the functions " } {TEXT 279 3 "max" }{TEXT -1 5 " and " }{TEXT 280 3 "min" }{TEXT -1 31 ", as in the following examples:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "max(sequence2);\nmin(sequence2);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 28 "Note that \+ the solution to a " }{TEXT 370 5 "solve" }{TEXT -1 51 " command as in \+ the following example is given as a " }{TEXT 371 8 "sequence" }{TEXT -1 58 ". We name it so we can manipulate the different solutions:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "p:=x^3-60*x^2 + 1100*x - 600 0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "sequence3:=solve(p=0, x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "sequence3[1]; " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "sequence3[2];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "sequence3[3];" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 13 "The function " }{TEXT 273 3 "seq" }{TEXT -1 280 " \+ is a very important way to form sequences. It can be used to do many t hings that can be done with do loop and when that's possible should be done. Generally this is a faster way to go. For example, if we wish t o apply some function f to the numbers -1, 2, 3,4,5, ..10 we can use \+ " }{TEXT 281 3 "seq" }{TEXT -1 12 " as follows:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 30 "sequence4:=seq(f(i),i=-1..10);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 16 "For example, if " }{XPPEDIT 18 0 "f(x) = \+ x^2;" "6#/-%\"fG6#%\"xG*$F'\"\"#" }{TEXT -1 9 " we have:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "sequence4:=seq(i^2,i=-1..10);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 146 "We could also form this sequence \+ with the following do loop. We use s to indicate the sequence and we \+ start by setting s to be the NULL sequence:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "s:=NULL:\nfor i from -1 to 10 do\n s:=s,i^2:\nend do:\nsequence4:=s;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "In Maple i thprime(i) is the i-th prime number. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "ithprime(1);\nithprime(2);\nithprime(3); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "We can get a sequence consisting of the f irst 20 primes by the following method:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "sequence5:=seq(ithpr ime(k),k=1..15);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "One can " } {TEXT 272 11 "concatenate" }{TEXT -1 23 " sequences as follows:\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "sequence4;\nsequence5;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "sequence6:=sequence4,sequenc e5;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 27 "A simpler example would be :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "seqA:=a,b,c;\nseqB:=x, y,z,w;\nseqC:=seqA,seqB,seqA;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "sequence7:=a,b,c,d,e,f,g,h;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 74 "One can select more than one element of a sequence at a time. For \+ example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "sequence7[2..4] ;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 42 "To get the first element on \+ the right use:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "sequence7 [-1];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 45 "To get the second elemen t from the right use:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "sequence7[-2];" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 38 "We can use this to reverse a sequence:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "S1:=seq(i,i=1..7);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "S2:=seq(S1[-i],i=1..7);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "The empty sequence is given by " }{TEXT 271 8 "NULL -- " }{TEXT 282 23 "as we aready say above." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "S3:=NULL;\n\nS4:=x,x,S3,y;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 " " {TEXT -1 5 "Sets " }{TEXT 284 39 "(union, intersect, nops, minus, me mber)" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "One can obtain a " } {TEXT 289 3 "set" }{TEXT -1 8 " from a " }{TEXT 290 8 "sequence" } {TEXT -1 109 " by placing braces around it. We illustrate this below. \+ We also illustrate some basic set operations such as " }{TEXT 287 40 " union, intersect, minus, nops and member" }{TEXT -1 2 ". " }{TEXT 288 79 "Note, however, that the user has no control over the order of elem ents of a set" }{TEXT -1 89 ". To control the order of elements we mus t use sequences or lists --as we will see below:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "set1:=\{4,3,3,2,1\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "set2:=\{4,4,5,5,6\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "set3:=set1 union set2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "set4:=set1 intersect set2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "set5:=set1 minus set2;" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 21 "Z[10]:=seq(i,i=0..9);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "set6:=\{Z[10]\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "seq(x^j-1,j=1..5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "set7:=\{seq(x^j-1,j=1..5)\};" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 4 "The " }{TEXT 292 9 "empty set" }{TEXT -1 19 " is denote d by \{\};\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "\{1,2,3\} i ntersect \{4,5,6\};" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 285 4 "nops" } {TEXT -1 49 " is used to find the number of elements in a set:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "nops(set7);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "nops(\{\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 33 "Note that nops will not work for " }{TEXT 291 9 "seque nces" }{TEXT -1 1 "!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "nop s(1,2,3,4);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 4 "But " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "nops(\{1,2,3,4\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 286 "If S is a set then S[i] is the i-th elem ent of the set, but you have no way of knowing what order Maple assign s to the elements of the set S. And the order may change in a single w orksheet session. So do NOT make any assumptions about the order even \+ if you see the order on the monitor." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "set7;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "fo r i from 1 to nops(set7) do i,set7[i]; end do;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 286 10 "Membership" }{TEXT -1 31 " in a set is tested as fo llows:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "set7;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "member(x^2-1,set7);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "member(x,set7);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "if member(x,set7) = false then set7:=set7 u nion \{x\}; end if;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 6 "Lists " }{TEXT 293 43 "(sort, \+ nops, op, concatenation of lists)" }}{EXCHG {PARA 0 "" 0 "" {TEXT 297 5 "Lists" }{TEXT 300 1 " " }{TEXT -1 68 "may be formed by placing \+ a sequence in square brackets, as follows: " }{TEXT 299 36 "In this ca se order is all important." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "List1:=[4,0,2,2,3,1,4];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 301 5 "sort " }{TEXT -1 58 " is useful for rearranging a list in non-decreasing order." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "s ort(List1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 296 4 "nops" }{TEXT -1 43 "(List1) gives the length of the list List1:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 15 "N:=nops(List1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 22 "Compare the following:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "nops([1,3,3,3,3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "nops(\{1,3,3,3,3\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 20 "The i-th element in " }{TEXT 302 5 "List1" }{TEXT -1 13 " is given by " }{TEXT 303 9 "List1[i]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "for i from 1 to N do i,List1[i]; end do;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "List1[2..4];" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 28 "List1;\nList1[-1];\nList1[-2];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 3 "To " }{TEXT 298 11 "concatenate" }{TEXT -1 81 " lists we need to first recover the underlying sequence by appl ying the function " }{TEXT 295 2 "op" }{TEXT -1 49 ". This also works \+ for sets, as we now illustrate:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "List1; \nop(List1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "set1;\nop(set1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "Lis t1;\nList2:=[x,y,z];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Lis t3:=[op(List1),op(List2)];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "List4:=[op(List3),`a new element`];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 4 "The " }{TEXT 294 10 "empty list" }{TEXT -1 20 " is denoted by [ ] ;" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 97 "Let's make a list of the primes numbers up to 100: We wil l put them in a list we will call List5:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "List5:=[]:\nfor i from 1 to 100 do\nif isprime(i) the n List5:=[op(List5),i]; fi;\nod;\nList5;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 46 "Another way to create this list is as follows:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 76 "seq5:=NULL:\nfor i from 1 to 100 do\nif ispr ime(i) then seq5:=seq5,i; fi;\nod;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "seq5;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "Li st5:=[seq5];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 194 "As mentioned abo ve one can also select elements of a list in reverse order. For exampl e, the last element of the list List is found by List[-1]. The second \+ from last is given by List[-2], etc..." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "List:=[seq(i, i=1..10)];\na:=List[-1];\nb:=List[-2]; \nc:=List[-3];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 38 "We can obtain t he reverse of the list " }{TEXT 304 4 "List" }{TEXT -1 18 " above as f ollows:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "revList:=[seq(Li st[-i],i=1..10)];" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 48 "Converting from list to set and from set to list" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 67 "One can convert lists to sets and vice versa by using the function " }{TEXT 305 7 "convert" }{TEXT -1 1 ":" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "L:=[1,1,1,2,3];\nA:=convert(L, set);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "B:=\{1,2,3,4,5\};\nLL:=convert(B,li st);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 20 "We can convert from " } {TEXT 306 3 "set" }{TEXT -1 5 " and " }{TEXT 307 4 "list" }{TEXT -1 4 " to " }{TEXT 308 8 "sequence" }{TEXT -1 11 " by use of " }{TEXT 309 2 "op" }{TEXT -1 16 " as shown above:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "op(L);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "op (B);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 20 " round, floor, ceil" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 3 "" 0 "" {TEXT 372 5 "r ound" }{TEXT 30 2 " (" }{TEXT 378 1 "x" }{TEXT 30 3 ") -" }{TEXT 377 23 " the nearest integer to" }{TEXT 30 1 " " }{TEXT 380 1 "x" }}{PARA 3 "" 0 "" {TEXT 373 9 "floor(x) " }{TEXT 30 3 " - " }{TEXT 375 20 "the largest integer " }{XPPEDIT 18 0 "n <= x;" "6#1%\"nG%\"xG" }{TEXT -1 1 "." }}{PARA 3 "" 0 "" {TEXT 374 4 "ceil" }{TEXT 30 1 "(" }{TEXT 379 1 "x" }{TEXT 30 4 ") - " }{TEXT 376 33 "the smallest integer n such th at " }{XPPEDIT 18 0 "x <= n;" "6#1%\"xG%\"nG" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 23 "Here are some e xamples:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L:=[-3.4,-3.6, 3.6,3.5, 3.4, 3.5, 3, -3]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 126 "for x in L do\nprint(`if x = `, x \+ , ` round(x) = `, round(x), ` floor(x) = `, floor(x), ` ceil(x) = `, ceil(x));\nend do;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 76 "Somet imes one must apply evalf before invoking these functions. For example :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "floor(sin(10^8));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "floor(sin(10^10));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "floor(evalf(sin(10^10)));" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "floor(sqrt(10^9 + 1));" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "floor(sqrt(10^10 + 1));" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "floor(evalf(sqrt(10^10+1))) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "floor(evalf(sqrt(10^10 0 + 1)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 14 "The Digits of " }{XPPEDIT 18 0 "pi;" "6#% #piG" }{TEXT -1 1 " " }}{EXCHG {PARA 256 "" 0 "" {TEXT 317 140 "Here w e write a procedure to explore the question of whether or not the digi ts 0 to 9 are uniformly distributed among the first N digits of " } {XPPEDIT 319 0 "pi;" "6#%#piG" }{TEXT -1 0 "" }{TEXT 318 1 "." }{TEXT -1 1 "\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 16 "Use the command " } {TEXT 310 13 "?convert/base" }{TEXT -1 37 " to find out more about the function " }{TEXT 311 7 "convert" }{TEXT -1 25 " used below. Actuall y, " }{TEXT 312 7 "convert" }{TEXT -1 60 " has many uses in maple, as we will see later in the course." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 313 6 "Digits" }{TEXT -1 129 " is an \"en vironmental\" variable that tells how many digits are carried in float ing point operations. The default is 10 as we see:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "Digits;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " evalf(Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "n:=3: \nDigit s:=n; " }{TEXT -1 66 "This sets the number of digits carried by floati ng point numbers. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "X:=evalf(Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "10^(n-1)*X;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "X:=floor(10^(n-1)*X); " }{TEXT -1 51 "This converts X to an inte ger with the same digits." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "X:=convert(X,base, 10); " }{TEXT -1 178 "Note the digits appear in reversed order, but they are now in a list which makes them easier to handle. There are alternative ways to get at the digits that we may d iscuss later." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 51 "Let's do this ag ain with n = 100 instead of just 3:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "n:=100:\nDigits:=n;\nX:=ev alf(Pi,n);\nX:=floor(10^(n-1)*X);\nX:=convert(X,base, 10);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "nops(X);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 85 "Now we shall count the number of times each digit appears in the first 100 digits of " }{XPPEDIT 18 0 "Pi;" "6#%#PiG" }{TEXT -1 142 ". We will let c[0] be the number of times 0 appears, c[1] be t he number of times 1 appears, etc... First we initialize 10 variables \+ c[i] to 0." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "for i from 0 \+ to 9 do c[i]:=0; od;" }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 54 "for k from 1 to n do\n j:=X[k]; \n c[j]:=c[j ] + 1;\nod:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "[seq(c[j],j= 0..9)];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 78 "Another way to do the \+ countinng is as follows: First set the c[i]'s back to 0:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "for i from 0 to 9 do c[i]:=0; od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "for k from 1 to n do \n \+ c[X[k]]:=c[X[k]] + 1;\nod:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "[seq(c[j],j=0..9)];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 104 "Now w e construct a procedure to compute the number of times each digit appe ars in the first n digits of " }{XPPEDIT 18 0 "Pi;" "6#%#PiG" }{TEXT -1 113 ". Before constructing the procedure we do it step by step for \+ a small value of n so we can see what is happening." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "restart:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "n:=40;\nDigits:=n;\nX:=evalf(Pi,n);\nX:=floor(10^(n-1 )*X);\nX:=convert(X,base, 10);\n \n \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "for i from 0 to 9 do c[i]:=0; end do:\n " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "for k from 1 to n do\n j:=X[k]; \+ \n c[j]:=c[j] + 1;\nend do:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "[seq(c[j],j=0..9)];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 34 "Now \+ we make this into a procedure:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 252 "numdigits:=proc(n)\nlocal X,c,i,k,j;\n Digits:=n:\n X:=eval f(Pi,n):\n X:=floor(10^(n-1)*X):\n X:=convert(X,base, 10):\n for i \+ from 0 to 9 do c[i]:=0; end do:\n for k from 1 to n do\n j:=X[k]; \+ \n c[j]:=c[j] + 1;\n end do:\n [seq(c[j],j=0..9)];\nend proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "numdigits(100);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "numdigits(1000);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "numdigits(10000);" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 15 "At the webpage " }}{PARA 0 "" 0 "" {TEXT -1 3 " " }}{PARA 259 "" 0 "" {TEXT 315 59 "http://ww w.cs.ruu.nl/wais/html/na-dir/sci-math-faq/pi.html " }{TEXT -1 0 "" } {TEXT 314 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 93 "you can find out how mathematicians have been able to com pute the first 51 billion digits of " }{XPPEDIT 18 0 "Pi;" "6#%#PiG" } {TEXT -1 125 ". Maple will not be able to do this using the method we \+ have just described. More sophisticated techniques are necessary. At \+ " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 259 "" 0 "" {TEXT 316 42 "ht tp://mathworld.wolfram.com/PiDigits.html" }{TEXT -1 1 " " }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 89 "you will also see \+ some data on the distribution of the digits 0-9 in the known digits of " }{XPPEDIT 18 0 "pi;" "6#%#piG" }{TEXT -1 113 ". It appears to be tr ue that the digits appear with approximately equal frequency--but this has not been proved. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 30 "Assignment 3 - Due Next Monday " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT 328 10 "Problem 1." }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 62 "(a) Prove that every prime p greater tha n 2 satisfies either " }{TEXT 327 11 "p mod 8 = r" }{TEXT -1 127 " whe re r is 1, 3, 5, or 7. Thus primes > 2 may be divided into four classe s depending on their remainders when divided by 8. " }{TEXT 344 99 " No Maple calculations are necessary here, but write out your proof usi ng Maple as a word processor." }{TEXT -1 2 " " }{TEXT 321 6 "HINT: " }{TEXT -1 24 "Can p > 2 be a prime if " }{TEXT 320 12 "p mod 8 = r" } {TEXT -1 65 " when r = 0, 2, 4 or 6? (Take each case separately.) No te that " }{TEXT 330 12 "p mod 8 = r" }{TEXT -1 12 " means that " } {TEXT 331 10 "p = 8q + r" }{TEXT -1 7 " where " }{TEXT 332 30 "r = 0, \+ 1, 2, 3, 4, 5, 6, or 7." }{TEXT -1 3 ". \n" }}{PARA 0 "" 0 "" {TEXT -1 9 "(b) Set " }{TEXT 333 6 "N:=100" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 96 " (i) Form four lists L[r] for r = 1,3,5,7 where \+ L[r] contains all primes 2< p < N such that " }{TEXT 329 11 "p mod 8 = r" }{TEXT -1 3 " . " }}{PARA 0 "" 0 "" {TEXT -1 63 " (ii) Using Ma ple count the number of primes in each list.\n\n" }{TEXT 322 10 "Probl em 2." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 88 " In the notation of Problem 1, make a procedure with input = arbitrary \+ positive integer " }{TEXT 334 1 "N" }{TEXT -1 23 " and output = the l ist " }{TEXT 326 48 "[nops(L[1]), nops(L[3]), nops(L[5]), nops(L[7])] " }{TEXT -1 2 ". " }{TEXT 325 67 "Do some experiments to see for which (if any) r, L[r] is largest. ." }{TEXT -1 15 " [According to " } {TEXT 323 56 "Dirichlet's Theorem on Primes in Arithmetic Progressions " }{TEXT -1 13 " the numbers " }{TEXT 324 10 "nops(L[r])" }{TEXT -1 38 " will be asymptotically the same.] \n\n" }{TEXT 335 3 "(a)" } {TEXT -1 29 " Test your procedure on some " }{TEXT 336 5 "small" } {TEXT -1 13 " values of N " }{TEXT 337 52 "where you can check by hand if the answer is correct" }{TEXT -1 3 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 338 3 "(b)" }{TEXT -1 64 " Then try it on some larger values of N. Try, for example, N = " }{XPPEDIT 18 0 " 10^i;" "6#)\"#5%\"iG" }{TEXT -1 16 ", i = 2,3,4, 5." }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT 342 10 "Problem 3." } {TEXT -1 3 " \n " }}{PARA 0 "" 0 "" {TEXT -1 82 "(a) Write a procedure whose input is a positive integer n and whose output is the " }{TEXT 386 4 "set " }{TEXT -1 74 "of all squares of positive integers less th an or equal to n. Write it in " }{TEXT 387 18 "two different ways" } {TEXT -1 12 ". (i) using " }{TEXT 384 3 "seq" }{TEXT -1 18 " and (ii) \+ using a " }{TEXT 385 7 "do loop" }{TEXT -1 54 ". Show output for n = 4 , 10, 20, 100 and 1000. [Hint: " }{XPPEDIT 18 0 "i^2 <= n;" "6#1*$%\"i G\"\"#%\"nG" }{TEXT -1 18 " is equivalent to " }{XPPEDIT 18 0 "i <= sq rt(n);" "6#1%\"iG-%%sqrtG6#%\"nG" }{TEXT -1 3 ".]\n" }}{PARA 0 "" 0 " " {TEXT -1 22 "(b) Write a procedure " }{TEXT 390 6 "genseq" }{TEXT -1 55 " whose input is the integer n. and whose output is the " } {TEXT 388 4 "list" }{TEXT -1 22 " of all integers 7*i " }{TEXT 381 4 " mod" }{TEXT -1 112 " 11 for i from 1 to n. Note that each of these \+ integers will be in the set \{0, 1, 2, . . . , 10\}. Write it in " } {TEXT 389 18 "two different ways" }{TEXT -1 11 " (i) using " }{TEXT 382 3 "seq" }{TEXT -1 18 " and (ii) using a " }{TEXT 383 7 "do loop" } {TEXT -1 42 ". Test each procedures for n = 11 and 110." }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 343 10 "Problem 4." }{TEXT -1 3 " \n" }}{PARA 0 "" 0 "" {TEXT -1 65 "(a) Write a procedure that will take as input a positive intege r " }{TEXT 393 1 "n" }{TEXT -1 30 " and whose output will be the " } {TEXT 399 4 "list" }{TEXT -1 1 " " }{TEXT 394 27 "[c[0], c[1], . . . , c[10]]" }{TEXT -1 7 " where " }{TEXT 395 4 "c[i]" }{TEXT -1 51 " is t he number of times that i appears in the list " }{TEXT 391 9 "genseq(n )" }{TEXT -1 7 " where " }{TEXT 392 6 "genseq" }{TEXT -1 183 " is as d escribed in Problem 3. Test the procedure for n = 100, 1000 and 1000 0. Do the numbers 0, 1, . . ., 10 appear to be equally distributed?\n \n(b) In the procedure genseq replace " }{TEXT 396 10 "7*i mod 11" } {TEXT -1 4 " by " }{TEXT 397 10 "8*i mod 22" }{TEXT -1 47 ". The repea t the instructions in part (a) with " }{TEXT 398 69 "[c[0], c[1], . . \+ . , c[10]] replaced by [c[0], c[1], . . . , c[21]]. " }{TEXT -1 65 "Do the numbers 0, 1, . . ., 21 appear to be equally distributed? " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 257 "" 0 "" {TEXT -1 0 "" }}{PARA 19 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 0 "" 0 " " {TEXT -1 1 "\n" }}}}{MARK "10" 0 }{VIEWOPTS 0 0 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 1 1 2 33 1 1 }