Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea...

215
Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Transcript of Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea...

Page 1: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Introduction to Computer Algebra

Carlos D’Andrea

Oslo, December 1st 2016

Carlos D’Andrea

Introduction to Computer Algebra

Page 2: Introduction to Computer Algebra - UB€¦ · 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

Page 3: Introduction to Computer Algebra - UB€¦ · 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

Page 4: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra

Carlos D’Andrea

Introduction to Computer Algebra

Page 5: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra

Carlos D’Andrea

Introduction to Computer Algebra

Page 6: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra

Carlos D’Andrea

Introduction to Computer Algebra

Page 7: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra

Carlos D’Andrea

Introduction to Computer Algebra

Page 8: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra

Carlos D’Andrea

Introduction to Computer Algebra

Page 9: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

From Wikipedia (Symbolic Computation)

“...is a scientific area that refers tothe study and development ofalgorithms and software for

manipulating mathematicalexpressions and other mathematical

objects...”

Carlos D’Andrea

Introduction to Computer Algebra

Page 10: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

From Wikipedia (Symbolic Computation)

“...is a scientific area that refers tothe study and development of

algorithms and software formanipulating mathematical

expressions and other mathematicalobjects...”

Carlos D’Andrea

Introduction to Computer Algebra

Page 11: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

From Wikipedia (Symbolic Computation)

“...is a scientific area that refers tothe study and development ofalgorithms and software

formanipulating mathematical

expressions and other mathematicalobjects...”

Carlos D’Andrea

Introduction to Computer Algebra

Page 12: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

From Wikipedia (Symbolic Computation)

“...is a scientific area that refers tothe study and development ofalgorithms and software for

manipulating mathematicalexpressions and other mathematical

objects...”Carlos D’Andrea

Introduction to Computer Algebra

Page 13: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

From Wikipedia (Symbolic Computation)

“A large part of the work in the fieldconsists in revisiting classical algebrain order to

make it effective and todiscover efficient algorithms to

implement this effectiveness”

Carlos D’Andrea

Introduction to Computer Algebra

Page 14: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

From Wikipedia (Symbolic Computation)

“A large part of the work in the fieldconsists in revisiting classical algebrain order to make it effective and to

discover efficient algorithms toimplement this effectiveness”

Carlos D’Andrea

Introduction to Computer Algebra

Page 15: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 16: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 17: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 18: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 19: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is “an algorithm” for CA?

Given A, B ∈ Z,compute the productA · B ∈ Z

Carlos D’Andrea

Introduction to Computer Algebra

Page 20: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is “an algorithm” for CA?

Given A, B ∈ Z,

compute the productA · B ∈ Z

Carlos D’Andrea

Introduction to Computer Algebra

Page 21: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is “an algorithm” for CA?

Given A, B ∈ Z,compute the productA · B ∈ Z

Carlos D’Andrea

Introduction to Computer Algebra

Page 22: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is “an algorithm” for CA?

Given A, B ∈ Z,compute the productA · B ∈ Z

Carlos D’Andrea

Introduction to Computer Algebra

Page 23: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example: The Multiplication Algorithm

Input: A, B ∈ Z

Output: A · B ∈ ZProcedure:

Carlos D’Andrea

Introduction to Computer Algebra

Page 24: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example: The Multiplication Algorithm

Input: A, B ∈ ZOutput: A · B ∈ Z

Procedure:

Carlos D’Andrea

Introduction to Computer Algebra

Page 25: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example: The Multiplication Algorithm

Input: A, B ∈ ZOutput: A · B ∈ ZProcedure:

Carlos D’Andrea

Introduction to Computer Algebra

Page 26: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective: the procedure must finishafter a finite number of operations,

and give the right answer

Efficient: the procedure must be asshort as possible and use as less

space as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 27: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective:

the procedure must finishafter a finite number of operations,

and give the right answer

Efficient: the procedure must be asshort as possible and use as less

space as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 28: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective: the procedure must finishafter a finite number of operations,

and give the right answer

Efficient: the procedure must be asshort as possible and use as less

space as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 29: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective: the procedure must finishafter a finite number of operations,

and give the right answer

Efficient: the procedure must be asshort as possible and use as less

space as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 30: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective: the procedure must finishafter a finite number of operations,

and give the right answer

Efficient:

the procedure must be asshort as possible and use as less

space as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 31: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective: the procedure must finishafter a finite number of operations,

and give the right answer

Efficient: the procedure must be asshort as possible

and use as lessspace as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 32: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective and Efficient

Effective: the procedure must finishafter a finite number of operations,

and give the right answer

Efficient: the procedure must be asshort as possible and use as less

space as possible

Carlos D’Andrea

Introduction to Computer Algebra

Page 33: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Short and less Space

Input: A, B ∈ Z

