Ore Polynomials in Sage
Manuel Kauers
joint work with Maximilian Jaroschek and Fredrik Johansson RISC, JKU.
1
Ore Polynomials in Sage Manuel Kauers joint work with Maximilian - - PowerPoint PPT Presentation
Ore Polynomials in Sage Manuel Kauers joint work with Maximilian Jaroschek and Fredrik Johansson RISC, JKU. 1 Ore Polynomials in Sage Manuel Kauers joint work with Maximilian Jaroschek and Fredrik Johansson RISC, JKU. 1 Sage Mathematica
1
1
2
2000 4000 6000 8000 10 000 deg 10 20 30 40 time
3
2000 4000 6000 8000 10 000 deg 10 20 30 40 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 35 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 30 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 25 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 20 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 time
3
2000 4000 6000 8000 10 000 deg 5 10 15 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 12 14 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 12 14 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 12 14 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 12 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 12 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 12 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 10 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 time
3
2000 4000 6000 8000 10 000 deg 2 4 6 8 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 5 6 7 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 5 6 7 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 5 6 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 5 6 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 5 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 5 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 time
3
2000 4000 6000 8000 10 000 deg 1 2 3 4 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 2.5 3.0 3.5 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 2.5 3.0 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 2.5 3.0 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 2.5 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 2.5 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 2.0 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 time
3
2000 4000 6000 8000 10 000 deg 0.5 1.0 1.5 time
3
2000 4000 6000 8000 10 000 deg 0.2 0.4 0.6 0.8 1.0 1.2 1.4 time
3
2000 4000 6000 8000 10 000 deg 0.2 0.4 0.6 0.8 1.0 1.2 time
3
2000 4000 6000 8000 10 000 deg 0.2 0.4 0.6 0.8 1.0 time
3
2000 4000 6000 8000 10 000 deg 0.2 0.4 0.6 0.8 1.0 time
3
2000 4000 6000 8000 10 000 deg 0.2 0.4 0.6 0.8 time
3
2000 4000 6000 8000 10 000 deg 0.1 0.2 0.3 0.4 0.5 0.6 0.7 time
3
2000 4000 6000 8000 10 000 deg 0.1 0.2 0.3 0.4 0.5 0.6 time
3
2000 4000 6000 8000 10 000 deg 0.1 0.2 0.3 0.4 0.5 time
3
2000 4000 6000 8000 10 000 deg 0.1 0.2 0.3 0.4 0.5 time
3
2000 4000 6000 8000 10 000 deg 0.1 0.2 0.3 0.4 time
3
2000 4000 6000 8000 10 000 deg 0.05 0.10 0.15 0.20 0.25 0.30 0.35 time
3
2000 4000 6000 8000 10 000 deg 0.05 0.10 0.15 0.20 0.25 0.30 time
3
2000 4000 6000 8000 10 000 deg 0.05 0.10 0.15 0.20 0.25 time
3
2000 4000 6000 8000 10 000 deg 0.05 0.10 0.15 0.20 time
3
2000 4000 6000 8000 10 000 deg 0.05 0.10 0.15 time
3
2000 4000 6000 8000 10 000 deg 0.02 0.04 0.06 0.08 0.10 0.12 0.14 time
3
2000 4000 6000 8000 10 000 deg 0.02 0.04 0.06 0.08 0.10 0.12 time
3
2000 4000 6000 8000 10 000 deg 0.02 0.04 0.06 0.08 0.10 time
3
2000 4000 6000 8000 10 000 deg 0.02 0.04 0.06 0.08 time
3
2000 4000 6000 8000 10 000 deg 0.01 0.02 0.03 0.04 0.05 0.06 time
3
2000 4000 6000 8000 10 000 deg 0.01 0.02 0.03 0.04 0.05 time
3
2000 4000 6000 8000 10 000 deg 0.005 0.010 0.015 0.020 0.025 0.030 0.035 time
3
2000 4000 6000 8000 10 000 deg 0.005 0.010 0.015 0.020 0.025 time
3
2000 4000 6000 8000 10 000 deg 0.005 0.010 0.015 0.020 time
3
2000 4000 6000 8000 10 000 deg 0.005 0.010 0.015 time
3
2000 4000 6000 8000 10 000 deg 0.002 0.004 0.006 0.008 0.010 time
3
2000 4000 6000 8000 10 000 deg 0.002 0.004 0.006 0.008 time
3
2000 4000 6000 8000 10 000 deg 0.001 0.002 0.003 0.004 0.005 time
3
2000 4000 6000 8000 10 000 deg 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 time
3
2000 4000 6000 8000 10 000 deg 0.0005 0.0010 0.0015 0.0020 time
3
2000 4000 6000 8000 10 000 deg 0.0002 0.0004 0.0006 0.0008 0.0010 0.0012 0.0014 time
3
2000 4000 6000 8000 10 000 deg 0.0002 0.0004 0.0006 0.0008 time
3
2000 4000 6000 8000 10 000 deg 0.0001 0.0002 0.0003 0.0004 time
3
2000 4000 6000 8000 10 000 deg 0.00005 0.00010 0.00015 0.00020 0.00025 time
3
2000 4000 6000 8000 10 000 deg 0.00005 0.00010 0.00015 time
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.00010 0.00012 time
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.0001 time
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.0001 time
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.0001 time
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.0001 time
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.0001 time 670000x
3
2000 4000 6000 8000 10 000 deg 0.00002 0.00004 0.00006 0.00008 0.0001 time 74000x 670000x
3
4
4
4
4
4
5
5
◮ Idea: Represent a “function” or a “sequence” f by an
6
◮ Idea: Represent a “function” or a “sequence” f by an
◮ Represent an “equation” for f by an “operator” which maps
6
◮ Idea: Represent a “function” or a “sequence” f by an
◮ Represent an “equation” for f by an “operator” which maps
◮ Examples:
◮ e2x is killed by L = D − 2, where D =
d dx.
6
◮ Idea: Represent a “function” or a “sequence” f by an
◮ Represent an “equation” for f by an “operator” which maps
◮ Examples:
◮ e2x is killed by L = D − 2, where D =
d dx.
◮ 2n is killed by L = E − 2, where E ≡ n n + 1 6
◮ Idea: Represent a “function” or a “sequence” f by an
◮ Represent an “equation” for f by an “operator” which maps
◮ Examples:
◮ log(1 − √x) is killed by
6
◮ Idea: Represent a “function” or a “sequence” f by an
◮ Represent an “equation” for f by an “operator” which maps
◮ Examples:
◮ log(1 − √x) is killed by
◮
n
k
6
◮ These operators are called Ore Polynomials.
7
◮ These operators are called Ore Polynomials. ◮ They live in an Ore Algebra.
7
◮ These operators are called Ore Polynomials. ◮ They live in an Ore Algebra. ◮ They act on a “Function Space.”
7
8
◮ Let R be a ring
8
◮ Let R be a ring ◮ Let σ: R → R be an endomorphism, i.e.,
8
◮ Let R be a ring ◮ Let σ: R → R be an endomorphism ◮ Let δ: R → R be a “σ-derivation”, i.e.,
8
◮ Let R be a ring ◮ Let σ: R → R be an endomorphism ◮ Let δ: R → R be a “σ-derivation” ◮ Let A = R[∂] be the set of all univariate polynomials in ∂
8
◮ Let R be a ring ◮ Let σ: R → R be an endomorphism ◮ Let δ: R → R be a “σ-derivation” ◮ Let A = R[∂] be the set of all univariate polynomials in ∂
◮ Let + be the usual polynomial addition.
8
◮ Let R be a ring ◮ Let σ: R → R be an endomorphism ◮ Let δ: R → R be a “σ-derivation” ◮ Let A = R[∂] be the set of all univariate polynomials in ∂
◮ Let + be the usual polynomial addition. ◮ Let · be the unique (noncommutative) multiplication in A
8
◮ Let R be a ring ◮ Let σ: R → R be an endomorphism ◮ Let δ: R → R be a “σ-derivation” ◮ Let A = R[∂] be the set of all univariate polynomials in ∂
◮ Let + be the usual polynomial addition. ◮ Let · be the unique (noncommutative) multiplication in A
◮ Then A together with this + and · is called an Ore Algebra.
8
9
◮ For R = Q[x], σ = id, δ = d dx, we have that
9
◮ For R = Q[x], σ = id, δ = d dx, we have that
◮ For R = Q[n], σ: R → R defined by σ(c) = c for all c ∈ Q
9
◮ For R = Q[x], σ = id, δ = d dx, we have that
◮ For R = Q[n], σ: R → R defined by σ(c) = c for all c ∈ Q
◮ There are other examples. . .
9
10
10
10
◮ The Ore algebra A = Q[x][Dx] acts on C∞(C, C) via
x) · f(z)
10
◮ The Ore algebra A = Q[x][Dx] acts on C∞(C, C) via
x) · f(z)
◮ The Ore algebra A = Q[n][En] acts on the space CN via
n) · f(n)
10
◮ The annihilator of f ∈ F is defined as
◮ The solution space of a ∈ R[∂] is defined as
11
12
12
12
13
13
◮ For Mathematica:
◮ univariate: Mallinger’s package ◮ multivariate: Koutschan’s package.
◮ For Maple:
◮ univariate: gfun by Salvy/Zimmermann
◮ multivariate: mgfun by Chyzak 14
15
15
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
16
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
16
Algebra RingElement OreAlgebra OreOperator UnivariateOreOperator MultivariateOreOperator UnivariateOreOperatorOverUnivariateRing UnivariateDifferentialOperatorOverUnivariateRing . . . . . . . . . . . . 17
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
18
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
18
◮ in Mathematica (i.e., Koutschan’s code) ◮ in Sage (i.e., our code)
19
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
20
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
20
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing
20
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing ◮ Built-in code for polynomial matrices
20
200 400 600 800 1000
21
100 200 300 400 500 600 5.0 106 1.0 107 1.5 107 2.0 107 2.5 107 3.0 107 3.5 107
21
◮ Construction of Ore algebras and Ore polynomials ◮ GCRD, Closure properties, Desingularization ◮ Various types of solutions ◮ Guessing ◮ Built-in code for polynomial matrices
22
◮ operator factorization and fast arithmetic ◮ arbitrary precision evaluation of analytic D-finite functions ◮ construction of an annihilator from an expression ◮ the multivariate case, incl. Gr¨
23
24