{VERSION 6 0 "IBM INTEL LINUX" "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 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 "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 0 1 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 0 1 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 0 1 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 0 1 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 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 271 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 276 "" 1 14 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 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 281 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 286 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 287 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 289 "" 1 14 0 0 0 0 0 0 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 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 292 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 293 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 294 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 295 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 296 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 297 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 298 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 299 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 300 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 301 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{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 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 306 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 307 "" 0 1 0 0 0 0 1 0 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 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 311 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 312 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 313 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 314 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 315 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 316 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 317 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 318 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 319 "" 0 1 0 0 0 0 0 1 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 0 } {CSTYLE "" -1 321 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 322 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 323 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 324 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 325 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 326 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 327 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 331 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 332 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 333 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 334 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 335 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 336 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 337 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 338 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 339 "" 0 1 0 0 0 0 1 0 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 0 }{CSTYLE "" -1 343 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 344 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 345 "" 0 1 0 0 0 0 1 0 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 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 354 "" 0 1 0 0 0 0 1 0 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 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Headi ng 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "W arning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 0 } 0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 1 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 23 "MAPLE Notes for MATH 40" }}}{EXCHG {PARA 256 "" 0 "" {TEXT -1 122 "Michael Monagan\nDepartment \+ of Mathematics and Statistics\nSimon Fraser University\nAugust, 1998. \nUpdated August, 2002, 2008." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 256 "These notes are for Maple 9. They are platform independent, i.e., they are the same \+ for the Macintosh, PC, and Unix versions of Maple. These notes should be backwards compatible with Maple 7, Maple 8, and forwards compatibl e with Maple 10 and Maple 11. " }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 21 "Maple as a Calculator" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 141 "Inpu t of a numerical calculation uses +, -, *, /, and ^ for addition, subt raction, multiplication, division, and exponentiation respectively." } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "1+2*3-2;" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#\"\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "2^ 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "120/105;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6##\"\") \"\"(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 252 "Because the input invol ved integers, not decimal numbers, Maple calculates the exact fraction when there is a division, automatically cancelling out the greatest c ommon divisor (GCD). In this case the GCD is 15, which you can calcul ate specifically as" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "igcd (120,105);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 230 "Observe that every command ends with a semicolon ; This is a gramatical requirement of Maple. If you forget, Maple \+ will assume that the comand is not complete. This allows you to break long commands across a line. For example" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 6 "1+2*3/" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "(2+3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6##\"#6\"\"&" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 373 "We are not going to use decimal numbers in MATH 340 as all the calculations that we do will involve integers and polynomials with integer coefficients. However, here is how you would do some de cimal calculations. The presence of a decimal point . in a number me ans that the number is a decimal number and Maple will, by default, do all calculations to 10 decimal places." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "120/105.0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+Vr& G9\"!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "sqrt(2.0);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+iN@99!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "sqrt(2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*$\" \"##\"\"\"F$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 135 "Notice the diffe rence caused by the presence of a decimal point in these examples. No w, if you have input an exact quantity, like the " }{XPPEDIT 18 0 "sqr t(2);" "6#-%%sqrtG6#\"\"#" }{TEXT -1 166 " above, and you now want to get a numerical value, use the evalf command to evaluate to floating \+ point. Use the % character to refer to the previous Maple output. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evalf(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+iN@99!\"*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "To input a formula, just use a symbol, e.g. " }{XPPEDIT 18 0 "x;" "6#%\"xG" }{TEXT -1 107 " and the arithmetic operators and functions k nown to Maple. For example, here is a quartic polynomial in " } {XPPEDIT 18 0 "x;" "6#%\"xG" }{TEXT -1 2 " ." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "x^4-3*x+2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,( *$)%\"xG\"\"%\"\"\"F(*&\"\"$F(F&F(!\"\"\"\"#F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 89 "We are going to use this polynomial for a few calcul ations. We want to give it the name " }{XPPEDIT 18 0 "f;" "6#%\"fG" } {TEXT -1 92 " so we can refer to it later. We do this using the assig nment operation in Maple as follows" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "f := x^4-3*x+2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"fG,(*$)%\"xG\"\"%\"\"\"F**&\"\"$F*F(F*!\"\"\"\"#F*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 9 "The name " }{XPPEDIT 18 0 "f;" "6#%\"fG" }{TEXT -1 69 " is now a variable. It refers to the polynomial. Here is it's value" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "f;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%\"xG\"\"%\"\"\"F(*&\"\"$F(F&F(!\"\"\"\"#F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "To evaluate this as a function \+ at the point " }{XPPEDIT 18 0 "x = 3;" "6#/%\"xG\"\"$" }{TEXT -1 32 " \+ use the eval command as follows" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "eval(f,x=3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#u" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 37 "The following commands differentia te " }{TEXT 257 2 "f " }{TEXT -1 16 "with respect to " }{TEXT 258 2 "x " }{TEXT -1 11 "and factor " }{TEXT 256 1 "f" }{TEXT -1 138 " into ir reducible factors over the field of rational numbers and compute 10 di git numerical approximations to the real roots respectively." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "diff(f,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*&\"\"%\"\"\")%\"xG\"\"$F&F&F)!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(f);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&%\"xG\"\"\"F&!\"\"F&,**$)F%\"\"$F&F&*$)F%\"\"#F&F&F %F&F.F'F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "fsolve(f=0,x); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6$$\"+QrN0\")!#5$\"+++++5!\"*" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 79 "You can graph functions using the \+ plotting commands. The basic syntax for the " }{TEXT 259 4 "plot" } {TEXT -1 67 " command for a function of one variable is illustrated as follows: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "plot(f,x=0.5..1.5);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 104 "In the graph I can see a local minimum near x=0.9. \+ We can find this point using calculus. The command " }{TEXT 352 6 "f solve" }{TEXT -1 40 "( f(x)=0, x ), on input of a polynomial " }{TEXT 353 4 "f(x)" }{TEXT -1 66 " computes 10 digit numerical approximations for the real roots of " }{TEXT 354 4 "f(x)" }{TEXT -1 1 "." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "fsolve(diff(f,x)=0,x);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+kHg&3*!#5" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 172 "We have used the name f as variable to refer to formu lae and the symbols x for an uknown in a formula. Often you will h ave assigned to a name like we have done here to " }{XPPEDIT 18 0 "f; " "6#%\"fG" }{TEXT -1 34 " but you want now to use the name " } {XPPEDIT 18 0 "f;" "6#%\"fG" }{TEXT -1 87 " as a symbol again, not as \+ a variable. You can unassign the value of a name as follows" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "f;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%\"xG\"\"%\"\"\"F(*&\"\"$F(F&F(!\"\"\"\"#F(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "f := 'f';" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"fGF$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "f;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%\"fG" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 55 "Let's use the sum command to find the sum of the first \+ " }{XPPEDIT 18 0 "n;" "6#%\"nG" }{TEXT -1 27 " positive integers, name ly," }{XPPEDIT 18 0 "sum(k,k = 1 .. n) = 1+2+`...`+n;" "6#/-%$sumG6$% \"kG/F';\"\"\"%\"nG,*F*F*\"\"#F*%$...GF*F+F*" }{TEXT -1 59 ". The com mand sum( f(i), i=m..n ) computes the sum for us." }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 22 "f := sum( k, k=1..n );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,(*&\"\"#!\"\",&%\"nG\"\"\"F+F+F'F+*&F'F(F*F+F(#F +F'F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "I don't recognize that a nswer. Do you? Let's try to simplify it." }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 12 "expand( f );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&* &#\"\"\"\"\"#F&*$)%\"nGF'F&F&F&*&F%F&F*F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "factor( f );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$ *(\"\"#!\"\"%\"nG\"\"\",&F'F(F(F(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 119 "We will give a more detailed description of what the exp and and factor commands do in the section on polynomials below." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 " " {TEXT -1 8 "Integers" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 363 "Here ar e some commands which do integer calculations that we will use in the \+ course. Integers in Maple are not limited to the precision of the har dware on your computer. They are limited by an internal limit of Mapl e to approximately half a million digits. Any calculations that you d o with large integers though will take longer for larger integers. He re is " }{XPPEDIT 18 0 "2^100;" "6#*$\"\"#\"$+\"" }{TEXT -1 2 " ." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "2^100;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"@w`?.n\\,%H#G-g]wE\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 156 "The command irem(a,b) computes the integer remainder of \+ a divided by b. The command iquo(a,b) computes the integer quotient o f a divided by b. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "a := 20;\nb := 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"# ?" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG\"\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "r := irem(a,b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "q := i quo(a,b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG\"\"#" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 28 "It should be the case that " }{TEXT 260 12 "a = b q + r " }{TEXT -1 14 ". Let's check" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 12 "a = b*q + r;" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#/\"#?F$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 134 "The commands igcd(a ,b) and ilcm(a,b) compute the greatest common divisor and least common multiple of integers a and b, respectively. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "igcd(6,4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" \"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "ilcm(6,4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#7" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "The command " }{TEXT 261 6 "igcdex" }{TEXT -1 1 "(" }{TEXT 262 11 "a ,b,'s','t'" }{TEXT -1 12 ") outputs " }{XPPEDIT 18 0 "g = GCD(a,b); " "6#/%\"gG-%$GCDG6$%\"aG%\"bG" }{TEXT -1 21 " . It also assigns " } {XPPEDIT 18 0 "s,t;" "6$%\"sG%\"tG" }{TEXT -1 35 " integers satisfyin g the equation " }{XPPEDIT 18 0 "s*a+t*b = g;" "6#/,&*&%\"sG\"\"\"%\"a GF'F'*&%\"tGF'%\"bGF'F'%\"gG" }{TEXT -1 17 " and satisfying " } {XPPEDIT 18 0 "abs(s) < abs(b);" "6#2-%$absG6#%\"sG-F%6#%\"bG" }{TEXT -1 6 " and " }{XPPEDIT 18 0 "abs(t) < abs(a);" "6#2-%$absG6#%\"tG-F%6 #%\"aG" }{TEXT -1 77 " . So this command implements the extended Eucl idean algorithm. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "g := igcdex(3,5,'s','t');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"gG\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "s;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "t;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "s*3+t*5;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# \"\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 12 "The command " }{TEXT 263 7 "isprime" }{TEXT -1 1 "(" }{TEXT 264 1 "n" }{TEXT -1 19 ") outpu ts false if " }{TEXT 265 1 "n" }{TEXT -1 26 " is composite and true if " }{TEXT 266 1 "n" }{TEXT -1 24 " is prime. The command " }{TEXT 267 7 "ifactor" }{TEXT -1 1 "(" }{TEXT 268 1 "n" }{TEXT -1 64 ") compu tes the integer factorization of an integer. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "isprime(997);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "i sprime(1001);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "ifactor(1001);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*(-%!G6#\"\"(\"\"\"-F%6#\"#6F(-F%6#\"#8F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 162 "Now, if you are not sure what a command \+ does, or how to use it, you can use Maple's on-line help system. You \+ input ?command and then a return. Try the following" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "?isprime" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "?ifactor" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 286 "You \+ should get a window with some information about the command and how to use it. Almost all of the on-line help files have examples. If you \+ don't know the name of the command, you can use the help browser to se arch for the command - see the Help menu at the top right of the windo w." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 78 "For the RSA cryptosystem we need large primes, 100 digit primes. The command " }{TEXT 348 9 "nex tprime" }{TEXT -1 91 "(n) outputs the first prime greater than or equa l to n. Here is the first 100 digit prime." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "nextprime(10^100);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"`qn-++++++++++++++++++++++++++++++++++++++++++++++++\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 " " {TEXT -1 5 "Loops" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 232 "To do a se quence of calculations it will be handy to know how to use some of Map le's looping commands and also the if command. To execute a command i n Maple conditionally use the if command which has either of the follo wing forms\n\n" }{TEXT 279 4 " " }{TEXT 286 2 "if" }{TEXT 287 13 " \+ " }{TEXT 280 4 "then" }{TEXT 288 14 " " } {TEXT 281 4 "else" }{TEXT 289 14 " " }{TEXT 282 2 "fi" } {TEXT 290 1 "\n" }{TEXT -1 14 "\nor just\n\n " }{TEXT 283 2 "if" } {TEXT 291 13 " " }{TEXT 284 4 "then" }{TEXT 292 14 " " }{TEXT 285 3 "fi\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "if 2>1 then print(good) else print(bad) fi;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%goodG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 112 "To exe cute one or more statements zero or more times in a loop use the for c ommand. It has the following form\n\n" }{TEXT 272 4 " " }{TEXT 293 3 "for" }{TEXT 294 12 " " }{TEXT 273 4 "from" }{TEXT 295 9 " " }{TEXT 274 2 "to" }{TEXT 296 7 " " }{TEXT 275 2 "do" }{TEXT 297 14 " " }{TEXT 276 3 "od\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "for i from 1 to 5 do i^2; od;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#D" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 93 "To execute some statements while a condition is true use the while loop. It has the syntax\n\n" }{TEXT 269 5 " " }{TEXT 298 5 "while" }{TEXT 299 13 " " } {TEXT 270 2 "do" }{TEXT 300 14 " " }{TEXT 271 3 "od " } {TEXT 301 2 "\n\n" }{TEXT -1 82 "In the following example we repeatedl y subtract b from a to compute the remainder." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "a := 26;\nb := 10;\nr := a;\nwhile r >= b do r : = r-b; od;\nr;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"#E" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%\"rG\"#E" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG\"#;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 "Here is a loop to cal culate the GCD of two integers " }{XPPEDIT 18 0 "a;" "6#%\"aG" }{TEXT -1 5 " and " }{XPPEDIT 18 0 "b;" "6#%\"bG" }{TEXT -1 110 " using Eucli d's algorithm. Notice that this loop has three statements in the body of the loop - between the " }{TEXT 277 3 "do " }{TEXT -1 4 "... " } {TEXT 278 2 "od" }{TEXT -1 111 ", each of which is terminated by a sem icolon. You don't have to put them on the same line as I have done he re." }}}{EXCHG }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "a := 26;\nb \+ := 20;\nwhile b <> 0 do\n r := irem(a,b); a := b; b := r;\nod;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"#E" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG\"#?" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG\" \"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"#?" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG\" \"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"\"'" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"bG\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG \"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 " Thus 4 should be the GCD(64,20). A check with Maple" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "igcd(64,20);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 120 "As anoth er example of a loop, this time using subscripts and formatting print \+ statements.\nFirst we clear the value of r." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "r := 'r';" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 240 "r[0] := 142:\nr[1] : = 102:\ni := 1:\nwhile r[i] <> 0 do\n r[i+1] := irem(r[i-1],r[i],'q ');\n i := i+1;\n printf(\" q[%d]=%d r[%d]=%d \\n\", i, q, i , r[i] );\nod:\ng := r[i-1]:\nprintf(\" Therefore the gcd(%d,%d) is \+ %d \\n\", r[0],r[1],g );" }}{PARA 6 "" 1 "" {TEXT -1 20 " q[2]=1 \+ r[2]=40 " }}{PARA 6 "" 1 "" {TEXT -1 20 " q[3]=2 r[3]=22 " }} {PARA 6 "" 1 "" {TEXT -1 20 " q[4]=1 r[4]=18 " }}{PARA 6 "" 1 "" {TEXT -1 19 " q[5]=1 r[5]=4 " }}{PARA 6 "" 1 "" {TEXT -1 19 " q[ 6]=4 r[6]=2 " }}{PARA 6 "" 1 "" {TEXT -1 19 " q[7]=2 r[7]=0 " }} {PARA 6 "" 1 "" {TEXT -1 36 " Therefore the gcd(142,102) is 2 " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 " " {TEXT -1 18 "Modular Arithmetic" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 129 "Modular arithmetic is done using the mod operator in Maple. By default, Maple uses the positive range for the integers modulo " } {XPPEDIT 18 0 "m;" "6#%\"mG" }{TEXT -1 49 ", that is, the result is ca lculated in the range " }{XPPEDIT 18 0 "0 .. m-1;" "6#;\"\"!,&%\"mG\" \"\"F'!\"\"" }{TEXT -1 3 ". \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "12 mod 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "2+3*3 mod 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 11 "To comput e " }{XPPEDIT 18 0 "a^(-1);" "6#)%\"aG,$\"\"\"!\"\"" }{TEXT -1 4 "mod \+ " }{XPPEDIT 18 0 "m;" "6#%\"mG" }{TEXT -1 36 ", you can do either of t he following" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "2^(-1) mod \+ 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "1/2 mod 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\" %" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 11 "To compute " }{XPPEDIT 18 0 "a^n;" "6#)%\"aG%\"nG" }{TEXT -1 5 " mod " }{XPPEDIT 18 0 "m;" "6#%\"m G" }{TEXT -1 18 " you can do either" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "2 ^ 200 mod 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" \"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "2 &^ 200 mod 7;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 71 "Use the latter. The difference is that in the first case , the integer " }{XPPEDIT 18 0 "2^200;" "6#*$\"\"#\"$+#" }{TEXT -1 34 " was computed then reduced modulo " }{XPPEDIT 18 0 "m;" "6#%\"mG" } {TEXT -1 57 " . In the second case, all products were reduced modulo \+ " }{XPPEDIT 18 0 "m;" "6#%\"mG" }{TEXT -1 31 " so no large integers o ccured." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 97 "We will use a loop to \+ verify that Fermat's (little) theorem holds for p = 13 but not for n \+ = 14." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "p := 13;\nfor a fr om 0 to p-1 do (a^p mod p) = a od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%\"pG\"#8" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"!F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"\"F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\" #F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"$F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"%F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"&F$" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"'F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"(F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\")F$" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"*F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#5F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#6F$" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#7F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "n := 14;\nfor a from 0 to n-1 do (a^n mod p) = a od; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#9" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"!F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"\"F$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"%\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"*\"\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"$\" \"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#7\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#5\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#5\"\" (" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"#7\"\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"$\"\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"*\" #5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"%\"#6" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"\"\"#7" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"!\" #8" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "Euler's " }{XPPEDIT 18 0 "ph i;" "6#%$phiG" }{TEXT -1 52 " function is available in the number the ory package" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "with(numtheo ry);" }}{PARA 7 "" 1 "" {TEXT -1 69 "Warning, the protected name order has been redefined and unprotected\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7Q%&GIgcdG%)bigomegaG%&cfracG%)cfracpolG%+cyclotomicG%)divisorsG%)f actorEQG%*factorsetG%'fermatG%)imagunitG%&indexG%/integral_basisG%)inv cfracG%'invphiG%*issqrfreeG%'jacobiG%*kroneckerG%'lambdaG%)legendreG%) mcombineG%)mersenneG%(migcdexG%*minkowskiG%(mipolysG%%mlogG%'mobiusG%& mrootG%&msqrtG%)nearestpG%*nthconverG%)nthdenomG%)nthnumerG%'nthpowG%& orderG%)pdexpandG%$phiG%#piG%*pprimrootG%)primrootG%(quadresG%+rootsun ityG%*safeprimeG%&sigmaG%*sq2factorG%(sum2sqrG%$tauG%%thueG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "phi(12);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 11 "Polynomials" }}{EXCHG {PARA 0 " " 0 "" {TEXT -1 94 "Polynomials in Maple are simply input as formulae \+ using the arithmetic operators. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "x^4-3*x^2+12;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #,(*$)%\"xG\"\"%\"\"\"F(*&\"\"$F()F&\"\"#F(!\"\"\"#7F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 33 "is a polynomial in one variable, " } {XPPEDIT 18 0 "x;" "6#%\"xG" }{TEXT -1 68 " with integer coefficients. Here is a polynomial in two variables. " }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 31 "a := (x-y)*(x^2-y^2)*(x^3-y^3);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"aG*(,&%\"xG\"\"\"%\"yG!\"\"F(,&*$)F'\"\"#F(F(*$)F )F.F(F*F(,&*$)F'\"\"$F(F(*$)F)F4F(F*F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 68 "To multiply the factors of the polynomial out use the exp and command" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "expand(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,.*$)%\"xG\"\"'\"\"\"F(*&)F&\"\"%F() %\"yG\"\"#F(!\"\"*&F&F()F-\"\"&F(F(*&F-F()F&F2F(F/*&)F-F+F()F&F.F(F(*$ )F-F'F(F/" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 92 "To factor the polyno mial into prime factors with integer coefficients use the factor comma nd" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*(),&%\"xG\"\"\"%\"yG!\"\"\"\"$F',&F&F'F(F'F ',(*$)F&\"\"#F'F'*&F&F'F(F'F'*$)F(F/F'F'F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 88 "In MATH 340 we will only need polynomials in one variable and mostly work in the ring " }{TEXT 340 1 "Z" }{TEXT -1 2 "p[" } {TEXT 341 1 "x" }{TEXT -1 9 "] where " }{XPPEDIT 18 0 "p;" "6#%\"pG" }{TEXT -1 66 " will be a prime integer. In what follows we show opera tions for " }{TEXT 336 1 "Z" }{TEXT -1 2 "p[" }{TEXT 338 1 "x" }{TEXT -1 11 "] and also " }{TEXT 334 1 "Q" }{TEXT -1 1 "[" }{TEXT 335 1 "x" }{TEXT -1 88 "]. For help for operations for polynomials see ?polynomi al. For help for operations in " }{TEXT 337 1 "Z" }{TEXT -1 2 "p[" } {TEXT 339 1 "x" }{TEXT -1 36 "] see ?mod.\nHere are two polynomials" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "a := 2*x^6-3*x^5+3*x+3;" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG,**&\"\"#\"\"\")%\"xG\"\"'F(F(* &\"\"$F()F*\"\"&F(!\"\"*&F-F(F*F(F(F-F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "b := 3*x^4-4*x^3+1;" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%\"bG,(*&\"\"$\"\"\")%\"xG\"\"%F(F(*&F+F()F*F'F(!\"\"F(F(" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 12 "The command " }{TEXT 349 4 "eval" }{TEXT -1 67 "( a(x), x=k ) evaluates the polynomial a(x) at x = k. T he command " }{TEXT 350 4 "Eval" }{TEXT -1 11 "( a, x=k ) " }{TEXT 351 3 "mod" }{TEXT -1 36 " p does this modulo p . For example" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "eval( a, x=2 );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#T" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "Eval( a, x=2 ) mod 7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 76 "Here is how we can tabulate the v alues of this polynomial for all values in " }{XPPEDIT 18 0 "Z[7];" "6 #&%\"ZG6#\"\"(" }{TEXT -1 39 ". We conclude that a(x) has no roots. \+ " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "for k from 0 to 6 do Ev al(a,x=k) mod 7 od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" \"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "The command " }{TEXT 302 6 "expand" }{TEXT -1 1 "(" } {TEXT 307 3 "a*b" }{TEXT -1 30 ") multiplies out the product " } {XPPEDIT 18 0 "a*b;" "6#*&%\"aG\"\"\"%\"bGF%" }{TEXT -1 15 ". The com mand " }{TEXT 303 6 "Expand" }{TEXT -1 1 "(" }{TEXT 306 3 "a*b" } {TEXT -1 2 ") " }{TEXT 304 3 "mod" }{TEXT -1 1 " " }{TEXT 305 1 "p" } {TEXT -1 25 " does the product modulo " }{XPPEDIT 18 0 "p;" "6#%\"pG" }{TEXT -1 75 ", that is, all coefficients in the resulting polynomial \+ are reduced modulo " }{XPPEDIT 18 0 "p;" "6#%\"pG" }{TEXT -1 15 " . F or example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "p := 5;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "expand(a*b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,4 *&\"\"'\"\"\")%\"xG\"#5F&F&*&\"# " 0 "" {MPLTEXT 1 0 18 "Expan d(a*b) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,4*$)%\"xG\"#5\"\"\"F (*&\"\"$F()F&\"\"*F(F(*&\"\"#F()F&\"\"'F(F(*&F.F()F&\"\")F(F(*$)F&\"\" &F(F(*&F.F()F&\"\"%F(F(*&F*F(F&F(F(*&F*F()F&F*F(F(F*F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "The operations " }{TEXT 308 3 "rem" } {TEXT -1 12 "(a,b,x) and " }{TEXT 309 3 "quo" }{TEXT -1 45 "(a,b,x) co mpute, respectively, the remainder " }{XPPEDIT 18 0 "r;" "6#%\"rG" } {TEXT -1 14 " and quotient " }{XPPEDIT 18 0 "q;" "6#%\"qG" }{TEXT -1 4 " of " }{XPPEDIT 18 0 "a;" "6#%\"aG" }{TEXT -1 11 "divided by " } {XPPEDIT 18 0 "b;" "6#%\"bG" }{TEXT -1 12 " satisfying " }{XPPEDIT 18 0 "a = b*q+r;" "6#/%\"aG,&*&%\"bG\"\"\"%\"qGF(F(%\"rGF(" }{TEXT -1 7 " with " }{XPPEDIT 18 0 "r = 0;" "6#/%\"rG\"\"!" }{TEXT -1 4 " or " } {XPPEDIT 18 0 "deg(r) < deg(b);" "6#2-%$degG6#%\"rG-F%6#%\"bG" }{TEXT -1 36 ". The corresponding operations for " }{XPPEDIT 18 0 "Z[p];" "6 #&%\"ZG6#%\"pG" }{TEXT -1 5 " are " }{TEXT 312 3 "Rem" }{TEXT -1 8 "(a ,b,x) " }{TEXT 313 3 "mod" }{TEXT 310 1 " " }{TEXT -1 8 "p and " } {TEXT 314 3 "Quo" }{TEXT -1 8 "(a,b,x) " }{TEXT 315 3 "mod" }{TEXT -1 17 " p . For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "r \+ := rem(a,b,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG,*#\"#&)\"#F\" \"\"*&#\"#G\"\"*F)%\"xGF)F)*&#\"\"#\"\"$F)*$)F.F1F)F)!\"\"*&#\"#;F(F)* $)F.F2F)F)F5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "q := quo(a, b,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG,(*&#\"\"#\"\"$\"\"\"*$ )%\"xGF(F*F*F**&#F*\"\"*F*F-F*!\"\"#\"\"%\"#FF1" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 20 "expand( a = b*q+r );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,**&\"\"#\"\"\")%\"xG\"\"'F'F'*&\"\"$F')F)\"\"&F'!\"\" *&F,F'F)F'F'F,F'F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "r := \+ Rem(a,b,x) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG,(*&\"\"#\" \"\")%\"xG\"\"$F(F(*$)F*F'F(F(*&F'F(F*F(F(" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 22 "q := Quo(a,b,x) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG,(*&\"\"%\"\"\")%\"xG\"\"#F(F(F*F(\"\"$F(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "Expand( a = b*q+r ) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,**&\"\"#\"\"\")%\"xG\"\"'F'F'*&F&F ')F)\"\"&F'F'*&\"\"$F'F)F'F'F/F'F$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "The commands " }{TEXT 324 3 "gcd" }{TEXT -1 10 "(a,b) and " } {TEXT 325 3 "lcm" }{TEXT -1 136 "(a,b) compute, respectively the great est common divisor and least common multiple of two polynomials. The \+ corresponding operations for " }{XPPEDIT 18 0 "Z[p];" "6#&%\"ZG6#%\"pG " }{TEXT -1 5 " are " }{TEXT 320 3 "Gcd" }{TEXT -1 6 "(a,b) " }{TEXT 323 3 "mod" }{TEXT -1 7 " p and " }{TEXT 321 3 "Lcm" }{TEXT -1 6 "(a,b ) " }{TEXT 322 3 "mod" }{TEXT -1 16 " p. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "gcd(x^4-2*x^2+2,x^4+1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Gcd(x^4-2*x^2+2,x^4+1) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%\"xG\"\"#\"\"\"F(F'F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 12 "The command " }{TEXT 311 5 "gcdex" }{TEXT -1 24 "(a,b,x,' s','t') outputs " }{XPPEDIT 18 0 "g = GCD(a,b);" "6#/%\"gG-%$GCDG6$%\" aG%\"bG" }{TEXT -1 49 " . It also outputs through the input parameter s " }{XPPEDIT 18 0 "s,t;" "6$%\"sG%\"tG" }{TEXT -1 35 " integers sati sfying the equation " }{XPPEDIT 18 0 "s*a+t*b = g;" "6#/,&*&%\"sG\"\" \"%\"aGF'F'*&%\"tGF'%\"bGF'F'%\"gG" }{TEXT -1 17 " and satisfying " } {XPPEDIT 18 0 "deg(s) < deg(b);" "6#2-%$degG6#%\"sG-F%6#%\"bG" }{TEXT -1 6 " and " }{XPPEDIT 18 0 "deg(t) < deg(a);" "6#2-%$degG6#%\"tG-F%6 #%\"aG" }{TEXT -1 35 " . The corresponding command for " }{XPPEDIT 18 0 "Z[p];" "6#&%\"ZG6#%\"pG" }{TEXT -1 45 " is Gcdex(a,b,x,'s','t') mod p. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "gcd ex(a,b,x,'s','t');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "s;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,*#\"%Zo\"&lb#\"\"\"*&#\"%c8\"%8^F'%\"xGF'!\"\"*&#\"%e$ )F&F'*$)F,\"\"#F'F'F'*&#\"%7LF&F'*$)F,\"\"$F'F'F-" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 2 "t;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,.#\"%C ]\"&lb#\"\"\"*&#\"$,#F&F'%\"xGF'!\"\"*&#\"%e\\F&F'*$)F+\"\"$F'F'F'*&# \"%MZF&F'*$)F+\"\"#F'F'F,*&#\"%3AF&F'*$)F+\"\"&F'F'F'*&#\"%)=\"\"%8^F' *$)F+\"\"%F'F'F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "expand( s*a+t*b );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "Gcdex(a,b,x,'s','t') mod p;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%\"xG\"\"#\"\"\"F(*&\"\"$F(F&F(F( F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "s;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&%\"xG\"\"\"\"\"%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "t;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**$)%\"xG\"\"$ \"\"\"F(*&F'F()F&\"\"#F(F(*&F'F(F&F(F(\"\"%F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "Expand(a*s+t*b) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%\"xG\"\"#\"\"\"F(*&\"\"$F(F&F(F(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 12 "The command " }{TEXT 316 7 "irreduc" } {TEXT -1 35 "(a) outputs true if the polynomial " }{XPPEDIT 18 0 "a(x) ;" "6#-%\"aG6#%\"xG" }{TEXT -1 32 " is irreducible and the command " } {TEXT 317 6 "factor" }{TEXT -1 34 "(a) outputs the factorization of \+ " }{XPPEDIT 18 0 "a(x);" "6#-%\"aG6#%\"xG" }{TEXT -1 77 " into irreduc ible factors over the integers. The corresponding commands for " } {XPPEDIT 18 0 "Z[p];" "6#&%\"ZG6#%\"pG" }{TEXT -1 7 " are " }{TEXT 318 7 "Irreduc" }{TEXT -1 4 "(a) " }{TEXT 326 3 "mod" }{TEXT -1 8 " p \+ and " }{TEXT 319 6 "Factor" }{TEXT -1 4 "(a) " }{TEXT 327 3 "mod" } {TEXT -1 16 " p. For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**&\"\"#\"\"\")% \"xG\"\"'F&F&*&\"\"$F&)F(\"\"&F&!\"\"*&F+F&F(F&F&F+F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,(*&\"\"$\"\"\")%\"xG\"\"#F'F'*&F*F'F)F'F'F'F'F'),&F) F'F'!\"\"F*F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "Factor(a) \+ mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*(\"\"#\"\"\",&%\"xGF&F&F& F&),&F(F&\"\"%F&\"\"&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "Factor(b) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*(\"\"$\"\" \"),&%\"xGF&\"\"%F&\"\"#F&,(*$)F)F+F&F&*&F*F&F)F&F&F+F&F&F&" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "Notice that Maple does not factor \+ the polynomial " }{XPPEDIT 18 0 "x^2-2;" "6#,&*$%\"xG\"\"#\"\"\"F&!\" \"" }{TEXT -1 18 " into the factors " }{XPPEDIT 18 0 "(x-sqrt(2))*(x+s qrt(2));" "6#*&,&%\"xG\"\"\"-%%sqrtG6#\"\"#!\"\"F&,&F%F&-F(6#F*F&F&" } {TEXT -1 98 ". The factorization is, by default, to factor into irred ucible factors with integer coefficients." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 4 "The " }{TEXT 331 8 "Nextpoly" }{TEXT -1 6 "(f,x) " }{TEXT 332 3 "mod" }{TEXT -1 100 " p command will compute the ``next'' polyno mial in lexicographical order. We will use this and the " }{TEXT 333 7 "Irreduc" }{TEXT -1 83 " command to find the first irreducible cubic polynomial over the integers modulo 3." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "Nextpoly(x^2+1,x) mod 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%\"xG\"\"#\"\"\"F(F'F(" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 68 "f := x^3;\nwhile not Irreduc(f) mod 3 do f := Nextp oly(f,x) mod 3 od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG*$)%\"xG\" \"$\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\"xG\"\"$\"\" \"F*F*F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\"xG\"\"$\"\" \"F*\"\"#F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\"xG\"\"$\" \"\"F*F(F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,(*$)%\"xG\"\"$\" \"\"F*F(F*F*F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,(*$)%\"xG\"\" $\"\"\"F*F(F*\"\"#F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\" xG\"\"$\"\"\"F**&\"\"#F*F(F*F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\" fG,(*$)%\"xG\"\"$\"\"\"F**&\"\"#F*F(F*F*F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 15 "Comple x numbers" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "The complex unit " } {XPPEDIT 18 0 "i = sqrt(-1);" "6#/%\"iG-%%sqrtG6#,$\"\"\"!\"\"" } {TEXT -1 60 " in Maple is displayed and input using the capital letter I." }}}{EXCHG }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "sqrt(-1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#^#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "I^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#!\"\"" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 45 "If you solve a polynomial equation using the " }{TEXT 356 5 "solve" }{TEXT -1 147 " command, Maple will \+ try to return exact formulae for the roots. These can be complicated \+ and in general, there are no formulae. You can use the " }{TEXT 355 6 "fsolve" }{TEXT -1 55 " command to get numerical approximations for \+ the roots." }}}{EXCHG }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "eqn : = x^4-x^3-7*x^2-12*x-6;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$eqnG,,*$ )%\"xG\"\"%\"\"\"F**$)F(\"\"$F*!\"\"*&\"\"(F*)F(\"\"#F*F.*&\"#7F*F(F*F .\"\"'F." }}}{EXCHG }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "solve(e qn,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6&^$!\"\"\"\"\"^$F$F$,&#\"\"$ \"\"#F%*&F*F$\"#@#F%F*F%,&F(F%*&F*F$F,F-F$" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 14 "fsolve(eqn,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$$ !+v%yG\"z!#5$\"+ZyG\"z$!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "fsolve(eqn,x,complex);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6&^$$!++++ +5!\"*F$^$F$$\"+++++5F&$!+v%yG\"z!#5$\"+ZyG\"z$F&" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 187 "The solve command first factors the polynomial an d if there is a quadratic factor, it applies the quadratic formula. T he fsolve command uses a Newton like iteration to compute the roots." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "factor(eqn);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,(*$)%\"xG\"\"#\"\"\"F)*&F(F)F'F)F)F(F)F),(F% F)*&\"\"$F)F'F)!\"\"F-F.F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 182 "Ar ithmetic with complex numbers happens automatically. The commands Re( z) and Im(z) and abs(z) below compute the real part, imaginary part an d modulus (magnitude) of z respectively." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "z := 2+3*I;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"zG ^$\"\"#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "z^2;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#^$!\"&\"#7" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 4 "1/z;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#^$#\"\"#\"#8 #!\"$F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "Re(z);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "Im(z);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "abs(z);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*$\"#8#\"\"\"\"\"#" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 124 "Another application of complex numbers is to computing the real a nd complex eigenvalues and eigenvectors of a real matrix. " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "with(LinearAlgebra,Eigenvalu es);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7#%,EigenvaluesG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "A := Matrix([[0,1],[-1,0]]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG-%'RTABLEG6%\"*'pP19-%'MATRIXG6# 7$7$\"\"!\"\"\"7$!\"\"F.%'MatrixG" }}}{EXCHG }{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 15 "Eigenvalues(A);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# -%'RTABLEG6%\"*KvdM\"-%'MATRIXG6#7$7#^#\"\"\"7#^#!\"\"&%'VectorG6#%'co lumnG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 16 "Field Extensions" }}{EXCHG {PARA 0 "" 0 " " {TEXT -1 13 "The command " }{TEXT 342 5 "alias" }{TEXT -1 51 "( alp ha=RootOf( f(x) ) ); prepares Maple to treat " }{XPPEDIT 18 0 "alpha; " "6#%&alphaG" }{TEXT -1 63 " in an appropriate extension field. In o ther words, it treats " }{XPPEDIT 18 0 "alpha;" "6#%&alphaG" }{TEXT -1 35 " as the construction variable in F[" }{XPPEDIT 18 0 "alpha;" "6 #%&alphaG" }{TEXT -1 5 "]/(f(" }{XPPEDIT 18 0 "alpha;" "6#%&alphaG" } {TEXT -1 17 ")) . For example" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "alias( alpha=RootOf(x^2-2) );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&alphaG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 37 "What this means is that the relation " }{XPPEDIT 18 0 "alpha^2-2 = 0;" "6#/,&*$%&alphaG \"\"#\"\"\"F'!\"\"\"\"!" }{TEXT -1 56 " holds. You can check that Ma ple knows this as follows" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "a := alpha^2-2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG,&*$)%&al phaG\"\"#\"\"\"F*F)!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "simplify(alpha^2-2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 28 "A second example: obviously " } {XPPEDIT 18 0 "alpha^3;" "6#*$%&alphaG\"\"$" }{TEXT -1 3 " = " } {XPPEDIT 18 0 "alpha;" "6#%&alphaG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "al pha^2;" "6#*$%&alphaG\"\"#" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "alpha*2; " "6#*&%&alphaG\"\"\"\"\"#F%" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "2*alph a;" "6#*&\"\"#\"\"\"%&alphaGF%" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 18 "simplify(alpha^3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$%&alphaG\"\"#" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 77 "By default, Maple works over the field of rational numbers, i.e. it u ses F = " }{TEXT 346 1 "Q" }{TEXT -1 31 ". For example, the polynomia l " }{XPPEDIT 18 0 "x^4-2;" "6#,&*$%\"xG\"\"%\"\"\"\"\"#!\"\"" }{TEXT -1 22 " does not factor over " }{TEXT 347 1 "Q" }{TEXT -1 1 "." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "a := x^4-2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG,&*$)%\"xG\"\"%\"\"\"F*\"\"#!\"\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "factor( a );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%\"xG\"\"%\"\"\"F(\"\"#!\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 38 "But if we are allowed to compute with " } {XPPEDIT 18 0 "alpha;" "6#%&alphaG" }{TEXT -1 31 " then it does factor as follows" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "factor( a, a lpha );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&*$)%\"xG\"\"#\"\"\"F)%& alphaGF)F),&F%F)F*!\"\"F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 30 "This is the factorization of " }{XPPEDIT 18 0 "x^4-2;" "6#,&*$%\"xG\"\"% \"\"\"\"\"#!\"\"" }{TEXT -1 6 " over " }{TEXT 343 1 "Q" }{TEXT -1 1 "[ " }{TEXT 344 1 "x" }{TEXT -1 3 "]/(" }{XPPEDIT 18 0 "x^2-2;" "6#,&*$% \"xG\"\"#\"\"\"F&!\"\"" }{TEXT -1 65 "). You can check it in the usua l way. Multiplying it out we get" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "expand(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)% \"xG\"\"%\"\"\"F(*$)%&alphaG\"\"#F(!\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 10 "And since " }{XPPEDIT 18 0 "alpha^2-2 = 0;" "6#/,&*$%&alp haG\"\"#\"\"\"F'!\"\"\"\"!" }{TEXT -1 30 " the above is indeed equal t o " }{XPPEDIT 18 0 "x^4-2;" "6#,&*$%\"xG\"\"%\"\"\"\"\"#!\"\"" }{TEXT -1 2 " ." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 71 "This second example i s for an extension field where the base field F = " }{XPPEDIT 18 0 "Z[ 3];" "6#&%\"ZG6#\"\"$" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "alias( beta=RootOf(x^2+1) );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$%&alphaG%%betaG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "a := x^4+x^3+x+2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG,** $)%\"xG\"\"%\"\"\"F**$)F(\"\"$F*F*F(F*\"\"#F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "Factor( a ) mod 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&*$)%\"xG\"\"#\"\"\"F)F)F)F),(F%F)F'F)F(F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "This is the factorization of " }{XPPEDIT 18 0 "x^4+x^3+x+2;" "6#,**$%\"xG\"\"%\"\"\"*$F%\"\"$F'F%F'\"\"#F'" } {TEXT -1 16 " over the field " }{XPPEDIT 18 0 "Z[3];" "6#&%\"ZG6#\"\"$ " }{TEXT -1 2 " ." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "Factor (a,beta) mod 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#**,(%\"xG\"\"\"*&\" \"#F&%%betaGF&F&F(F&F&,&F%F&*&F(F&F)F&F&F&,&F%F&F)F&F&,(F%F&F)F&F(F&F& " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "This is the factorization of \+ " }{XPPEDIT 18 0 "x^4+x^3+x+2;" "6#,**$%\"xG\"\"%\"\"\"*$F%\"\"$F'F%F' \"\"#F'" }{TEXT -1 18 " over the field " }{XPPEDIT 18 0 "Z[3];" "6#& %\"ZG6#\"\"$" }{TEXT -1 1 "[" }{XPPEDIT 18 0 "beta;" "6#%%betaG" } {TEXT -1 3 "]/(" }{XPPEDIT 18 0 "beta^2+1;" "6#,&*$%%betaG\"\"#\"\"\"F 'F'" }{TEXT -1 2 ")." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 24 "Let us se t up the field " }{XPPEDIT 18 0 "Z[3];" "6#&%\"ZG6#\"\"$" }{TEXT -1 1 "[" }{XPPEDIT 18 0 "gamma;" "6#%&gammaG" }{TEXT -1 3 "]/(" }{XPPEDIT 18 0 "gamma^3+2*gamma+1;" "6#,(*$%&gammaG\"\"$\"\"\"*&\"\"#F'F%F'F'F'F '" }{TEXT -1 2 ")." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "alias ( gamma=RootOf(x^3+2*x+1) );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%%&alph aG%%betaG%&gammaG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 70 "To do arithm etic calculations in the field, for example to calculate " }{XPPEDIT 18 0 "1/gamma;" "6#*&\"\"\"F$%&gammaG!\"\"" }{TEXT -1 8 " and " } {XPPEDIT 18 0 "(1+gamma^2)*(gamma^2+gamma);" "6#*&,&\"\"\"F%*$%&gammaG \"\"#F%F%,&*$F'F(F%F'F%F%" }{TEXT -1 36 " use the Normal command as f ollows " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "Normal( 1/gamma \+ ) mod 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%&gammaG\"\"#\"\"\"F' F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "Normal( (1+gamma^2) *(gamma^2+gamma) ) mod 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%&ga mmaG\"\"#\"\"\"F'F&F(F'F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "Here is a loop that calculates " }{XPPEDIT 18 0 "(2*gamma+2)^n;" "6#),&*& \"\"#\"\"\"%&gammaGF'F'F&F'%\"nG" }{TEXT -1 32 " for n up to 15 , sho wing that " }{XPPEDIT 18 0 "(2*gamma+2)" "6#,&*&\"\"#\"\"\"%&gammaGF&F &F%F&" }{TEXT -1 4 " is " }{TEXT 345 3 "not" }{TEXT -1 21 " a primitiv e element." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "for n from 0 \+ to 15 do Normal((2*gamma+2)^n) mod 3; od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&%&gammaG\" \"#F%\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%&gammaG\"\"#\"\" \"F(*&F'F(F&F(F(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$%&gammaG\"\" #" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%&gammaG\"\"#\"\"\"F(F&F(" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%&gammaG\"\"#\"\"\"F(F&F(F(F(" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#*$)%&gammaG\"\"#\"\"\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#,(*$)%&gammaG\"\"#\"\"\"F'*&F'F(F&F(F(F(F(" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%&gammaG\"\"#\"\"\"F'F&F(F(F(" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,&%&gammaG\"\"#\"\"\"F&" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#,&*$)%&gammaG\"\"#\"\"\"F(F'F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%&gammaG\"\"#\"\"\"F'F'F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%&gammaG\"\"#\"\"\"F(*&F'F(F&F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&%&gamm aG\"\"#F%\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%&gammaG\"\"# \"\"\"F(*&F'F(F&F(F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}}}{MARK "10" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }