Inverse - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

MultivariatePowerSeries

 Inverse
 compute the inverse of a power series or Puiseux series

 Calling Sequence 1/p Inverse(p) Inverse(s, nonzero_pso_bound, smallest_term_bound)

Parameters

 p - power series generated by this package s - Puiseux series generated by this package nonzero_pso_bound - (optional) non-negative integer smallest_term_bound - (optional) non-negative integer

Description

 • The commands 1/p and Inverse(p) compute the multiplicative inverse of the power series p. This requires that p is invertible, that is, that p has a nonzero constant term; if that is not the case, an error is signaled.
 • The calling sequence Inverse('s', 'nonzero_pso_bound', 'smallest_term_bound') computes the multiplicative inverse of the Puiseux series s, whenever this is possible. To explain the algorithm used, we first need to review some basic information on Puiseux series.
 • A Puiseux series is a power series in rational powers of the variables. More precisely:
 – Let $X≔\left({x}_{1},\dots ,{x}_{p}\right)$ and $U≔\left({u}_{1},\dots ,{u}_{m}\right)$ be ordered lists of variables.
 – Let $R≔\left({r}_{1},\dots ,{r}_{m}\right)$ be a list of $m$ grevlex-positive $p$-dimensional rational vectors.
 – Let $e≔\left({e}_{1},\dots ,{e}_{p}\right)$ be a point in ${\mathrm{ℚ}}^{p}$.
 – Let $g\left(U\right)≔{\sum }_{n=0}^{\mathrm{\infty }}{g}_{n}\left(U\right)$ be a multivariate power series in $U$ with homogeneous components ${g}_{n}\left(U\right)$.
 For any $v=\left({v}_{1},\dots ,{v}_{q}\right)$ in ${\mathrm{ℚ}}^{q}$ and any list $Y=\left({y}_{1},\dots ,{y}_{q}\right)$, we write ${Y}^{v}$ for ${y}_{1}^{{v}_{1}}\dots {y}_{q}^{{v}_{q}}$. Moreover, we write ${X}^{R}$ for the list $\left({X}^{{r}_{1}},\dots ,{X}^{{r}_{m}}\right)$ of $m$ products of powers of the variables in $X$. Then $P≔{X}^{e}g\left({X}^{R}\right)$ is a Puiseux series, and every Puiseux series can be written in this way. This can be understood as evaluating $g\left(U\right)$ at ${u}_{i}={X}^{{r}_{i}}$ and then multiplying the result by ${X}^{e}$.
 • We call $g$ the internal power series of the Puiseux series $P$; $X$ the variable order of $P$; $U$ the variable order of $g$; and $R$ the rays of $P$. The rays generate the cone containing the support of $P$, meaning the set of exponent vectors of $X$ that occur in $P$ with a nonzero coefficient, as in the paper by Monforte and Kauers (see References). The vertex of this cone is $e$.
 • The algorithm used depends of a few different things, which are verified in the following order:
 – First, if the power series used to create s is invertible, then we compute the inverse of s by computing the inverse of its internal power series.
 – Second, if the power series used to generate s has a rational function as its analytic expression, then we compute the inverse of s by algebraic manipulations.
 – Otherwise, we start by looking for the first nonzero monomial in the internal power series of s. This process is done by examining all monomials in the internal power series with total degree less than or equal to some bound b. If no monomial different from zero is found, the command will fail.
 – If the argument nonzero_pso_bound is given, its value is used for b. Otherwise, if SetNonzeroPowerSeriesDegreeBound has been called on s, its value is used. Otherwise, the global value for this bound is used; this can also be set using SetNonzeroPowerSeriesDegreeBound, and its default value is 10.
 • If we have at least a ray of weight zero, then we cannot guarantee that the inverse has been found. In order to compute the inverse correctly, we must find the grevlex minimum element of the support of s, that is, the grevlex minimum element between the exponents of all nonzero monomials of s. Having at least a ray of weight zero makes this process not always possible. So, we use some bound d and we find the minimum among the monomials of the internal power series that are at most d greater than the first nonzero monomial found. Unfortunately, it is possible that one might need to look for arbitrarily high degrees in the internal power series to find the monomial that is truly the grevlex smallest in the Puiseux series. In cases where we cannot prove that the term we find is the smallest, Maple generates an error message if subsequent examination of higher degree terms results in finding a smaller monomial. In this case, one can rerun the computation with a higher value for d.
 – If the argument smallest_term_bound is given, its value is used for d. Otherwise, if SetSmallestTermDegreeBound has been called on s, its value is used. Otherwise, the global value for this bound is used; this can also be set using SetSmallestTermDegreeBound, and its default value is 10.
 • When using the MultivariatePowerSeries package, do not assign anything to the variables occurring in the power series, Puiseux series, and univariate polynomials over these series. If you do, you may see invalid results.

Examples

 > $\mathrm{with}\left(\mathrm{MultivariatePowerSeries}\right):$

We define a power series, $a$, representing a polynomial.

 > $a≔\mathrm{PowerSeries}\left(1-x-y\right)$
 ${a}{≔}\left[{PowⅇrSⅇriⅇs:}{1}{-}{x}{-}{y}\right]$ (1)

