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

Online Help

All Products    Maple    MapleSim


MultivariatePowerSeries

  

Inverse

  

compute the inverse of a power series or Puiseux series

 

Calling Sequence

Parameters

Description

Examples

References

Compatibility

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  and  be ordered lists of variables.

– 

Let  be a list of  grevlex-positive -dimensional rational vectors.

– 

Let  be a point in .

– 

Let  be a multivariate power series in  with homogeneous components .

  

For any  in  and any list , we write  for . Moreover, we write  for the list  of  products of powers of the variables in . Then  is a Puiseux series, and every Puiseux series can be written in this way. This can be understood as evaluating  at  and then multiplying the result by .

• 

We call  the internal power series of the Puiseux series ;  the variable order of ;  the variable order of ; and  the rays of . The rays generate the cone containing the support of , meaning the set of exponent vectors of  that occur in  with a nonzero coefficient, as in the paper by Monforte and Kauers (see References). The vertex of this cone is .

• 

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

We define a power series, , representing a polynomial.

(1)

We can define its inverse in two equivalent ways:

(2)

(3)

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

(4)

A different power series represents the sine of .

(5)

Because the constant coefficient of  is zero, we cannot invert it. (Its multiplicative inverse is a Laurent series, not a power series.)

Error, not invertible

We create a Puiseux series s1.

(6)

(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;

(8)

(9)

(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;

(11)

(12)

(13)

We invert  and check its indeed its inverse.

(14)

(15)

(16)

We try to invert  and check if the inverse was found.

Error, (in MultivariatePowerSeries:-Inverse) when inverting a Puiseux series, found no nonzero term of power series degree less than 10. The Puiseux series may be 0, or you may need to increase the bound using the `bound` argument to the Inverse command, or using the SetNonzeroPowerSeriesDegreeBound command

(17)

(18)

(19)

We try to invert  and check if the inverse was found.

(20)

Error, (in MultivariatePowerSeries:-Truncate) in attempt to factor out monomial u, found terms v^25, which are not divisible by it

(21)

(22)

(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.

See Also

ApproximatelyEqual

Divide

GeometricSeries

GetAnalyticExpression

Inverse

IsUnit

PowerSeries

PuiseuxSeries

SetNonzeroPowerSeriesDegreeBound

SetSmallestTermDegreeBound

Truncate

 


Download Help Document