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

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : MultivariatePowerSeries/SetHenselBound

MultivariatePowerSeries

  

SetHenselBound

  

set a Puiseux_bound for a univariate polynomial over power series

 

Calling Sequence

Parameters

Description

Examples

References

Compatibility

Calling Sequence

SetHenselBound(bound, u)

SetHenselBound(bound)

Parameters

bound

-

a non-negative integer

u

-

(optional) univariate polynomial over power series generated by this package

Description

• 

This command sets a parameter in a univariate polynomial over power series . The parameter is used in computing the extended Hensel construction. Its function is described on the ExtendedHenselConstruction help page.

• 

Using the first calling sequence, we set the bound for the given object u. This is used when computing the extended Hensel construction of u (unless overridden in the ExtendedHenselConstruction command itself).

• 

Using the second calling sequence, we set the global default value for the bound. This value is used when computing the Puiseux factorization of a univariate polynomial over power series for which the bound has not been set using the first calling sequence (unless overridden in the ExtendedHenselConstruction command itself). Initially, the default value for the bound is 10.

• 

Both calling sequences return the previously stored value for the bound, either in u (for the first calling sequence) or the default (for the second).

• 

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

withMultivariatePowerSeries:

Create a univariate polynomial over power series using procedures to create its coefficients.

bproc := proc(d) if d  = 10 then return y^(10);    else return 0; end if; end proc;

bprocprocdifd=10thenreturny^10elsereturn0end ifend proc

(1)

psoPowerSeriesbproc,variables=y

psoPowⅇrSⅇrⅈⅇs: 0+

(2)

bproc1 := proc(d) if d  = 4 then return y^(4); else return 0; end if; end proc;

bproc1procdifd=4thenreturny^4elsereturn0end ifend proc

(3)

pso1PowerSeriesbproc1,variables=y

pso1PowⅇrSⅇrⅈⅇs: 0+

(4)

bproc2 := proc(d) if d  = 20 then return y^(20); else return 0; end if; end proc;

bproc2procdifd=20thenreturny^20elsereturn0end ifend proc

(5)

pso2PowerSeriesbproc2,variables=y

pso2PowⅇrSⅇrⅈⅇs: 0+

(6)

uUnivariatePolynomialOverPowerSeriespso,pso1,pso2,pso,x

uUnⅈvarⅈatⅇPolynomⅈalOvⅇrPowⅇrSⅇrⅈⅇs: 0++0+x+0+x2+0+x3

(7)

Computing the ExtendedHencelConstruction would use the initial value of the global default bound, 10. This is too low to determine the Newton polynomial of the input polynomial (it needs to be 20), so we see an error message.

ExtendedHenselConstructionu

Error, (in MultivariatePowerSeries:-ExtendedHenselConstruction) it is not possible to compute the Newton line with the current bound 10, try to increase it

If we set a different global default, that's the value that is used. This value is high enough.

SetHenselBound20

10

(8)

ExtendedHenselConstructionu

UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: y10+,UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: 0++1+x,UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: 0++1+x,UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: 0++1+x

(9)

If we set the bound for u specifically, that overrides the default value.

SetHenselBound15,u

undefined

(10)

ExtendedHenselConstructionu

UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: y10+,UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: 0++1+x,UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: 0++1+x,UnⅈvarⅈatⅇPolynomⅈalOvⅇrPuⅈsⅇuxSⅇrⅈⅇs: 0++1+x

(11)

If we specify the bound in the ExtendedHenselConstruction command itself, that overrides all set values. This is, once again, too low of a value for the bound.

ExtendedHenselConstructionu,8

Error, (in MultivariatePowerSeries:-ExtendedHenselConstruction) leading coefficient of Object(MultivariatePowerSeries:-UnivariatePolynomialOverPowerSeriesObject,Array(0..3, [Object(MultivariatePowerSeries:-PowerSeriesObject,Array(0..21, [0,0,0,0,0,0,0,0,0,0,y^10,0,0,0,0,0,0,0,0,0,0,0]),21,MultivariatePowerSeries:-PowerSeriesObject:-proc_gen,{y},ancestors),Object(MultivariatePowerSeries:-PowerSeriesObject,Array(0..20, [0,0,0,0,y^4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),20,MultivariatePowerSeries:-PowerSeriesObject:-proc_gen,{y},ancestors),Object(MultivariatePowerSeries:-PowerSeriesObject,Array(0..20, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,y^20]),20,MultivariatePowerSeries:-PowerSeriesObject:-proc_gen,{y},ancestors),Object(MultivariatePowerSeries:-PowerSeriesObject,Array(0..21, [0,0,0,0,0,0,0,0,0,0,y^10,0,0,0,0,0,0,0,0,0,0,0]),21,MultivariatePowerSeries:-PowerSeriesObject:-proc_gen,{y},ancestors)])) may be zero

In this case, it is not possible to determine if the leading coefficient of u is non-zero or not.

References

  

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

Compatibility

• 

The MultivariatePowerSeries[SetHenselBound] command was introduced in Maple 2023.

• 

For more information on Maple 2023 changes, see Updates in Maple 2023.

See Also

ExtendedHenselConstruction

MultivariatePowerSeries

UnivariatePolynomialOverPowerSeries