We can define its inverse in two equivalent ways:

 > $b≔\frac{1}{a}$
 ${b}{≔}\left[{PowⅇrSⅇriⅇs of}\frac{{1}}{{1}{-}{x}{-}{y}}{:}{1}{+}{\dots }\right]$ (2)
 > $c≔\mathrm{Inverse}\left(a\right)$
 ${c}{≔}\left[{PowⅇrSⅇriⅇs of}\frac{{1}}{{1}{-}{x}{-}{y}}{:}{1}{+}{\dots }\right]$ (3)

We verify that the two definitions are equal, at least for the terms up to homogeneous degree 10.

 > $\mathrm{Truncate}\left(b-c,10\right)$
 ${0}$ (4)

A different power series represents the sine of $x$.

 > $\mathrm{sx}≔\mathrm{PowerSeries}\left(d↦\mathrm{ifelse}\left(d::\mathrm{odd},\frac{{\left(-1\right)}^{\frac{d}{2}-\frac{1}{2}}\cdot {x}^{d}}{d!},0\right),\mathrm{analytic}=\mathrm{sin}\left(x\right)\right)$
 ${\mathrm{sx}}{≔}\left[{PowⅇrSⅇriⅇs of}{\mathrm{sin}}{}\left({x}\right){:}{0}{+}{\dots }\right]$ (5)

Because the constant coefficient of $\mathrm{sx}$ is zero, we cannot invert it. (Its multiplicative inverse is a Laurent series, not a power series.)

 > $\frac{1}{\mathrm{sx}}$

We create a Puiseux series s1.

 > $q≔\frac{u}{u+v+w+{u}^{2}w};$$\mathrm{mp}≔\left[u={x}^{\frac{1}{4}},v={x}^{3}{y}^{2},w={x}^{\frac{1}{2}}{y}^{-\frac{1}{4}}\right];$$e≔\left[x=3,y=-2\right]$
 ${q}{≔}\frac{{u}}{{{u}}^{{2}}{}{w}{+}{u}{+}{v}{+}{w}}$
 ${\mathrm{mp}}{≔}\left[{u}{=}{{x}}^{{1}}{{4}}}{,}{v}{=}{{x}}^{{3}}{}{{y}}^{{2}}{,}{w}{=}\frac{\sqrt{{x}}}{{{y}}^{{1}}{{4}}}}\right]$
 ${e}{≔}\left[{x}{=}{3}{,}{y}{=}{-2}\right]$ (6)
 > $\mathrm{s1}≔\mathrm{PuiseuxSeries}\left(q,\mathrm{mp},e\right)$
 ${\mathrm{s1}}{≔}\left[{PuisⅇuxSⅇriⅇs of}\frac{{{x}}^{{3}}}{\left({{x}}^{{11}}{{4}}}{}{{y}}^{{2}}{+}\frac{{{x}}^{{3}}{{4}}}}{{{y}}^{{1}}{{4}}}}{+}\frac{{{x}}^{{\dots }}}{{\dots }}{+}{1}\right){}{{y}}^{{2}}}{:}{0}{+}{\dots }\right]$ (7)

We create a Puiseux series s2.

 > bproc1 := proc(d) if d = 13 then return u^(12)*v + u*v^(12); elif d = 14 then return u^(14); else return 0; end if; end proc;
 ${\mathrm{bproc1}}{≔}{\mathbf{proc}}\left({d}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{if}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{d}{=}{13}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{then}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{u}{^}{12}{*}{v}{+}{u}{*}{v}{^}{12}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{elif}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{d}{=}{14}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{then}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{u}{^}{14}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{else}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{0}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end if}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end proc}}$ (8)
 > $g≔\mathrm{PowerSeries}\left(\mathrm{bproc1},\mathrm{variables}=\left\{u,v\right\}\right);$$X≔\left[x,y\right];$$U≔\left[u,v\right];$$R≔\left[\left[1,-1\right],\left[1,1\right]\right]$
 ${g}{≔}\left[{PowⅇrSⅇriⅇs:}{0}{+}{\dots }\right]$
 ${X}{≔}\left[{x}{,}{y}\right]$
 ${U}{≔}\left[{u}{,}{v}\right]$
 ${R}{≔}\left[\left[{1}{,}{-1}\right]{,}\left[{1}{,}{1}\right]\right]$ (9)
 > $\mathrm{s2}≔\mathrm{PuiseuxSeries}\left(g,X,U,R\right)$
 ${\mathrm{s2}}{≔}\left[{PuisⅇuxSⅇriⅇs:}{0}{+}{\dots }\right]$ (10)