of N digits

Output: A · B ∈ ZOutput’s size is around 2N digits

High school algorithm takes aroundO(N2) operations

It is effective, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 34: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Short and less Space

Input: A, B ∈ Z of N digits

Output: A · B ∈ ZOutput’s size is around 2N digits

High school algorithm takes aroundO(N2) operations

It is effective, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 35: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 around 2N digitsHigh school algorithm takes around

O(N2) operationsIt is effective, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 36: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Short and less Space

Input: A, B ∈ Z of N digits

Output: A · B ∈ ZOutput’s size is around 2N digits

High school algorithm takes aroundO(N2) operations

It is effective, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 37: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Short and less Space

Input: A, B ∈ Z of N digits

Output: A · B ∈ ZOutput’s size is around 2N digits

High school algorithm takes aroundO(N2) operations

It is effective, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 38: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Short and less Space

Input: A, B ∈ Z of N digits

Output: A · B ∈ ZOutput’s size is around 2N digits

High school algorithm takes aroundO(N2) operations

It is effective

, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 39: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Short and less Space

Input: A, B ∈ Z of N digits

Output: A · B ∈ ZOutput’s size is around 2N digits

High school algorithm takes aroundO(N2) operations

It is effective, but is it efficient?

Carlos D’Andrea

Introduction to Computer Algebra

Page 40: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Efficient Multiplication

Karatsuba’s algorithm (1960):O(N1.585)

Carlos D’Andrea

Introduction to Computer Algebra

Page 41: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Efficient Multiplication

Toom-Cook’s algorithm (1966):O(N log(2k−1)/ log k), k ≥ 3

Schonhage-Strassen’s algorithm(1971): O(N logN log logN)

Carlos D’Andrea

Introduction to Computer Algebra

Page 42: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Efficient Multiplication

Toom-Cook’s algorithm (1966):O(N log(2k−1)/ log k), k ≥ 3

Schonhage-Strassen’s algorithm(1971): O(N logN log logN)

Carlos D’Andrea

Introduction to Computer Algebra

Page 43: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Efficient Multiplication

Furer’s algorithm (2007):O(N logN 2O(log

∗N)))

Is it the most efficient??

Carlos D’Andrea

Introduction to Computer Algebra

Page 44: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Efficient Multiplication

Furer’s algorithm (2007):O(N logN 2O(log

∗N)))

Is it the most efficient??

Carlos D’Andrea

Introduction to Computer Algebra

Page 45: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical vs Computer Algebra

“As numerical software are highlyefficient for approximate numerical

computation, it is common, incomputer algebra, to emphasize

on exact computation withexactly represented data”

Carlos D’Andrea

Introduction to Computer Algebra

Page 46: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical vs Computer Algebra

“As numerical software are highlyefficient for approximate numerical

computation, it is common, incomputer algebra

, to emphasizeon exact computation withexactly represented data”

Carlos D’Andrea

Introduction to Computer Algebra

Page 47: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical vs Computer Algebra

“As numerical software are highlyefficient for approximate numerical

computation, it is common, incomputer algebra, to emphasize

on exact computation withexactly represented data”

Carlos D’Andrea

Introduction to Computer Algebra

Page 48: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical vs Computer Algebra

Compute the roots ofx5 − 5x3 + 4x + 1

Numerical “solution”:−2.0385;−0.790734;−0.275834; 1.15098; 1.95408

Carlos D’Andrea

Introduction to Computer Algebra

Page 49: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical vs Computer Algebra

Compute the roots ofx5 − 5x3 + 4x + 1

Numerical “solution”:

−2.0385;−0.790734;−0.275834; 1.15098; 1.95408

Carlos D’Andrea

Introduction to Computer Algebra

Page 50: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical vs Computer Algebra

Compute the roots ofx5 − 5x3 + 4x + 1

Numerical “solution”:−2.0385;−0.790734;−0.275834; 1.15098; 1.95408

Carlos D’Andrea

Introduction to Computer Algebra

Page 51: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Exactly Represented Data

x5 − 5x3 + 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

Page 52: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Exactly Represented Data

x5 − 5x3 + 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

Page 53: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Exactly Represented Data

x5 − 5x3 + 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

Page 54: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Exactly Represented Data

x5 − 5x3 + 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

Page 55: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Exactly Represented Data

x5 − 5x3 + 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

Page 56: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Exactly Represented Data

x5 − 5x3 + 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

Page 57: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computational Challenge

Given f (x) ∈ Z[x ], compute a set ofsmall approximate roots of it fast

Carlos D’Andrea

Introduction to Computer Algebra

Page 58: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computational Challenge

Given f (x) ∈ Z[x ], compute a set ofsmall approximate roots of it

fast

Carlos D’Andrea

Introduction to Computer Algebra

