Introduction to Computer Algebra
Carlos D’Andrea
Oslo, December 1st 2016
Carlos D’Andrea Introduction to Computer Algebra What is Computer Algebra?
Carlos D’Andrea Introduction to Computer Algebra What is Computer Algebra?
Carlos D’Andrea Introduction to Computer Algebra Computer Algebra
Carlos D’Andrea Introduction to Computer Algebra Computer Algebra
Carlos D’Andrea Introduction to Computer Algebra Computer Algebra
Carlos D’Andrea Introduction to Computer Algebra Computer Algebra
Carlos D’Andrea Introduction to Computer Algebra Computer Algebra
Carlos D’Andrea Introduction to Computer Algebra “...is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects...”
From Wikipedia (Symbolic Computation)
Carlos D’Andrea Introduction to Computer Algebra algorithms and software for manipulating mathematical expressions and other mathematical objects...”
From Wikipedia (Symbolic Computation)
“...is a scientific area that refers to the study and development of
Carlos D’Andrea Introduction to Computer Algebra for manipulating mathematical expressions and other mathematical objects...”
From Wikipedia (Symbolic Computation)
“...is a scientific area that refers to the study and development of algorithms and software
Carlos D’Andrea Introduction to Computer Algebra From Wikipedia (Symbolic Computation)
“...is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects...” Carlos D’Andrea Introduction to Computer Algebra make it effective and to discover efficient algorithms to implement this effectiveness”
From Wikipedia (Symbolic Computation) “A large part of the work in the field consists in revisiting classical algebra in order to
Carlos D’Andrea Introduction to Computer Algebra From Wikipedia (Symbolic Computation) “A large part of the work in the field consists in revisiting classical algebra in order to make it effective and to discover efficient algorithms to implement this effectiveness”
Carlos D’Andrea Introduction to Computer Algebra Boolean decisions:= , =6 , (>, <) Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],... Finite-Dimensional Linear Algebra
“Effective” Operations
Carlos D’Andrea Introduction to Computer Algebra Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],... Finite-Dimensional Linear Algebra
“Effective” Operations
Boolean decisions:= , =6 , (>, <)
Carlos D’Andrea Introduction to Computer Algebra Finite-Dimensional Linear Algebra
“Effective” Operations
Boolean decisions:= , =6 , (>, <) Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],...
Carlos D’Andrea Introduction to Computer Algebra “Effective” Operations
Boolean decisions:= , =6 , (>, <) Arithmetic Operations over “computable” rings: Z, Q, Fq, Q[x1,..., xn],... Finite-Dimensional Linear Algebra
Carlos D’Andrea Introduction to Computer Algebra Given A, B ∈ Z,compute the product A · B ∈ Z
What is “an algorithm” for CA?
Carlos D’Andrea Introduction to Computer Algebra compute the product A · B ∈ Z
What is “an algorithm” for CA?
Given A, B ∈ Z,
Carlos D’Andrea Introduction to Computer Algebra What is “an algorithm” for CA?
Given A, B ∈ Z,compute the product A · B ∈ Z
Carlos D’Andrea Introduction to Computer Algebra What is “an algorithm” for CA?
Given A, B ∈ Z,compute the product A · B ∈ Z
Carlos D’Andrea Introduction to Computer Algebra Output: A · B ∈ Z Procedure:
Example: The Multiplication Algorithm
Input: A, B ∈ Z
Carlos D’Andrea Introduction to Computer Algebra Procedure:
Example: The Multiplication Algorithm
Input: A, B ∈ Z Output: A · B ∈ Z
Carlos D’Andrea Introduction to Computer Algebra Example: The Multiplication Algorithm
Input: A, B ∈ Z Output: A · B ∈ Z Procedure:
Carlos D’Andrea Introduction to Computer Algebra Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible
Effective and Efficient
Carlos D’Andrea Introduction to Computer Algebra the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible
Effective and Efficient
Effective:
Carlos D’Andrea Introduction to Computer Algebra and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible
Effective and Efficient
Effective: the procedure must finish after a finite number of operations,
Carlos D’Andrea Introduction to Computer Algebra Efficient: the procedure must be as short as possible and use as less space as possible
Effective and Efficient
Effective: the procedure must finish after a finite number of operations, and give the right answer
Carlos D’Andrea Introduction to Computer Algebra the procedure must be as short as possible and use as less space as possible
Effective and Efficient
Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient:
Carlos D’Andrea Introduction to Computer Algebra and use as less space as possible
Effective and Efficient
Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible
Carlos D’Andrea Introduction to Computer Algebra Effective and Efficient
Effective: the procedure must finish after a finite number of operations, and give the right answer Efficient: the procedure must be as short as possible and use as less space as possible
Carlos D’Andrea Introduction to Computer Algebra of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?
Short and less Space
Input: A, B ∈ Z
Carlos D’Andrea Introduction to Computer Algebra Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?
Short and less Space
Input: A, B ∈ Z of N digits
Carlos D’Andrea Introduction to Computer Algebra Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?
Short and less Space
Input: A, B ∈ Z of N digits Output: A · B ∈ Z
Carlos D’Andrea Introduction to Computer Algebra High school algorithm takes around O(N2) operations It is effective, but is it efficient?
Short and less Space
Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits
Carlos D’Andrea Introduction to Computer Algebra It is effective, but is it efficient?
Short and less Space
Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations
Carlos D’Andrea Introduction to Computer Algebra , but is it efficient?
Short and less Space
Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective
Carlos D’Andrea Introduction to Computer Algebra Short and less Space
Input: A, B ∈ Z of N digits Output: A · B ∈ Z Output’s size is around2 N digits High school algorithm takes around O(N2) operations It is effective, but is it efficient?
Carlos D’Andrea Introduction to Computer Algebra Efficient Multiplication Karatsuba’s algorithm (1960): O(N1.585)
Carlos D’Andrea Introduction to Computer Algebra Sch¨onhage-Strassen’salgorithm (1971): O(N log N log log N)
Efficient Multiplication
Toom-Cook’s algorithm (1966): O(Nlog(2k−1)/ log k), k ≥ 3
Carlos D’Andrea Introduction to Computer Algebra Efficient Multiplication
Toom-Cook’s algorithm (1966): O(Nlog(2k−1)/ log k), k ≥ 3 Sch¨onhage-Strassen’salgorithm (1971): O(N log N log log N)
Carlos D’Andrea Introduction to Computer Algebra Is it the most efficient??
Efficient Multiplication
F¨urer’salgorithm (2007): O(N log N 2O(log∗ N)))
Carlos D’Andrea Introduction to Computer Algebra Efficient Multiplication
F¨urer’salgorithm (2007): O(N log N 2O(log∗ N)))
Is it the most efficient??
Carlos D’Andrea Introduction to Computer Algebra “As numerical software are highly efficient for approximate numerical computation, it is common, in computer algebra, to emphasize on exact computation with exactly represented data”
Numerical vs Computer Algebra
Carlos D’Andrea Introduction to Computer Algebra , to emphasize on exact computation with exactly represented data”
Numerical vs Computer Algebra
“As numerical software are highly efficient for approximate numerical computation, it is common, in computer algebra
Carlos D’Andrea Introduction to Computer Algebra Numerical vs Computer Algebra
“As numerical software are highly efficient for approximate numerical computation, it is common, in computer algebra, to emphasize on exact computation with exactly represented data”
Carlos D’Andrea Introduction to Computer Algebra Numerical “solution”: −2.0385; −0.790734; −0.275834; 1.15098; 1.95408
Numerical vs Computer Algebra
Compute the roots of x5 − 5x3 + 4x + 1
Carlos D’Andrea Introduction to Computer Algebra −2.0385; −0.790734; −0.275834; 1.15098; 1.95408
Numerical vs Computer Algebra
Compute the roots of x5 − 5x3 + 4x + 1
Numerical “solution”:
Carlos D’Andrea Introduction to Computer Algebra Numerical vs Computer Algebra
Compute the roots of x5 − 5x3 + 4x + 1
Numerical “solution”: −2.0385; −0.790734; −0.275834; 1.15098; 1.95408
Carlos D’Andrea Introduction to Computer Algebra x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2
Exactly Represented Data
Carlos D’Andrea Introduction to Computer Algebra x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2
Exactly Represented Data
Carlos D’Andrea Introduction to Computer Algebra [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2
Exactly Represented Data
x 5 − 5x 3 + 4x + 1
Carlos D’Andrea Introduction to Computer Algebra {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2
Exactly Represented Data
x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2]
Carlos D’Andrea Introduction to Computer Algebra −2.5; −0.75; −0.25; 1; 2
Exactly Represented Data
x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +}
Carlos D’Andrea Introduction to Computer Algebra Exactly Represented Data
x 5 − 5x 3 + 4x + 1 [−2.5, −2]; [−2, −0.5]; [−0.5, 0]; [0, 1.5]; [1.5, 2] {+, −, +, −, +}, {−, +, +, −, +}, {+, +, −, −, +}, {−, −, +, +, +}, {+, +, +, +, +} −2.5; −0.75; −0.25; 1; 2
Carlos D’Andrea Introduction to Computer Algebra Given f (x) ∈ Z[x], compute a set of small approximate roots of it fast
Computational Challenge
Carlos D’Andrea Introduction to Computer Algebra fast
Computational Challenge
Given f (x) ∈ Z[x], compute a set of small approximate roots of it
Carlos D’Andrea Introduction to Computer Algebra Computational Challenge
Given f (x) ∈ Z[x], compute a set of small approximate roots of it fast
Carlos D’Andrea Introduction to Computer Algebra The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2 max{log N1, log N2}
What is a small number?
Carlos D’Andrea Introduction to Computer Algebra log N The size of a fraction N1 will be N2 max{log N1, log N2}
What is a small number?
The size of an integer N is its number of digits:
Carlos D’Andrea Introduction to Computer Algebra The size of a fraction N1 will be N2 max{log N1, log N2}
What is a small number?
The size of an integer N is its number of digits: log N
Carlos D’Andrea Introduction to Computer Algebra max{log N1, log N2}
What is a small number?
The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2
Carlos D’Andrea Introduction to Computer Algebra What is a small number?
The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2 max{log N1, log N2}
Carlos D’Andrea Introduction to Computer Algebra What is a small number?
The size of an integer N is its number of digits: log N The size of a fraction N1 will be N2 max{log N1, log N2}
Carlos D’Andrea Introduction to Computer Algebra Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x] The “size” of α is n, max{log |ai |1≤i≤n} if( ∗) is the minimal polynomial of α
Size of Algebraic Numbers √ What is “the size” of 2?
Carlos D’Andrea Introduction to Computer Algebra The “size” of α is n, max{log |ai |1≤i≤n} if( ∗) is the minimal polynomial of α
Size of Algebraic Numbers √ What is “the size” of 2? Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x]
Carlos D’Andrea Introduction to Computer Algebra if( ∗) is the minimal polynomial of α
Size of Algebraic Numbers √ What is “the size” of 2? Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x] The “size” of α is n, max{log |ai |1≤i≤n}
Carlos D’Andrea Introduction to Computer Algebra Size of Algebraic Numbers √ What is “the size” of 2? Given α ∈ C the root of n (∗) a0 + a1x + ... + anx ∈ Z[x] The “size” of α is n, max{log |ai |1≤i≤n} if( ∗) is the minimal polynomial of α
Carlos D’Andrea Introduction to Computer Algebra size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)
With this definition...
Carlos D’Andrea Introduction to Computer Algebra (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)
With this definition...
size of 2016 :
Carlos D’Andrea Introduction to Computer Algebra √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)
With this definition...
size of 2016 : (1, log 2016 ≈ 11)
Carlos D’Andrea Introduction to Computer Algebra (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)
With this definition...
size of 2016 : (1, log 2016 ≈ 11) √ size of 2 :
Carlos D’Andrea Introduction to Computer Algebra √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)
With this definition...
size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1)
Carlos D’Andrea Introduction to Computer Algebra (2, log 1 = 0) √ size of 3 2 : (3, log 2 = 1)
With this definition...
size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ 1 3 size of −2 + 2 i :
Carlos D’Andrea Introduction to Computer Algebra √ size of 3 2 : (3, log 2 = 1)
With this definition...
size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ 1 3 size of −2 + 2 i : (2, log 1 = 0)
Carlos D’Andrea Introduction to Computer Algebra (3, log 2 = 1)
With this definition...
size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 :
Carlos D’Andrea Introduction to Computer Algebra With this definition...
size of 2016 : (1, log 2016 ≈ 11) √ size of 2 : (2, log 2 = 1) √ size of −1 + 3i : (2, log 1 = 0) √2 2 size of 3 2 : (3, log 2 = 1)
Carlos D’Andrea Introduction to Computer Algebra = (1, log N) Size of
N1 +N2 : (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)
How does the size grow?
Over the integers: size of N
Carlos D’Andrea Introduction to Computer Algebra Size of
N1 +N2 : (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)
How does the size grow?
Over the integers: size of N = (1, log N)
Carlos D’Andrea Introduction to Computer Algebra (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)
How does the size grow?
Over the integers: size of N = (1, log N) Size of
N1 +N2 :
Carlos D’Andrea Introduction to Computer Algebra N1 · N2 : (1, log N1 + log N2)
How does the size grow?
Over the integers: size of N = (1, log N) Size of
N1 +N2 : (1, max{log N1, log N2})
Carlos D’Andrea Introduction to Computer Algebra (1, log N1 + log N2)
How does the size grow?
Over the integers: size of N = (1, log N) Size of
N1 +N2 : (1, max{log N1, log N2}) N1 · N2 :
Carlos D’Andrea Introduction to Computer Algebra How does the size grow?
Over the integers: size of N = (1, log N) Size of
N1 +N2 : (1, max{log N1, log N2}) N1 · N2 : (1, log N1 + log N2)
Carlos D’Andrea Introduction to Computer Algebra (6, log 32 = 5) 1 1 5 (22+3 = 26 ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???
Size of algebraic numbers
Size of: √ √ 2 · 3 2 :
Carlos D’Andrea Introduction to Computer Algebra 1 1 5 (22+3 = 26 ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???
Size of algebraic numbers
Size of: √ √ 2 · 3 2 : (6, log 32 = 5)
Carlos D’Andrea Introduction to Computer Algebra ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???
Size of algebraic numbers
Size of: √ √ 2 · 3 2 : (6, log 32 = 5) 1 1 5 (22+3 = 26
Carlos D’Andrea Introduction to Computer Algebra Size of algebraic numbers
Size of: √ √ 2 · 3 2 : (6, log 32 = 5) 1 1 5 (22+3 = 26 ↔ x6 − 25 = 0) √ √ 2 + 3 2 :???
Carlos D’Andrea Introduction to Computer Algebra ↓ x2 − 2 = 0 y6 − 6y4 − 4y3 + 12y2 − 24y = 4 √ √ size of 2 + 3 2 = (6, log 24 ≈ 4.5)
Computer Algebra helps!
x2 − 2 = 0 (y − x)3 − 2 = 0
Carlos D’Andrea Introduction to Computer Algebra √ √ size of 2 + 3 2 = (6, log 24 ≈ 4.5)
Computer Algebra helps!
x2 − 2 = 0 (y − x)3 − 2 = 0 ↓ x2 − 2 = 0 y6 − 6y4 − 4y3 + 12y2 − 24y = 4
Carlos D’Andrea Introduction to Computer Algebra Computer Algebra helps!
x2 − 2 = 0 (y − x)3 − 2 = 0 ↓ x2 − 2 = 0 y6 − 6y4 − 4y3 + 12y2 − 24y = 4 √ √ size of 2 + 3 2 = (6, log 24 ≈ 4.5)
Carlos D’Andrea Introduction to Computer Algebra if the sizes of α1, α2 are (d1, L1), (d2, L2), the sizes of both α1 + α2 and α1 · α2 is of the order of (d1 · d2, d1L2 + d2L1)
In general...
Carlos D’Andrea Introduction to Computer Algebra the sizes of both α1 + α2 and α1 · α2 is of the order of (d1 · d2, d1L2 + d2L1)
In general...
if the sizes of α1, α2 are (d1, L1), (d2, L2),
Carlos D’Andrea Introduction to Computer Algebra (d1 · d2, d1L2 + d2L1)
In general...
if the sizes of α1, α2 are (d1, L1), (d2, L2), the sizes of both α1 + α2 and α1 · α2 is of the order of
Carlos D’Andrea Introduction to Computer Algebra In general...
if the sizes of α1, α2 are (d1, L1), (d2, L2), the sizes of both α1 + α2 and α1 · α2 is of the order of (d1 · d2, d1L2 + d2L1)
Carlos D’Andrea Introduction to Computer Algebra x3 + y 3 − xy + y = 0 y9 + 2y7 + y5 − 4y4 + y = 0
Triangulating systems of equations x2y + y 2 − x = 0 x3 + y 3 − xy + y = 0
Carlos D’Andrea Introduction to Computer Algebra x3 + y 3 − xy + y = 0 y9 + 2y7 + y5 − 4y4 + y = 0
Triangulating systems of equations x2y + y 2 − x = 0 x3 + y 3 − xy + y = 0
Carlos D’Andrea Introduction to Computer Algebra Triangulating systems of equations x2y + y 2 − x = 0 x3 + y 3 − xy + y = 0
x3 + y 3 − xy + y = 0 y9 + 2y7 + y5 − 4y4 + y = 0 Carlos D’Andrea Introduction to Computer Algebra Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...
What can you get from here?
Carlos D’Andrea Introduction to Computer Algebra “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...
What can you get from here?
Number of solutions of a system of equations
Carlos D’Andrea Introduction to Computer Algebra Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...
What can you get from here?
Number of solutions of a system of equations “Location” of the solutions
Carlos D’Andrea Introduction to Computer Algebra Symbolic Integration Factorization of polynomials, matrices, differential operators,...
What can you get from here?
Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ...
Carlos D’Andrea Introduction to Computer Algebra Factorization of polynomials, matrices, differential operators,...
What can you get from here?
Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration
Carlos D’Andrea Introduction to Computer Algebra matrices, differential operators,...
What can you get from here?
Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials,
Carlos D’Andrea Introduction to Computer Algebra differential operators,...
What can you get from here?
Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices,
Carlos D’Andrea Introduction to Computer Algebra What can you get from here?
Number of solutions of a system of equations “Location” of the solutions Dimension, degree, size, ... Symbolic Integration Factorization of polynomials, matrices, differential operators,...
Carlos D’Andrea Introduction to Computer Algebra Find “the condition” on a10, a11, a20, a21 so that the system a10x0 + a11x1 = 0 a20x0 + a21x1 = 0 has a solution different from (0, 0)
“Triangulation” = Elimination of variables
Carlos D’Andrea Introduction to Computer Algebra “Triangulation” = Elimination of variables
Find “the condition” on a10, a11, a20, a21 so that the system a10x0 + a11x1 = 0 a20x0 + a21x1 = 0 has a solution different from (0, 0)
Carlos D’Andrea Introduction to Computer Algebra For a = (a1,..., aN ), k, n ∈ N let f1(a, x1,..., xn),..., fk (a, x1,..., xn) ∈ K[a, x1,..., xn]. Find conditions on a such that f1(a, x1,..., xn) = 0 f2(a, x1,..., xn) = 0 . . . . . . fk (a, x1,..., xn) = 0 has a solution
The General System with Parameters
Carlos D’Andrea Introduction to Computer Algebra The General System with Parameters
For a = (a1,..., aN ), k, n ∈ N let f1(a, x1,..., xn),..., fk (a, x1,..., xn) ∈ K[a, x1,..., xn]. Find conditions on a such that f1(a, x1,..., xn) = 0 f2(a, x1,..., xn) = 0 . . . . . . fk (a, x1,..., xn) = 0 has a solution
Carlos D’Andrea Introduction to Computer Algebra There is not necessarily a “closed” condition Tools from Geometry are needed!
Solution?
Depends on the ground field
Carlos D’Andrea Introduction to Computer Algebra Tools from Geometry are needed!
Solution?
Depends on the ground field There is not necessarily a “closed” condition
Carlos D’Andrea Introduction to Computer Algebra Solution?
Depends on the ground field There is not necessarily a “closed” condition Tools from Geometry are needed!
Carlos D’Andrea Introduction to Computer Algebra Conditions?
The “simplest” example k = n = 1, 2 d a0 + a1x1 + a2x1 + ... + ad x1 = 0
Carlos D’Andrea Introduction to Computer Algebra The “simplest” example k = n = 1, 2 d a0 + a1x1 + a2x1 + ... + ad x1 = 0 Conditions?
Carlos D’Andrea Introduction to Computer Algebra a11x1 + ... + a1nxn = 0 a21x1 + ... + a2nxn = 0 . . . . . . ak1x1 + ... + aknxn = 0 with k ≥ n Conditions: all maximal minors of aij 1≤i≤k, 1≤j≤n equal to zero
Known and “universal” examples
Carlos D’Andrea Introduction to Computer Algebra Conditions: all maximal minors of aij 1≤i≤k, 1≤j≤n equal to zero
Known and “universal” examples
a11x1 + ... + a1nxn = 0 a21x1 + ... + a2nxn = 0 . . . . . . ak1x1 + ... + aknxn = 0 with k ≥ n
Carlos D’Andrea Introduction to Computer Algebra Known and “universal” examples
a11x1 + ... + a1nxn = 0 a21x1 + ... + a2nxn = 0 . . . . . . ak1x1 + ... + aknxn = 0 with k ≥ n Conditions: all maximal minors of aij 1≤i≤k, 1≤j≤n equal to zero
Carlos D’Andrea Introduction to Computer Algebra a11v1 + ... + a1nvn = λv1 a21v1 + ... + a2nvn = λv2 . . . . . . an1v1 + ... + annvn = λvn
Condition: CA(λ) = 0
Another Classical Example
Carlos D’Andrea Introduction to Computer Algebra Condition: CA(λ) = 0
Another Classical Example a11v1 + ... + a1nvn = λv1 a21v1 + ... + a2nvn = λv2 . . . . . . an1v1 + ... + annvn = λvn
Carlos D’Andrea Introduction to Computer Algebra Another Classical Example a11v1 + ... + a1nvn = λv1 a21v1 + ... + a2nvn = λv2 . . . . . . an1v1 + ... + annvn = λvn
Condition: CA(λ) = 0
Carlos D’Andrea Introduction to Computer Algebra V ⊂ KN × Kn
↓ π1 ↓ π1
N π1(V ) ⊂ K
The set of conditions is π1(V), not necessarily described by zeroes of polynomials
Geometry
V = {(a, x1,..., xn): f1(a, x1,..., xn) = 0,... fk (a, x1,..., xn) = 0}
Carlos D’Andrea Introduction to Computer Algebra The set of conditions is π1(V), not necessarily described by zeroes of polynomials
Geometry
V = {(a, x1,..., xn): f1(a, x1,..., xn) = 0,... fk (a, x1,..., xn) = 0} V ⊂ KN × Kn
↓ π1 ↓ π1
N π1(V ) ⊂ K
Carlos D’Andrea Introduction to Computer Algebra Geometry
V = {(a, x1,..., xn): f1(a, x1,..., xn) = 0,... fk (a, x1,..., xn) = 0} V ⊂ KN × Kn
↓ π1 ↓ π1
N π1(V ) ⊂ K
The set of conditions is π1(V), not necessarily described by zeroes of polynomials
Carlos D’Andrea Introduction to Computer Algebra V ⊂ KN × Pn
↓ π1 ↓ π1
N π1(V ) ⊂ K
π1(V ) = {p1(a) = 0,..., p`(a) = 0}
Elimination Theorem
V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,... fk (a, x0, x1,..., xn) = 0}
Carlos D’Andrea Introduction to Computer Algebra π1(V ) = {p1(a) = 0,..., p`(a) = 0}
Elimination Theorem
V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,... fk (a, x0, x1,..., xn) = 0}
V ⊂ KN × Pn
↓ π1 ↓ π1
N π1(V ) ⊂ K
Carlos D’Andrea Introduction to Computer Algebra Elimination Theorem
V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,... fk (a, x0, x1,..., xn) = 0}
V ⊂ KN × Pn
↓ π1 ↓ π1
N π1(V ) ⊂ K
π1(V ) = {p1(a) = 0,..., p`(a) = 0}
Carlos D’Andrea Introduction to Computer Algebra V ⊂ KN × Pn
↓ π1 ↓ π1
N π1(V ) ⊂ K
π1(V ) = {p1(a) = 0}
“One” Condition
V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,..., fn+1(a, x0, x1,..., xn) = 0}
Carlos D’Andrea Introduction to Computer Algebra π1(V ) = {p1(a) = 0}
“One” Condition
V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,..., fn+1(a, x0, x1,..., xn) = 0}
V ⊂ KN × Pn
↓ π1 ↓ π1
N π1(V ) ⊂ K
Carlos D’Andrea Introduction to Computer Algebra “One” Condition
V = {(a, x0, x1,..., xn): f1(a, x0, x1,..., xn) = 0,..., fn+1(a, x0, x1,..., xn) = 0}
V ⊂ KN × Pn
↓ π1 ↓ π1
N π1(V ) ⊂ K
π1(V ) = {p1(a) = 0}
Carlos D’Andrea Introduction to Computer Algebra p1(a) = det(aij)
Example 1
a00x0 + a01x1 + ... + a0nxn = 0 a10x0 + a11x1 + ... + a1nxn = 0 . . . an0x0 + an1x1 + ... + annxn = 0
Carlos D’Andrea Introduction to Computer Algebra Example 1
a00x0 + a01x1 + ... + a0nxn = 0 a10x0 + a11x1 + ... + a1nxn = 0 . . . an0x0 + an1x1 + ... + annxn = 0
p1(a) = det(aij)
Carlos D’Andrea Introduction to Computer Algebra a10 a11 ... a1d1 0 ... 0
0 a10 ... a1d1−1 a1d1 ... 0 . . . ...... ...... 0 0 ... a ...... a p (a) = det 10 1d1 1 a a ... a 0 ... 0 20 21 2d2 0 a ... a a ... 0 20 2d2−1 2d2 . . . . . ......
0 0 ... a20 ...... a2d2
Example 2
d1 d1−1 d1 f1 = a10x0 + a11x0 x1 + ... + a1d1 x1 d2 d2−1 d2 f2 = a20x0 + a21x0 x1 + ... + a2d2 x1
Carlos D’Andrea Introduction to Computer Algebra Example 2
d1 d1−1 d1 f1 = a10x0 + a11x0 x1 + ... + a1d1 x1 d2 d2−1 d2 f2 = a20x0 + a21x0 x1 + ... + a2d2 x1 a10 a11 ... a1d1 0 ... 0
0 a10 ... a1d1−1 a1d1 ... 0 . . . ...... ...... 0 0 ... a ...... a p (a) = det 10 1d1 1 a a ... a 0 ... 0 20 21 2d2 0 a ... a a ... 0 20 2d2−1 2d2 . . . . . ......
0 0 ... a20 ...... a2d2 Carlos D’Andrea Introduction to Computer Algebra Res(f1, f2,..., fn+1)
Example 3
P α0 αn f1 = a1,α ,...,α x0 ... xn α0+...+αn=d1 0 n P α0 αn f2 = α +...+α =d a2,α0,...,αn x0 ... xn . 0 n 2 . f = P a x α0 ... x αn n+1 α0+...+αn=dn+1 n+1,α0,...,αn 0 n
Carlos D’Andrea Introduction to Computer Algebra Example 3
P α0 αn f1 = a1,α ,...,α x0 ... xn α0+...+αn=d1 0 n P α0 αn f2 = α +...+α =d a2,α0,...,αn x0 ... xn . 0 n 2 . f = P a x α0 ... x αn n+1 α0+...+αn=dn+1 n+1,α0,...,αn 0 n
Res(f1, f2,..., fn+1)
Carlos D’Andrea Introduction to Computer Algebra Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .
Effective tools
Linear Polynomial
Carlos D’Andrea Introduction to Computer Algebra Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .
Effective tools
Linear Polynomial Determinants Resultants
Carlos D’Andrea Introduction to Computer Algebra Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .
Effective tools
Linear Polynomial Determinants Resultants Cramer’s rule u-resultants
Carlos D’Andrea Introduction to Computer Algebra Triangulation Triangular systems . .
Effective tools
Linear Polynomial Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases
Carlos D’Andrea Introduction to Computer Algebra . .
Effective tools
Linear Polynomial Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems
Carlos D’Andrea Introduction to Computer Algebra Effective tools
Linear Polynomial Determinants Resultants Cramer’s rule u-resultants Gauss elimination Gr¨obnerBases Triangulation Triangular systems . .
Carlos D’Andrea Introduction to Computer Algebra f1(x1,..., xn) = 0 f2(x1,..., xn) = 0 The size of the solutions of . . . . . . fn(x1,..., xn) = 0 where size of fi = (d, L) is bounded by and generically equal to