LMOpTruncation¶

truncation of a linear Mahler operator¶

Calling sequence:¶

$\operatorname{LMOpTruncation}(L, x, M, b)$

Parameters:¶

  • $L$, a linear Mahler operator $L(x, M)$
  • $x$, a name
  • $M$, the name of the Mahler operator
  • $b$, the radix

Description:¶

  • It is assumed that $L$ is a polynomial in $M$ with polynomial coefficients in $x$ and that $\operatorname{coeff}(L, M, 0)$ is not $0$.
  • The procedure extracts a part of a Mahler operator. It cuts the part of the Newton diagram that is above the horizontal line at the ordinate $\mu$ ($\mu$ is determined by what the operator is, see the example).
  • This does not change the linear system which determines the lower part of the formal series solutions for the homogeneous equation $L y = 0$. The spaces of formal series solutions for the original operator and for the output have therefore spaces of formal series solutions of the same dimension and which start with the same terms for degrees not larger than $\nu$ ($\nu$ is determined by what the operator is, see the example).
  • The optional argument $\mathit slope$ = $s$ allows to cut along the line of slope $s$ and of $y$-intercept $\mu$. The previous property is then no longer guaranteed.

References:¶

  • Frédéric Chyzak, Thomas Dreyfus, Philippe Dumas, and Marc Mezzarobba (2018). Computing solutions of linear Mahler equations. Mathematics of Computation 87.314, pp. 2977–3021.

Example:¶

In [1]:
libname := libname, FileTools:-JoinPath(["maple","lib","dcfun.mla"],base=homedir):
In [2]:
 with(dcfun):
Out[2]:

We consider an order $2$ linear Mahler operator for the radix $b = 2$, and we 'truncate' it.

In [3]:
 b := 2;
Out[3]:

$$2$$

In [4]:
 L := (2*x^6+2*x^4-x^2-1)*M^2+(-2*x^4-2*x^3-x^2+x+1)*M+2*x^2-x;
Out[4]:

$$\left(2 x^{6}+2 x^{4}-x^{2}-1\right) M^{2}+\left(-2 x^{4}-2 x^{3}-x^{2}+x +1\right) M +2 x^{2}-x$$

In [5]:
 L1 := LMOpTruncation(L, x, M, b);
Out[5]:

$$2 x^{2}-x +\left(-x^{2}+x +1\right) M +\left(-x^{2}-1\right) M^{2}$$

Let us look at the Newton polygon diagram for each operator.

In [6]:
 pix := LMOpNewtonPolygon(L, 0, x, M, b):
Out[6]:

$$$$

In [7]:
 pix1 := LMOpNewtonPolygon(L1, 0, x, M, b, linestyle = dot):
Out[7]:

$$$$

In [8]:
 plots:-display({pix, pix1});
Out[8]:

$$$$

The lower Newton polygon (in blue) is the same for both operators. Its leftmost segment has a slope with value $-1$ and the number $\nu$ is the opposite value, that is $1$.

The leftmost segment can be extended on the left to intersect the ordinate axis at ordinate $2$; this is the number $\mu$. The horizontal line at this ordinate defines the 'truncation'. We keep only the points below or on this line, which determines the 'truncated' operator $L_1$.

Let us calculate a solution basis for each operator in the space of formal series.

In [9]:
 B := LMOpSolve(L, x, M, b, 'ouput' = series, 'output_format' = 'basis');
Out[9]:

$$\mathrm{table}\left(\left[1=\left[1, \left[1-2 x^{2}-6 x^{3}-14 x^{4}-30 x^{5}-62 x^{6}+\mathrm{O}\! \left(x^{7}\right), x +3 x^{2}+7 x^{3}+15 x^{4}+31 x^{5}+63 x^{6}+\mathrm{O}\! \left(x^{7}\right)\right], 1\right], \mathit{roots} =\left\{1\right\}\right]\right)$$

In [10]:
 B1 := LMOpSolve(L1, x, M, b, 'ouput' = series, 'output_format' = 'basis');
Out[10]:

$$\mathrm{table}\left(\left[1=\left[1, \left[1+\mathrm{O}\! \left(x^{7}\right), x +3 x^{2}+7 x^{3}+17 x^{4}+37 x^{5}+81 x^{6}+\mathrm{O}\! \left(x^{7}\right)\right], 1\right], \mathit{roots} =\left\{1\right\}\right]\right)$$

We can see that the two solution spaces have the same dimension $2$. This is what makes truncation interesting. It allows us to construct an operator that defines a solution space of a given dimension, however with solutions that are not too simple (not rational for example).

In [11]:
 evalb(nops(B[1][2]) = nops(B1[1][2]));
Out[11]:

$$\mathit{true}$$