Modern Computer Algebra

Modern Computer Algebra

Joachim von zur Gathen, Jürgen Gerhard

Language: English

Pages: 811


Format: PDF / Kindle (mobi) / ePub

Computer algebra systems are now ubiquitous in all areas of science and engineering. This highly successful textbook, widely regarded as the 'bible of computer algebra', gives a thorough introduction to the algorithmic basis of the mathematical engine in computer algebra systems. Designed to accompany one- or two-semester courses for advanced undergraduate or graduate students in computer science or mathematics, its comprehensiveness and reliability has also made it an essential reference for professionals in the area. Special features include: detailed study of algorithms including time analysis; implementation reports on several topics; complete proofs of the mathematical underpinnings; and a wide variety of applications (among others, in chemistry, coding theory, cryptography, computational logic, and the design of calendars and musical scales). A great deal of historical information and illustration enlivens the text. In this third edition, errors have been corrected and much of the Fast Euclidean Algorithm chapter has been renovated.

The Algorithm Design Manual (2nd Edition), Corrected printing 2012

TCP/IP Architecture, Design and Implementation in Linux

Essential Software Architecture (2nd Edition)

Practical Perforce

Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale (1st Edition)















captures both situations under one umbrella. The reader may always think of R as being either the integers or polynomials. The algebraic terminology is explained in Chapter 25. D EFINITION 3.1. An integral domain R with a function d: R −→ N ∪ {−∞} is a Euclidean domain if for all a, b ∈ R with b = 0, we can divide a by b with remainder, so that there exist q, r ∈ R such that a = qb + r and d(r) < d(b). 45 (2) 46 3. The Euclidean Algorithm We say that q = a quo b is the quotient and r = a

= f g = ri ri+1 si ti si+1 ti+1 , , (iii) gcd( f , g) ∼ gcd(ri , ri+1 ) ∼ rℓ , (iv) si f + ti g = ri (this also holds for i = ℓ + 1), (v) siti+1 − ti si+1 = (−1)i , (vi) gcd(ri ,ti ) ∼ gcd( f ,ti ), (vii) f = (−1)i (ti+1 ri − ti ri+1 ), g = (−1)i+1 (si+1 ri − si ri+1 ), with the convention that rℓ+1 = 0. 50 3. The Euclidean Algorithm P ROOF. For (i) and (ii) we proceed by induction on i. The case i = 0 is clear from step 1 of the algorithm, and we may assume i ≥ 1. Then Qi ri−1 ri =

Extended Euclidean Algorithm 3.14 for polynomials f , g ∈ F[x] with deg f = n ≥ deg g = m can be performed with ◦ at most m + 2 inversions and 2nm + O(n) additions and multiplications in F if only the quotients qi , the remainders ri , and the coefficients ρi are needed, ◦ at most m + 2 inversions and 6nm + O(n) additions and multiplications in F for computing all results. P ROOF. We proceed as in Section 3.3 and let ni = deg ri for 0 ≤ i ≤ ℓ + 1, with rℓ+1 = 0, so that deg qi = ni−1 − ni for 1 ≤

Q[x]. We then introduce the resultant, which gives control over the Bézout coefficients s and t in the presentation s f + tg = gcd( f , g). This yields a modular gcd calculation for bivariate polynomials, and, together with Mignotte’s factor bound, also for integer polynomials. Section 6.10 discusses the more general subresultants, which govern the coefficient growth in the whole Extended Euclidean Algorithm, and provide a modular approach to the EEA. In between, we digress to two applications:

2 log2 (nA)). Exercise 6.47 asks for a proof, and Exercise 6.49 gives a slightly better bound for the ri∗ , s∗i ,ti∗ in the traditional EEA, essentially replacing δ by 1. We compare the two bounds from Theorems 6.52 and 6.53 with Mignotte’s bound, say when A is an n-digit number and δ = 1. Then the “traditional” bound is a number of about n3 digits, the “monic” one has about n2 digits, and Mignotte’s only about n digits! Of course Mignotte’s bound only applies to the gcd, and one cannot hope for

Download sample