Page 59: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computational Challenge

Given f (x) ∈ Z[x ], compute a set ofsmall approximate roots of it fast

Carlos D’Andrea

Introduction to Computer Algebra

Page 60: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is a small number?

The size of an integer N is itsnumber of digits: logN

The size of a fraction N1N2

will be

max{logN1, logN2}

Carlos D’Andrea

Introduction to Computer Algebra

Page 61: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is a small number?

The size of an integer N is itsnumber of digits:

logNThe size of a fraction N1

N2will be

max{logN1, logN2}

Carlos D’Andrea

Introduction to Computer Algebra

Page 62: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is a small number?

The size of an integer N is itsnumber of digits: logN

The size of a fraction N1N2

will be

max{logN1, logN2}

Carlos D’Andrea

Introduction to Computer Algebra

Page 63: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is a small number?

The size of an integer N is itsnumber of digits: logN

The size of a fraction N1N2

will be

max{logN1, logN2}

Carlos D’Andrea

Introduction to Computer Algebra

Page 64: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is a small number?

The size of an integer N is itsnumber of digits: logN

The size of a fraction N1N2

will be

max{logN1, logN2}Carlos D’Andrea

Introduction to Computer Algebra

Page 65: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What is a small number?

The size of an integer N is itsnumber of digits: logN

The size of a fraction N1N2

will be

max{logN1, logN2}Carlos D’Andrea

Introduction to Computer Algebra

Page 66: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of Algebraic Numbers

What is “the size” of√

2?

Given α ∈ C the root of(∗) a0 + a1x + . . . + anx

n ∈ 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

Page 67: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of Algebraic Numbers

What is “the size” of√

2?Given α ∈ C the root of

(∗) a0 + a1x + . . . + anxn ∈ 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

Page 68: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of Algebraic Numbers

What is “the size” of√

2?Given α ∈ C the root of

(∗) a0 + a1x + . . . + anxn ∈ 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

Page 69: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of Algebraic Numbers

What is “the size” of√

2?Given α ∈ C the root of

(∗) a0 + a1x + . . . + anxn ∈ 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

Page 70: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 71: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 72: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 73: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 74: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 75: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i :

