Cohen J O E L S . C O H E N J O E L S . C O H E N C Computer Algebra and Computer Algebra and o m p Symbolic Computation u t e Symbolic Computation r Mathematical Methods A l g e b r M a t h e m a t i c a l M e t h o d s Mathematica™, Maple™, and similar software packages provide a programs that carry out sophisticated mathematical operations. In a this book the author explores the mathematical methods that form n the basis for such programs, in particular the application of algorithms d to methods such as automatic simplification, polynomial decomposition, S y and polynomial factorization. Computer Algebra and Symbolic m Computation: Mathematical Methods goes beyond the basics of b computer algebra—presented in Computer Algebra and Symbolic o l Computation: Elementary Algorithms—to explore complexity analysis ic of algorithms and recent developments in the field. C o This text: m p u •is well-suited for self-study and can be used as the basis for a t a graduate course. t •maintains the style set by Elementary Algorithms and explains io mathematical methods as needed. n •introduces advanced methods to treat complex operations. •presents implementations in such programs as Mathematica™ and Maple™. M •includes a CD with the complete text, hyperlinks, and algorithms a t as well as additional reference files. he m For the student, Mathematical Methods is an essential companion to at Elementary Algorithms, illustrating applications of basic ideas. For ica the professional, Mathematical Methods is a look at new applications l M of familiar concepts. e t h o d ISBN 1-56881-159-4 s ì<(sl&q)=ibbfji< +^-Ä-U-Ä-U A K Peters, Ltd. PEAT EKRS (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:8)(cid:9)(cid:10)(cid:11)(cid:12)(cid:7)(cid:13)(cid:8)(cid:14)(cid:9)(cid:14)(cid:15)(cid:16)(cid:9)(cid:17)(cid:18)(cid:3)(cid:13)(cid:2)(cid:11)(cid:19)(cid:20)(cid:9)(cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:14)(cid:6)(cid:19)(cid:2)(cid:15) (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:8)(cid:9)(cid:10)(cid:11)(cid:12)(cid:7)(cid:13)(cid:8)(cid:14)(cid:9)(cid:14)(cid:15)(cid:16)(cid:9)(cid:17)(cid:18)(cid:3)(cid:13)(cid:2)(cid:11)(cid:19)(cid:20)(cid:9)(cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:14)(cid:6)(cid:19)(cid:2)(cid:15) (cid:21)(cid:14)(cid:6)(cid:22)(cid:7)(cid:3)(cid:14)(cid:6)(cid:19)(cid:20)(cid:14)(cid:11)(cid:9)(cid:21)(cid:7)(cid:6)(cid:22)(cid:2)(cid:16)(cid:23) (cid:24)(cid:2)(cid:7)(cid:11)(cid:9)(cid:17)(cid:25)(cid:9)(cid:1)(cid:2)(cid:22)(cid:7)(cid:15) (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:2)(cid:8)(cid:6)(cid:9)(cid:10)(cid:11)(cid:9)(cid:12)(cid:10)(cid:7)(cid:3)(cid:13)(cid:6)(cid:2)(cid:5)(cid:9)(cid:14)(cid:15)(cid:16)(cid:2)(cid:8)(cid:15)(cid:2) (cid:17)(cid:8)(cid:16)(cid:18)(cid:2)(cid:5)(cid:19)(cid:16)(cid:6)(cid:20)(cid:9)(cid:10)(cid:11)(cid:9)(cid:1)(cid:2)(cid:8)(cid:18)(cid:2)(cid:5) (cid:1)(cid:2)(cid:3)(cid:2)(cid:4)(cid:5)(cid:6)(cid:5)(cid:7)(cid:8) (cid:9)(cid:10)(cid:6)(cid:11)(cid:12)(cid:13)(cid:14)(cid:2)(cid:15)(cid:10)(cid:8)(cid:8)(cid:10)(cid:12)(cid:16)(cid:17)(cid:8)(cid:5)(cid:6)(cid:6)(cid:8) 1(cid:7)(cid:3)(cid:5)(cid:21)(cid:2)(cid:3)(cid:10)(cid:25)(cid:23)(cid:8)(cid:26)(cid:10)(cid:25)(cid:6)!(cid:23)(cid:8)(cid:10)(cid:4)(cid:7)(cid:8)(cid:9)(cid:30)!(cid:5)(cid:21)(cid:28)(cid:6)(cid:2)(cid:8)(cid:26)(cid:6)(cid:2)2(cid:3)#(cid:6)(cid:8)3’’(cid:3)#(cid:6) ,(cid:8)4(cid:8)(cid:1)(cid:6)(cid:5)(cid:6)(cid:2)!(cid:23)(cid:8)5(cid:5)(cid:7)(cid:27) (cid:13)(cid:16)(cid:8)(cid:26)(cid:21)(cid:30)(cid:5)(cid:22)(cid:8),2(cid:6)(cid:4)(cid:30)(cid:6) *(cid:10)(cid:5)(cid:3)#6(cid:23)(cid:8)7,(cid:8)(cid:8)(cid:11)(cid:17)(cid:12)(cid:13)(cid:11) 888(cid:27)(cid:10)6(cid:29)(cid:6)(cid:5)(cid:6)(cid:2)!(cid:27)#(cid:21)(cid:28) (cid:9)(cid:21)(cid:29)"(cid:2)(cid:3)(cid:31)(cid:22)(cid:5)(cid:8)(cid:8)9(cid:8)(cid:8)(cid:20)(cid:11)(cid:11)(cid:16)(cid:8) "(cid:8),(cid:8)4(cid:8)(cid:1)(cid:6)(cid:5)(cid:6)(cid:2)!(cid:23)(cid:8)5(cid:5)(cid:7)(cid:27) ,(cid:25)(cid:25)(cid:8)(cid:2)(cid:3)(cid:31)(cid:22)(cid:5)!(cid:8)(cid:2)(cid:6)!(cid:6)(cid:2)2(cid:6)(cid:7)(cid:27)(cid:8)*(cid:21)(cid:8)(cid:29)(cid:10)(cid:2)(cid:5)(cid:8)(cid:21)’(cid:8)(cid:5)(cid:22)(cid:6)(cid:8)(cid:28)(cid:10)(cid:5)(cid:6)(cid:2)(cid:3)(cid:10)(cid:25)(cid:8)(cid:29)(cid:2)(cid:21)(cid:5)(cid:6)#(cid:5)(cid:6)(cid:7)(cid:8) "(cid:8)(cid:5)(cid:22)(cid:3)!(cid:8)#(cid:21)(cid:29)"(cid:2)(cid:3)(cid:31)(cid:22)(cid:5)(cid:8)(cid:4)(cid:21)(cid:5)(cid:3)#(cid:6) (cid:28)(cid:10)"(cid:8) (cid:6)(cid:8)(cid:2)(cid:6)(cid:29)(cid:2)(cid:21)(cid:7)(cid:30)#(cid:6)(cid:7)(cid:8)(cid:21)(cid:2)(cid:8)(cid:30)(cid:5)(cid:3)(cid:25)(cid:3):(cid:6)(cid:7)(cid:8)(cid:3)(cid:4)(cid:8)(cid:10)(cid:4)"(cid:8)’(cid:21)(cid:2)(cid:28)(cid:23)(cid:8)(cid:6)(cid:25)(cid:6)#(cid:5)(cid:2)(cid:21)(cid:4)(cid:3)#(cid:8)(cid:21)(cid:2)(cid:8)(cid:28)(cid:6)#(cid:22)(cid:10)(cid:4)(cid:3)#(cid:10)(cid:25)(cid:23)(cid:8)(cid:3)(cid:4)#(cid:25)(cid:30)(cid:7)(cid:3)(cid:4)(cid:31) (cid:29)(cid:22)(cid:21)(cid:5)(cid:21)#(cid:21)(cid:29)"(cid:3)(cid:4)(cid:31)(cid:23)(cid:8)(cid:2)(cid:6)#(cid:21)(cid:2)(cid:7)(cid:3)(cid:4)(cid:31)(cid:23)(cid:8)(cid:21)(cid:2)(cid:8) "(cid:8)(cid:10)(cid:4)"(cid:8)(cid:3)(cid:4)’(cid:21)(cid:2)(cid:28)(cid:10)(cid:5)(cid:3)(cid:21)(cid:4)(cid:8)!(cid:5)(cid:21)(cid:2)(cid:10)(cid:31)(cid:6)(cid:8)(cid:10)(cid:4)(cid:7)(cid:8)(cid:2)(cid:6)(cid:5)(cid:2)(cid:3)(cid:6)2(cid:10)(cid:25)(cid:8)!"!(cid:5)(cid:6)(cid:28)(cid:23) 8(cid:3)(cid:5)(cid:22)(cid:21)(cid:30)(cid:5)(cid:8)8(cid:2)(cid:3)(cid:5)(cid:5)(cid:6)(cid:4)(cid:8)(cid:29)(cid:6)(cid:2)(cid:28)(cid:3)!!(cid:3)(cid:21)(cid:4)(cid:8)’(cid:2)(cid:21)(cid:28)(cid:8)(cid:5)(cid:22)(cid:6)(cid:8)#(cid:21)(cid:29)"(cid:2)(cid:3)(cid:31)(cid:22)(cid:5)(cid:8)(cid:21)8(cid:4)(cid:6)(cid:2)(cid:27) (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:4)(cid:6)(cid:7)(cid:8)(cid:9)(cid:7)(cid:10)(cid:8)(cid:11)(cid:12)(cid:4)(cid:13)(cid:14)(cid:14)(cid:7)(cid:10)(cid:5)(cid:15)(cid:5)(cid:16)(cid:8)(cid:12)(cid:2)(cid:11)(cid:12)(cid:17)(cid:2)(cid:11)(cid:17)(cid:18)(cid:19)(cid:3)(cid:16)(cid:2)(cid:20)(cid:5)(cid:15)(cid:2)(cid:8)(cid:11)(cid:7)(cid:21)(cid:5)(cid:15)(cid:5) (cid:9)(cid:21)(cid:22)(cid:6)(cid:4)(cid:23)(cid:8)(cid:24)(cid:21)(cid:6)(cid:25)(cid:8)(cid:26)(cid:27) (cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:9)(cid:21)(cid:28)(cid:29)(cid:30)(cid:5)(cid:6)(cid:2)(cid:8)(cid:10)(cid:25)(cid:31)(cid:6) (cid:2)(cid:10)(cid:8)(cid:10)(cid:4)(cid:7)(cid:8)!"(cid:28) (cid:21)(cid:25)(cid:3)#(cid:8)#(cid:21)(cid:28)(cid:29)(cid:30)(cid:5)(cid:10)(cid:5)(cid:3)(cid:21)(cid:4)(cid:8)$(cid:8)(cid:28)(cid:10)(cid:5)(cid:22)(cid:6)(cid:28)(cid:10)(cid:5)(cid:3)#(cid:10)(cid:25)(cid:8)(cid:28)(cid:6)(cid:5)(cid:22)(cid:21)(cid:7)! %(cid:8)(cid:24)(cid:21)(cid:6)(cid:25)(cid:8)(cid:26)(cid:27)(cid:8)(cid:9)(cid:21)(cid:22)(cid:6)(cid:4) (cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:29)(cid:27)(cid:8)#(cid:28)(cid:27) (cid:8)(cid:8)(cid:8)(cid:8)(cid:8)&(cid:4)#(cid:25)(cid:30)(cid:7)(cid:6)!(cid:8) (cid:3) (cid:25)(cid:3)(cid:21)(cid:31)(cid:2)(cid:10)(cid:29)(cid:22)(cid:3)#(cid:10)(cid:25)(cid:8)(cid:2)(cid:6)’(cid:6)(cid:2)(cid:6)(cid:4)#(cid:6)!(cid:8)(cid:10)(cid:4)(cid:7)(cid:8)(cid:3)(cid:4)(cid:7)(cid:6)((cid:27) (cid:8)(cid:8)(cid:8)(cid:8)(cid:8)&(cid:26))*(cid:8)(cid:17)+(cid:14)(cid:13)(cid:19)(cid:19)(cid:17)+(cid:17)(cid:14)(cid:18)+(cid:15) (cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:17)(cid:27)(cid:8),(cid:25)(cid:31)(cid:6) (cid:2)(cid:10)-.(cid:10)(cid:5)(cid:10)(cid:8)(cid:29)(cid:2)(cid:21)#(cid:6)!!(cid:3)(cid:4)(cid:31)(cid:27)(cid:8)&(cid:27)(cid:8)/(cid:3)(cid:5)(cid:25)(cid:6)(cid:27) 0,(cid:17)(cid:14)(cid:14)(cid:27)(cid:12)(cid:27)1(cid:15)(cid:8)(cid:27)(cid:9)(cid:13)(cid:16)(cid:14)(cid:8)(cid:20)(cid:11)(cid:11)(cid:20) (cid:14)(cid:17)(cid:20)-(cid:7)#(cid:20)(cid:17)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:20)(cid:11)(cid:11)(cid:20)(cid:11)(cid:20)(cid:15)(cid:16)(cid:17)(cid:14) (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:8)(cid:3)(cid:4)(cid:8)(cid:9)(cid:10)(cid:4)(cid:10)(cid:7)(cid:10) (cid:11)(cid:12)(cid:8)(cid:8)(cid:11)(cid:13)(cid:8)(cid:8)(cid:11)(cid:14)(cid:8)(cid:8)(cid:11)(cid:15)(cid:8)(cid:8)(cid:11)(cid:16)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:8)(cid:17)(cid:11)(cid:8)(cid:8)(cid:18)(cid:8)(cid:8)(cid:19)(cid:8)(cid:8)(cid:12)(cid:8)(cid:8)(cid:13)(cid:8)(cid:8)(cid:14)(cid:8)(cid:8)(cid:15)(cid:8)(cid:8)(cid:16)(cid:8)(cid:8)(cid:20)(cid:8)(cid:8)(cid:17) (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:4)(cid:7)(cid:8)(cid:9)(cid:10)(cid:4)(cid:11)(cid:12)(cid:13)(cid:14)(cid:3)(cid:6)(cid:15) vii Contents 1 Preface ix 1 Background Concepts 1 1.1 Computer Algebra Systems . . . . . . . . . . . . . . . . . . . . 1 1.2 Mathematical Pseudo-Language(MPL) . . . . . . . . . . . . . 2 1.3 Automatic Simplification and ExpressionStructure . . . . . . 5 1.4 General Polynomial Expressions . . . . . . . . . . . . . . . . . 11 1.5 Miscellaneous Operators . . . . . . . . . . . . . . . . . . . . . 12 2 Integers, Rational Numbers, and Fields 17 2.1 The Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Rational Number Arithmetic . . . . . . . . . . . . . . . . . . . 37 2.3 Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3 Automatic Simplification 63 3.1 The Goal of Automatic Simplification . . . . . . . . . . . . . . 63 3.2 An Automatic Simplification Algorithm . . . . . . . . . . . . . 91 4 Single Variable Polynomials 111 4.1 Elementary Concepts and Polynomial Division . . . . . . . . . 111 4.2 Greatest Common Divisors in F[x] . . . . . . . . . . . . . . . . 126 4.3 Computations in Elementary Algebraic Number Fields . . . . 146 4.4 PartialFraction Expansion in F(x) . . . . . . . . . . . . . . . . 166 viii 5 Polynomial Decomposition 179 5.1 Theoretical Background . . . . . . . . . . . . . . . . . . . . 180 5.2 A Decomposition Algorithm . . . . . . . . . . . . . . . . . 188 6 Multivariate Polynomials 201 6.1 Multivariate Polynomials and Integral Domains . . . . . . . 201 6.2 Polynomial Division and Expansion. . . . . . . . . . . . . . 207 6.3 Greatest Common Divisors . . . . . . . . . . . . . . . . . . 229 7 The Resultant 265 7.1 The Resultant Concept . . . . . . . . . . . . . . . . . . . . 265 7.2 Polynomial Relations for Explicit Algebraic Numbers . . . . 289 8 Polynomial Simplification with Side Relations 297 8.1 Multiple Division and Reduction . . . . . . . . . . . . . . . 297 8.2 Equivalence, Simplification, and Ideals . . . . . . . . . . . 318 8.3 A Simplification Algorithm . . . . . . . . . . . . . . . . . . 334 9 Polynomial Factorization 349 9.1 Square-Free Polynomials and Factorization . . . . . . . . . 350 9.2 Irreducible Factorization: The Classical Approach . . . . . 360 9.3 Factorization in Zp[x] . . . . . . . . . . . . . . . . . . . . . 370 9.4 Irreducible Factorization: A Modern Approach . . . . . . . 399 Bibliography 431 Index 441