We create a Puiseux series s3.

 > bproc2 := proc(d) if d = 1 then return u^1; elif d = 2 then return u^2; elif d = 3 then return u^3; elif d = 25 then return v^25; else return 0; end if; end proc;
 ${\mathrm{bproc2}}{≔}{\mathbf{proc}}\left({d}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{if}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{d}{=}{1}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{then}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{u}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{elif}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{d}{=}{2}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{then}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{u}{^}{2}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{elif}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{d}{=}{3}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{then}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{u}{^}{3}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{elif}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{d}{=}{25}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{then}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{v}{^}{25}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{else}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{return}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{0}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end if}}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end proc}}$ (11)
 > $g≔\mathrm{PowerSeries}\left(\mathrm{bproc2},\mathrm{variables}=\left\{u,v\right\}\right);$$X≔\left[x,y\right];$$U≔\left[u,v\right];$$R≔\left[\left[1,0\right],\left[1,-1\right]\right]$
 ${g}{≔}\left[{PowⅇrSⅇriⅇs:}{0}{+}{\dots }\right]$
 ${X}{≔}\left[{x}{,}{y}\right]$
 ${U}{≔}\left[{u}{,}{v}\right]$
 ${R}{≔}\left[\left[{1}{,}{0}\right]{,}\left[{1}{,}{-1}\right]\right]$ (12)
 > $\mathrm{s3}≔\mathrm{PuiseuxSeries}\left(g,X,U,R\right)$
 ${\mathrm{s3}}{≔}\left[{PuisⅇuxSⅇriⅇs:}{0}{+}{\dots }\right]$ (13)

We invert $\mathrm{s1}$ and check its indeed its inverse.

 > $\mathrm{s4}≔\mathrm{Inverse}\left(\mathrm{s1}\right)$
 ${\mathrm{s4}}{≔}\left[{PuisⅇuxSⅇriⅇs of}\frac{\left({{x}}^{{11}}{{4}}}{}{{y}}^{{2}}{+}\frac{{{x}}^{{3}}{{4}}}}{{{y}}^{{1}}{{4}}}}{+}\frac{{{x}}^{{\dots }}}{{\dots }}{+}{1}\right){}{{y}}^{{2}}}{{{x}}^{{3}}}{:}\frac{{{y}}^{{2}}}{{{x}}^{{3}}}{+}\frac{{{y}}^{{7}}{{4}}}}{{{x}}^{{11}}{{4}}}}{+}\frac{{{y}}^{{7}}{{4}}}}{{{x}}^{{9}}{{4}}}}{+}\frac{{{y}}^{{4}}}{{{x}}^{{1}}{{4}}}}\right]$ (14)
 > $m≔\mathrm{Multiply}\left(\mathrm{s1},\mathrm{s4}\right)$
 ${m}{≔}\left[{PuisⅇuxSⅇriⅇs of}{1}{:}{0}{+}{\dots }\right]$ (15)
 > $\mathrm{Truncate}\left(m,40\right)$
 ${1}$ (16)

We try to invert $\mathrm{s2}$ and check if the inverse was found.

 > $\mathrm{s5}≔\mathrm{Inverse}\left(\mathrm{s2}\right)$
 > $\mathrm{s5}≔\mathrm{Inverse}\left(\mathrm{s2},14\right)$
 ${\mathrm{s5}}{≔}\left[{PuisⅇuxSⅇriⅇs:}\frac{{{y}}^{{14}}}{{{x}}^{{14}}}{+}{\dots }\right]$ (17)
 > $m≔\mathrm{Multiply}\left(\mathrm{s2},\mathrm{s5}\right)$
 ${m}{≔}\left[{PuisⅇuxSⅇriⅇs:}{0}{+}{\dots }\right]$ (18)
 > $\mathrm{Truncate}\left(m,40\right)$
 ${1}$ (19)

We try to invert $\mathrm{s3}$ and check if the inverse was found.

 > $\mathrm{s6}≔\mathrm{Inverse}\left(\mathrm{s3}\right)$
 ${\mathrm{s6}}{≔}\left[{PuisⅇuxSⅇriⅇs:}\frac{{1}}{{x}}{+}{\dots }\right]$ (20)
 > $\mathrm{Truncate}\left(\mathrm{s6},40\right)$
 > $\mathrm{s6}≔\mathrm{Inverse}\left(\mathrm{s3},10,25\right)$
 ${\mathrm{s6}}{≔}\left[{PuisⅇuxSⅇriⅇs:}\frac{{{y}}^{{25}}}{{{x}}^{{25}}}{+}{\dots }\right]$ (21)
 > $m≔\mathrm{Multiply}\left(\mathrm{s3},\mathrm{s6}\right)$
 ${m}{≔}\left[{PuisⅇuxSⅇriⅇs:}{0}{+}{\dots }\right]$ (22)
 > $\mathrm{Truncate}\left(m,40\right)$
 ${1}$ (23)

References

 Monforte, A.A., & Kauers, M. "Formal Laurent series in several variables." Expositiones Mathematicae. Vol. 31 No. 4 (2013): 350-367.

Compatibility

 • The MultivariatePowerSeries[Inverse] command was introduced in Maple 2021.
 • For more information on Maple 2021 changes, see Updates in Maple 2021.
 • The MultivariatePowerSeries[Inverse] command was updated in Maple 2023.
 • The s, nonzero_pso_bound and smallest_term_bound parameters were introduced in Maple 2023.
 • The nonzero_pso_bound and smallest_term_bound options were introduced in Maple 2023.
 • For more information on Maple 2023 changes, see Updates in Maple 2023.