(2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 76: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 77: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 :

(3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 78: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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 −12 +

√32 i : (2, log 1 = 0)

size of 3√

2 : (3, log 2 = 1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 79: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How does the size grow?

Over the integers: size ofN

= (1, logN)Size of

N1+N2 : (1,max{logN1, logN2})N1 · N2 : (1, logN1 + logN2)

Carlos D’Andrea

Introduction to Computer Algebra

Page 80: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How does the size grow?

Over the integers: size ofN = (1, logN)

Size of

N1+N2 : (1,max{logN1, logN2})N1 · N2 : (1, logN1 + logN2)

Carlos D’Andrea

Introduction to Computer Algebra

Page 81: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How does the size grow?

Over the integers: size ofN = (1, logN)

Size of

N1+N2 :

(1,max{logN1, logN2})N1 · N2 : (1, logN1 + logN2)

Carlos D’Andrea

Introduction to Computer Algebra

Page 82: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How does the size grow?

Over the integers: size ofN = (1, logN)

Size of

N1+N2 : (1,max{logN1, logN2})

N1 · N2 : (1, logN1 + logN2)

Carlos D’Andrea

Introduction to Computer Algebra

Page 83: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How does the size grow?

Over the integers: size ofN = (1, logN)

Size of

N1+N2 : (1,max{logN1, logN2})N1 · N2 :

(1, logN1 + logN2)

Carlos D’Andrea

Introduction to Computer Algebra

Page 84: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How does the size grow?

Over the integers: size ofN = (1, logN)

Size of

N1+N2 : (1,max{logN1, logN2})N1 · N2 : (1, logN1 + logN2)

Carlos D’Andrea

Introduction to Computer Algebra

Page 85: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of algebraic numbers

Size of:√2 · 3√

2 :

(6, log 32 = 5)

(212+

13 = 2

56 ↔ x6 − 25 = 0)√

2 + 3√

2 :???

Carlos D’Andrea

Introduction to Computer Algebra

Page 86: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of algebraic numbers

Size of:√2 · 3√

2 : (6, log 32 = 5)

(212+

13 = 2

56 ↔ x6 − 25 = 0)√

2 + 3√

2 :???

Carlos D’Andrea

Introduction to Computer Algebra

Page 87: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of algebraic numbers

Size of:√2 · 3√

2 : (6, log 32 = 5)

(212+

13 = 2

56

↔ x6 − 25 = 0)√2 + 3√

2 :???

Carlos D’Andrea

Introduction to Computer Algebra

Page 88: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Size of algebraic numbers

Size of:√2 · 3√

2 : (6, log 32 = 5)

(212+

13 = 2

56 ↔ x6 − 25 = 0)√

2 + 3√

2 :???

Carlos D’Andrea

Introduction to Computer Algebra

Page 89: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra helps!

{x2 − 2 = 0(y − x)3 − 2 = 0

↓{x2 − 2 = 0y6 − 6y4 − 4y3 + 12y2 − 24y = 4

size of√

2 +3√

2 = (6, log 24 ≈ 4.5)

Carlos D’Andrea

Introduction to Computer Algebra

Page 90: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra helps!

{x2 − 2 = 0(y − x)3 − 2 = 0

↓{x2 − 2 = 0y6 − 6y4 − 4y3 + 12y2 − 24y = 4

size of√

2 +3√

2 = (6, log 24 ≈ 4.5)

Carlos D’Andrea

Introduction to Computer Algebra

Page 91: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computer Algebra helps!

{x2 − 2 = 0(y − x)3 − 2 = 0

↓{x2 − 2 = 0y6 − 6y4 − 4y3 + 12y2 − 24y = 4

size of√

2 +3√

2 = (6, log 24 ≈ 4.5)

Carlos D’Andrea

Introduction to Computer Algebra

Page 92: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 93: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 94: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 95: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 96: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Triangulating systems of equations{x2y + y 2 − x = 0x3 + y 3 − xy + y = 0

{x3 + y 3 − xy + y = 0y9 + 2y7 + y5 − 4y4 + y = 0

Carlos D’Andrea

Introduction to Computer Algebra

Page 97: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Triangulating systems of equations{x2y + y 2 − x = 0x3 + y 3 − xy + y = 0

{x3 + y 3 − xy + y = 0y9 + 2y7 + y5 − 4y4 + y = 0

Carlos D’Andrea

Introduction to Computer Algebra

Page 98: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Triangulating systems of equations{x2y + y 2 − x = 0x3 + y 3 − xy + y = 0

{x3 + y 3 − xy + y = 0y9 + 2y7 + y5 − 4y4 + y = 0

Carlos D’Andrea

Introduction to Computer Algebra

Page 99: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutionsDimension, degree, size, ...Symbolic IntegrationFactorization of polynomials,matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 100: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations

“Location” of the solutionsDimension, degree, size, ...Symbolic IntegrationFactorization of polynomials,matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 101: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutions

Dimension, degree, size, ...Symbolic IntegrationFactorization of polynomials,matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 102: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutionsDimension, degree, size, ...

Symbolic IntegrationFactorization of polynomials,matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 103: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutionsDimension, degree, size, ...Symbolic Integration

Factorization of polynomials,matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 104: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutionsDimension, degree, size, ...Symbolic IntegrationFactorization of polynomials,

matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 105: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutionsDimension, degree, size, ...Symbolic IntegrationFactorization of polynomials,matrices,

differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 106: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

What can you get from here?

Number of solutions of a system ofequations“Location” of the solutionsDimension, degree, size, ...Symbolic IntegrationFactorization of polynomials,matrices, differential operators,...

Carlos D’Andrea

Introduction to Computer Algebra

Page 107: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

“Triangulation” = Elimination of variables

Find “the condition” ona10, a11, a20, a21 so that the system{

a10x0 + a11x1 = 0a20x0 + a21x1 = 0

has a solution different from (0, 0)

Carlos D’Andrea

Introduction to Computer Algebra

Page 108: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

“Triangulation” = Elimination of variables

Find “the condition” ona10, a11, a20, a21 so that the system{

a10x0 + a11x1 = 0a20x0 + a21x1 = 0

has a solution different from (0, 0)

Carlos D’Andrea

Introduction to Computer Algebra

Page 109: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The General System with Parameters

For a = (a1, . . . , aN), k , n ∈ N letf1(a, x1, . . . , xn), . . . , fk(a, x1, . . . , xn) ∈

K[a, x1, . . . , xn]. Find conditions on a such thatf1(a, x1, . . . , xn) = 0f2(a, x1, . . . , xn) = 0

......

...fk(a, x1, . . . , xn) = 0

has a solution

Carlos D’Andrea

Introduction to Computer Algebra

Page 110: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The General System with Parameters

For a = (a1, . . . , aN), k , n ∈ N letf1(a, x1, . . . , xn), . . . , fk(a, x1, . . . , xn) ∈

K[a, x1, . . . , xn]. Find conditions on a such thatf1(a, x1, . . . , xn) = 0f2(a, x1, . . . , xn) = 0

......

...fk(a, x1, . . . , xn) = 0

has a solution

Carlos D’Andrea

Introduction to Computer Algebra

Page 111: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 112: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 113: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

Page 114: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The “simplest” example

k = n = 1,

a0 + a1x1 + a2x12 + . . . + adx1

d = 0

Conditions?

Carlos D’Andrea

Introduction to Computer Algebra

Page 115: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The “simplest” example

k = n = 1,

a0 + a1x1 + a2x12 + . . . + adx1

d = 0

Conditions?

Carlos D’Andrea

Introduction to Computer Algebra

Page 116: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Known and “universal” examples

a11x1 + . . .+ a1nxn = 0a21x1 + . . .+ a2nxn = 0

......

...ak1x1 + . . .+ aknxn = 0

with k ≥ nConditions: all maximal minors of

(aij)1≤i≤k, 1≤j≤n

equal to zero

Carlos D’Andrea

Introduction to Computer Algebra

Page 117: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Known and “universal” examples

a11x1 + . . .+ a1nxn = 0a21x1 + . . .+ 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

Page 118: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Known and “universal” examples

a11x1 + . . .+ a1nxn = 0a21x1 + . . .+ a2nxn = 0

......

...ak1x1 + . . .+ aknxn = 0

with k ≥ nConditions: all maximal minors of

(aij)1≤i≤k, 1≤j≤n

equal to zero

Carlos D’Andrea

Introduction to Computer Algebra

Page 119: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Another Classical Example

a11v1 + . . . + a1nvn = λv1a21v1 + . . . + a2nvn = λv2

... ... ...an1v1 + . . . + annvn = λvn

Condition: CA(λ) = 0

Carlos D’Andrea

Introduction to Computer Algebra

Page 120: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Another Classical Examplea11v1 + . . . + a1nvn = λv1a21v1 + . . . + a2nvn = λv2

... ... ...an1v1 + . . . + annvn = λvn

Condition: CA(λ) = 0

Carlos D’Andrea

Introduction to Computer Algebra

Page 121: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Another Classical Examplea11v1 + . . . + a1nvn = λv1a21v1 + . . . + a2nvn = λv2

... ... ...an1v1 + . . . + annvn = λvn

Condition: CA(λ) = 0

Carlos D’Andrea

Introduction to Computer Algebra

Page 122: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

The set of conditions is π1(V), not necessarilydescribed by zeroes of polynomials

Carlos D’Andrea

Introduction to Computer Algebra

Page 123: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

The set of conditions is π1(V), not necessarilydescribed by zeroes of polynomials

Carlos D’Andrea

Introduction to Computer Algebra

Page 124: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

The set of conditions is π1(V), not necessarilydescribed by zeroes of polynomials

Carlos D’Andrea

Introduction to Computer Algebra

Page 125: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

π1(V ) = {p1(a) = 0, . . . , p`(a) = 0}

Carlos D’Andrea

Introduction to Computer Algebra

Page 126: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

π1(V ) = {p1(a) = 0, . . . , p`(a) = 0}

Carlos D’Andrea

Introduction to Computer Algebra

Page 127: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

π1(V ) = {p1(a) = 0, . . . , p`(a) = 0}

Carlos D’Andrea

Introduction to Computer Algebra

Page 128: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

π1(V ) = {p1(a) = 0}

Carlos D’Andrea

Introduction to Computer Algebra

Page 129: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

π1(V ) = {p1(a) = 0}

Carlos D’Andrea

Introduction to Computer Algebra

Page 130: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 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

π1(V ) ⊂ KN

π1(V ) = {p1(a) = 0}

Carlos D’Andrea

Introduction to Computer Algebra

Page 131: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example 1

a00x0 + a01x1 + . . . + a0nxn = 0a10x0 + a11x1 + . . . + a1nxn = 0

... ... ...an0x0 + an1x1 + . . . + annxn = 0

p1(a) = det(aij)

Carlos D’Andrea

Introduction to Computer Algebra

Page 132: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example 1

a00x0 + a01x1 + . . . + a0nxn = 0a10x0 + a11x1 + . . . + a1nxn = 0

... ... ...an0x0 + an1x1 + . . . + annxn = 0

p1(a) = det(aij)

Carlos D’Andrea

Introduction to Computer Algebra

Page 133: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example 2

{f1 = a10x0

d1 + a11x0d1−1x1 + . . .+ a1d1x1

d1

f2 = a20x0d2 + a21x0

d2−1x1 + . . .+ a2d2x1d2

p1(a) = det

a10 a11 . . . a1d1 0 . . . 00 a10 . . . a1d1−1 a1d1 . . . 0...

.... . . . . . . . .

. . ....

0 0 . . . a10 . . . . . . a1d1a20 a21 . . . a2d2 0 . . . 00 a20 . . . a2d2−1 a2d2 . . . 0...

.... . . . . . . . .

. . ....

0 0 . . . a20 . . . . . . a2d2

Carlos D’Andrea

Introduction to Computer Algebra

Page 134: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example 2

{f1 = a10x0

d1 + a11x0d1−1x1 + . . .+ a1d1x1

d1

f2 = a20x0d2 + a21x0

d2−1x1 + . . .+ a2d2x1d2

p1(a) = det

a10 a11 . . . a1d1 0 . . . 00 a10 . . . a1d1−1 a1d1 . . . 0...

.... . . . . . . . .

. . ....

0 0 . . . a10 . . . . . . a1d1a20 a21 . . . a2d2 0 . . . 00 a20 . . . a2d2−1 a2d2 . . . 0...

.... . . . . . . . .

. . ....

0 0 . . . a20 . . . . . . a2d2

Carlos D’Andrea

Introduction to Computer Algebra

Page 135: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example 3

f1 =

∑α0+...+αn=d1

a1,α0,...,αnx0α0. . . xn

αn

f2 =∑

α0+...+αn=d2a2,α0,...,αn

x0α0. . . xn

αn

...fn+1 =

∑α0+...+αn=dn+1

an+1,α0,...,αnx0α0. . . xn

αn

Res(f1, f2, . . . , fn+1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 136: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Example 3

f1 =

∑α0+...+αn=d1

a1,α0,...,αnx0α0. . . xn

αn

f2 =∑

α0+...+αn=d2a2,α0,...,αn

x0α0. . . xn

αn

...fn+1 =

∑α0+...+αn=dn+1

an+1,α0,...,αnx0α0. . . xn

αn

Res(f1, f2, . . . , fn+1)

Carlos D’Andrea

Introduction to Computer Algebra

Page 137: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective tools

Linear Polynomial

Determinants ResultantsCramer’s rule u-resultantsGauss elimination Grobner BasesTriangulation Triangular systems... ...

Carlos D’Andrea

Introduction to Computer Algebra

Page 138: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective tools

Linear PolynomialDeterminants Resultants

Cramer’s rule u-resultantsGauss elimination Grobner BasesTriangulation Triangular systems... ...

Carlos D’Andrea

Introduction to Computer Algebra

Page 139: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective tools

Linear PolynomialDeterminants ResultantsCramer’s rule u-resultants

Gauss elimination Grobner BasesTriangulation Triangular systems... ...

Carlos D’Andrea

Introduction to Computer Algebra

Page 140: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective tools

Linear PolynomialDeterminants ResultantsCramer’s rule u-resultantsGauss elimination Grobner Bases

Triangulation Triangular systems... ...

Carlos D’Andrea

Introduction to Computer Algebra

Page 141: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective tools

Linear PolynomialDeterminants ResultantsCramer’s rule u-resultantsGauss elimination Grobner BasesTriangulation Triangular systems

... ...

Carlos D’Andrea

Introduction to Computer Algebra

Page 142: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Effective tools

Linear PolynomialDeterminants ResultantsCramer’s rule u-resultantsGauss elimination Grobner BasesTriangulation Triangular systems... ...

Carlos D’Andrea

Introduction to Computer Algebra

Page 143: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How “efficient” is all this?

The size of the solutions of

f1(x1, . . . , xn) = 0f2(x1, . . . , xn) = 0

......

...fn(x1, . . . , xn) = 0

where size of fi = (d , L)is bounded by and generically equal to(

dn, ndn−1L)

Carlos D’Andrea

Introduction to Computer Algebra

Page 144: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How “efficient” is all this?

The size of the solutions of

f1(x1, . . . , xn) = 0f2(x1, . . . , xn) = 0

......

...fn(x1, . . . , xn) = 0

where size of fi = (d , L)is bounded by and generically equal to(

dn, ndn−1L)

Carlos D’Andrea

Introduction to Computer Algebra

Page 145: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How “efficient” is all this?

The size of the solutions of

f1(x1, . . . , xn) = 0f2(x1, . . . , xn) = 0

......

...fn(x1, . . . , xn) = 0

where size of fi = (d , L)

is bounded by and generically equal to(dn, ndn−1L

)

Carlos D’Andrea

Introduction to Computer Algebra

Page 146: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

How “efficient” is all this?

The size of the solutions of

f1(x1, . . . , xn) = 0f2(x1, . . . , xn) = 0

......

...fn(x1, . . . , xn) = 0

where size of fi = (d , L)is bounded by and generically equal to(

dn, ndn−1L)

Carlos D’Andrea

Introduction to Computer Algebra

Page 147: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Carlos D’Andrea

Introduction to Computer Algebra

Page 148: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The output is already exponential!!!

And moreover: Complexity ofComputing Grobner bases is doubly

exponential

Carlos D’Andrea

Introduction to Computer Algebra

Page 149: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The output is already exponential!!!

And moreover:

Complexity ofComputing Grobner bases is doubly

exponential

Carlos D’Andrea

Introduction to Computer Algebra

Page 150: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

The output is already exponential!!!

And moreover: Complexity ofComputing Grobner bases is doubly

exponentialCarlos D’Andrea

Introduction to Computer Algebra

Page 151: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Changing the model

Probabilistic algorithms

Computations “over the Reals”

Homotopy methods

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 152: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Changing the model

Probabilistic algorithms

Computations “over the Reals”

Homotopy methods

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 153: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Changing the model

Probabilistic algorithms

Computations “over the Reals”

Homotopy methods

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 154: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Changing the model

Probabilistic algorithms

Computations “over the Reals”

Homotopy methods

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 155: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computing over the reals: BSS-machine

is a Random Access Machinewith registers that can store

arbitrary real numbers and thatcan compute rational functions over

reals at unit cost

Carlos D’Andrea

Introduction to Computer Algebra

Page 156: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computing over the reals: BSS-machine

is a Random Access Machine

with registers that can storearbitrary real numbers and thatcan compute rational functions over

reals at unit cost

Carlos D’Andrea

Introduction to Computer Algebra

Page 157: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computing over the reals: BSS-machine

is a Random Access Machinewith registers that can store

arbitrary real numbers

and thatcan compute rational functions over

reals at unit cost

Carlos D’Andrea

Introduction to Computer Algebra

Page 158: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Computing over the reals: BSS-machine

is a Random Access Machinewith registers that can store

arbitrary real numbers and thatcan compute rational functions over

reals at unit cost

Carlos D’Andrea

Introduction to Computer Algebra

Page 159: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Steve Smale’s 17th’s problem (1998)

is there an algorithm which computesan approximate solution of asystem of polynomials in time

polynomial on the average, inthe size of the input ?

Carlos D’Andrea

Introduction to Computer Algebra

Page 160: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Steve Smale’s 17th’s problem (1998)

is there an algorithm which computesan approximate solution of asystem of polynomials in time

polynomial on the average, inthe size of the input ?

Carlos D’Andrea

Introduction to Computer Algebra

Page 161: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Homotopies

Start with an “easy” system“Chase” the roots with anhomotopy + Newton’s method

Carlos D’Andrea

Introduction to Computer Algebra

Page 162: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Homotopies

Start with an “easy” system

“Chase” the roots with anhomotopy + Newton’s method

Carlos D’Andrea

Introduction to Computer Algebra

Page 163: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Homotopies

Start with an “easy” system“Chase” the roots with anhomotopy + Newton’s method

Carlos D’Andrea

Introduction to Computer Algebra

Page 164: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical Algebraic Geometry

By using homotopies, one cancompute

Irreducible components

Multiplicities

Irreducible decomposition

Dimension

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 165: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical Algebraic Geometry

By using homotopies, one cancompute

Irreducible components

Multiplicities

Irreducible decomposition

Dimension

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 166: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical Algebraic Geometry

By using homotopies, one cancompute

Irreducible components

Multiplicities

Irreducible decomposition

Dimension

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 167: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical Algebraic Geometry

By using homotopies, one cancompute

Irreducible components

Multiplicities

Irreducible decomposition

Dimension

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 168: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical Algebraic Geometry

By using homotopies, one cancompute

Irreducible components

Multiplicities

Irreducible decomposition

Dimension

. . .

Carlos D’Andrea

Introduction to Computer Algebra

Page 169: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Numerical Algebraic Geometry

By using homotopies, one cancompute

Irreducible components

Multiplicities

Irreducible decomposition

Dimension

. . .Carlos D’Andrea

Introduction to Computer Algebra

Page 170: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Popular software in Computer Algebra

MapleMathematicaBertiniCoCoAMacaulay2SageMathSingular

Carlos D’Andrea

Introduction to Computer Algebra

Page 171: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Maple

Developed by MapleSoftCore Team: Waterloo (Canada)http://www.maplesoft.com/

Carlos D’Andrea

Introduction to Computer Algebra

Page 172: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Maple

Developed by MapleSoft

Core Team: Waterloo (Canada)http://www.maplesoft.com/

Carlos D’Andrea

Introduction to Computer Algebra

Page 173: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Maple

Developed by MapleSoftCore Team: Waterloo (Canada)

http://www.maplesoft.com/

Carlos D’Andrea

Introduction to Computer Algebra

Page 174: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Maple

Developed by MapleSoftCore Team: Waterloo (Canada)http://www.maplesoft.com/

Carlos D’Andrea

Introduction to Computer Algebra

Page 175: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Mathematica

Developed by Wolfram

Core Team: Champaign, IL (USA)

https://www.wolfram.com/mathematica/

Carlos D’Andrea

Introduction to Computer Algebra

Page 176: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Mathematica

Developed by Wolfram

Core Team: Champaign, IL (USA)

https://www.wolfram.com/mathematica/

Carlos D’Andrea

Introduction to Computer Algebra

Page 177: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Mathematica

Developed by Wolfram

Core Team: Champaign, IL (USA)

https://www.wolfram.com/mathematica/

Carlos D’Andrea

Introduction to Computer Algebra

Page 178: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Mathematica

Developed by Wolfram

Core Team: Champaign, IL (USA)

https://www.wolfram.com/mathematica/

Carlos D’Andrea

Introduction to Computer Algebra

Page 179: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Bertini

Free software

Core Team: University of NotreDame (USA)

https://bertini.nd.edu/

Carlos D’Andrea

Introduction to Computer Algebra

Page 180: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Bertini

Free software

Core Team: University of NotreDame (USA)

https://bertini.nd.edu/

Carlos D’Andrea

Introduction to Computer Algebra

Page 181: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Bertini

Free software

Core Team: University of NotreDame (USA)

https://bertini.nd.edu/

Carlos D’Andrea

Introduction to Computer Algebra

Page 182: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Bertini

Free software

Core Team: University of NotreDame (USA)

https://bertini.nd.edu/

Carlos D’Andrea

Introduction to Computer Algebra

Page 183: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

CoCoA

Free software

Core Team: University of Genoa(Italy)

http://cocoa.dima.unige.it/

Carlos D’Andrea

Introduction to Computer Algebra

Page 184: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

CoCoA

Free software

Core Team: University of Genoa(Italy)

http://cocoa.dima.unige.it/

Carlos D’Andrea

Introduction to Computer Algebra

Page 185: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

CoCoA

Free software

Core Team: University of Genoa(Italy)

http://cocoa.dima.unige.it/

Carlos D’Andrea

Introduction to Computer Algebra

Page 186: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

CoCoA

Free software

Core Team: University of Genoa(Italy)

http://cocoa.dima.unige.it/

Carlos D’Andrea

Introduction to Computer Algebra

Page 187: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Macaulay2

Free software

Core Team: University of Illinois atUrbana-Champaign (USA)

http://www.math.uiuc.edu/Macaulay2/

Carlos D’Andrea

Introduction to Computer Algebra

Page 188: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Macaulay2

Free software

Core Team: University of Illinois atUrbana-Champaign (USA)

http://www.math.uiuc.edu/Macaulay2/

Carlos D’Andrea

Introduction to Computer Algebra

Page 189: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Macaulay2

Free software

Core Team: University of Illinois atUrbana-Champaign (USA)

http://www.math.uiuc.edu/Macaulay2/

Carlos D’Andrea

Introduction to Computer Algebra

Page 190: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Macaulay2

Free software

Core Team: University of Illinois atUrbana-Champaign (USA)

http://www.math.uiuc.edu/Macaulay2/

Carlos D’Andrea

Introduction to Computer Algebra

Page 191: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

SageMath

Free open-source

Core Team: Worlwide

http://www.sagemath.org/

Carlos D’Andrea

Introduction to Computer Algebra

Page 192: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

SageMath

Free open-source

Core Team: Worlwide

http://www.sagemath.org/

Carlos D’Andrea

Introduction to Computer Algebra

Page 193: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

SageMath

Free open-source

Core Team: Worlwide

http://www.sagemath.org/

Carlos D’Andrea

Introduction to Computer Algebra

Page 194: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

SageMath

Free open-source

Core Team: Worlwide

http://www.sagemath.org/

Carlos D’Andrea

Introduction to Computer Algebra

Page 195: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Singular

Free software

Core Team: University ofKaiserlautern (Germany)

https://www.singular.uni-kl.de/

Carlos D’Andrea

Introduction to Computer Algebra

Page 196: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Singular

Free software

Core Team: University ofKaiserlautern (Germany)

https://www.singular.uni-kl.de/

Carlos D’Andrea

Introduction to Computer Algebra

Page 197: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Singular

Free software

Core Team: University ofKaiserlautern (Germany)

https://www.singular.uni-kl.de/

Carlos D’Andrea

Introduction to Computer Algebra

Page 198: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Singular

Free software

Core Team: University ofKaiserlautern (Germany)

https://www.singular.uni-kl.de/

Carlos D’Andrea

Introduction to Computer Algebra

Page 199: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 200: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 201: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 202: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 203: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 204: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 205: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 206: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To Learn More about this Area...

Carlos D’Andrea

Introduction to Computer Algebra

Page 207: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 208: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 209: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 210: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 211: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 212: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 213: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 214: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

To publish in this area

Carlos D’Andrea

Introduction to Computer Algebra

Page 215: Introduction to Computer Algebra - UB€¦ · Introduction to Computer Algebra Carlos D’Andrea Oslo, December 1st 2016 Carlos D’Andrea Introduction to Computer Algebra

Thanks!

Carlos D’Andrea

Introduction to Computer Algebra