MultivariatePowerSeries
SetHenselBound
set a Puiseux_bound for a univariate polynomial over power series
Calling Sequence
Parameters
Description
Examples
References
Compatibility
SetHenselBound(bound, u)
SetHenselBound(bound)
bound
-
a non-negative integer
u
(optional) univariate polynomial over power series generated by this package
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.
with⁡MultivariatePowerSeries:
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;
bproc ≔ procdifd=10thenreturny^10elsereturn0end ifend proc
pso≔PowerSeries⁡bproc,variables=y
pso≔PowⅇrSⅇrⅈⅇs: 0+…
bproc1 := proc(d) if d = 4 then return y^(4); else return 0; end if; end proc;
bproc1 ≔ procdifd=4thenreturny^4elsereturn0end ifend proc
pso1≔PowerSeries⁡bproc1,variables=y
pso1≔PowⅇrSⅇrⅈⅇs: 0+…
bproc2 := proc(d) if d = 20 then return y^(20); else return 0; end if; end proc;
bproc2 ≔ procdifd=20thenreturny^20elsereturn0end ifend proc
pso2≔PowerSeries⁡bproc2,variables=y
pso2≔PowⅇrSⅇrⅈⅇs: 0+…
u≔UnivariatePolynomialOverPowerSeries⁡pso,pso1,pso2,pso,x
u≔UnⅈvarⅈatⅇPolynomⅈalOvⅇrPowⅇrSⅇrⅈⅇs: 0+…+0+…⁢x+0+…⁢x2+0+…⁢x3
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.
ExtendedHenselConstruction⁡u
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.
SetHenselBound⁡20
10
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
If we set the bound for u specifically, that overrides the default value.
SetHenselBound⁡15,u
undefined
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.
ExtendedHenselConstruction⁡u,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.
Monforte, A.A., & Kauers, M. "Formal Laurent series in several variables." Expositiones Mathematicae. Vol. 31 No. 4 (2013): 350-367.
The MultivariatePowerSeries[SetHenselBound] command was introduced in Maple 2023.
For more information on Maple 2023 changes, see Updates in Maple 2023.
See Also
ExtendedHenselConstruction
UnivariatePolynomialOverPowerSeries
Download Help Document