ore_algebra.generalized_series¶
Generalized series found in expansions at singularities
Classes
ContinuousGeneralizedSeries (parent, tail[, …]) |
Objects of this class represent generalized series objects. |
DiscreteGeneralizedSeries (parent, data[, …]) |
Objects of this class represent generalized series objects. |
GeneralizedSeriesFunctor (x, type) |
|
GeneralizedSeriesMonoid (base, x, type) |
Objects of this class represent parents of generalized series objects. |
-
class
ore_algebra.generalized_series.
ContinuousGeneralizedSeries
(parent, tail, exp=0, ramification=1, make_monic=False)¶ Objects of this class represent generalized series objects.
See the docstring of
GeneralizedSeriesMonoid
for further information.-
base
()¶ Returns the parent’s coefficient domain.
-
base_extend
(ext, name='a')¶ Lifts
self
to a domain with an enlarged coefficient domain.INPUT:
ext
– either a univariate irreducible polynomial overself.base()
or an algebraic extension field ofself.base()
name
(optional) – ifext
is a polynomial, this is used as a name for the generator of the algebraic extension.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: s = G(1+x+x^2, exp=3*x^2, ramification=3) sage: s.parent() Monoid of continuous generalized series in x over Rational Field sage: x = ZZ['x'].gen() sage: s.base_extend(x^2 + 2, 'a') exp(-9/2*x^(-2/3))*(1 + x^(1/3) + x^(2/3)) sage: _.parent() Monoid of continuous generalized series in x over Number Field in a with defining polynomial x^2 + 2 sage: s == s.base_extend(x^2 + 2, 'a') True sage: s is s.base_extend(x^2 + 2, 'a') False
-
derivative
()¶ Returns the derivative of
self
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, exp=1+x+x^2, ramification=2) exp(-x^(-2/2) - 2*x^(-1/2))*x*(1 + x^(1/2) + x^(2/2)) sage: _.derivative() exp(-x^(-2/2) - 2*x^(-1/2))*x^(-1)*(1 + 2*x^(1/2) + 3*x^(2/2) + 5/2*x^(3/2) + 2*x^(4/2)) sage: G([0,0,0,1]) log(x)^3 sage: _.derivative() x^(-1)*3*log(x)^2
-
exponential_part
()¶ Returns the exponential part of this series.
This is the series obtained from
self
by discarding the tail.EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, exp=2*x+x^2) exp(-1/2*x^(-2) - 2*x^(-1))*(1 + x + x^2) sage: _.exponential_part() exp(-1/2*x^(-2) - 2*x^(-1)) sage: G(x^3+x^4+x^5) x^3*(1 + x + x^2) sage: _.exponential_part() x^3
-
has_exponential_part
()¶ True if
self
has a nontrivial exponential part.Note that the exponential part may not show up in form of an “exp” term in the printout, but may also simply consist of some power x^lpha with nonzero lpha.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2).has_exponential_part() False sage: G(1+x+x^2, exp=2*x+x^2).has_exponential_part() True sage: G(x+x^2).has_exponential_part() True sage: G(x+x^2) == G(1+x, exp=1) True
-
has_logarithms
()¶ True if
self
contains logarithmic terms.
-
is_one
()¶ True if
self
is the monoid’s one element.
-
is_zero
()¶ True if
self
is the monoid’s zero element.
-
order
()¶ Returns the order of this series.
The order is defined as the maximal coefficient ring element alpha such that for all terms x^ilog(x)^j appearing in this series we have i - alpha is a nonnegative rational number whose denominator divides the ramification. Note that alpha itself may be a complex number.
The order is also the constant coefficient of the polynomial used to represent the exponential part.
The order of the zero series is infinity.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2,exp=17/24+5*x+7*x^2, ramification=9) exp(-63/2*x^(-2/9) - 45*x^(-1/9))*x^(17/24)*(1 + x^(1/9) + x^(2/9)) sage: _.order() 17/24 sage: G(x^5+x^6, exp=-3) x^2*(1 + x) sage: _.order() 2
-
prec
()¶ The precision of
self
is the minimum of the precisions of all the power series objects contained in it.
-
ramification
()¶ Returns the ramification of this series object.
This is the smallest positive integer r such that replacing x by x^r in the series clears the denominators of all exponents.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, ramification=2) 1 + x^(1/2) + x^(2/2) sage: _.ramification() 2 sage: G(1+x^2+x^4, ramification=2) 1 + x + x^2 sage: _.ramification() 1
-
similar
(other, reference=Integer Ring)¶ Checks whether
self
andother
are similar.Similarity is defined as follows. Let A and B be two generalized series objects with exponential part exp(int_0^x a(t^{1/r})/t dt) and exp(int_0^x b(t^{1/r})/t dt) respectively. Then A and B are called similar if r*(a-b) is an integer.
An alternative reference set can be specified as optional argument.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: A = G(1+x+x^2, exp=1+x+x^2, ramification=2) sage: B = G(1+x+x^2, exp=-3/2+x+x^2, ramification=2) sage: A.similar(B) True sage: B.similar(A) True sage: C = G(1+x+x^2, exp=-2/3+x+x^2, ramification=2) sage: A.similar(C) False sage: A.similar(C, reference=QQ) True sage: D = G(1+x+x^2, exp=1+x^2+x^4, ramification=4) sage: A.similar(D) True
-
substitute
(e)¶ Returns the series object obtained from
self
by replacing x by x^e, where e is a positive rational number.EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, ramification=2) 1 + x^(1/2) + x^(2/2) sage: _.substitute(3/5) 1 + x^(3/10) + x^(6/10) sage: _.substitute(10/3) 1 + x + x^2 sage: _.ramification() 1 sage: G(1, exp=1+x+x^2, ramification=2) exp(-x^(-2/2) - 2*x^(-1/2))*x sage: _.substitute(3/5) exp(-x^(-6/10) - 2*x^(-3/10))*x^(3/5) sage: G([1,x,x^2], ramification=2) x^(2/2)*log(x)^2 + x^(1/2)*log(x) + 1 sage: _.substitute(3/5) 9/25*x^(6/10)*log(x)^2 + 3/5*x^(3/10)*log(x) + 1
-
tail
()¶ Returns the tail of this series.
This is the series object which is obtained from
self
by dropping the exponential part.EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, exp=2*x+x^2) exp(-1/2*x^(-2) - 2*x^(-1))*(1 + x + x^2) sage: _.tail() 1 + x + x^2 sage: G(x+x^2) x*(1 + x) sage: _.tail() 1 + x
-
-
class
ore_algebra.generalized_series.
DiscreteGeneralizedSeries
(parent, data, make_monic=False)¶ Objects of this class represent generalized series objects.
See the docstring of
GeneralizedSeriesMonoid
for further information.-
base_extend
(ext, name='a')¶ Lifts
self
to a domain with an enlarged coefficient domain.INPUT:
ext
– either a univariate irreducible polynomial overself.base()
or an algebraic extension field ofself.base()
name
(optional) – ifext
is a polynomial, this is used as a name for the generator of the algebraic extension.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: s = G(1+x+x^2, exp=3*x^2, ramification=3) sage: s.parent() Monoid of continuous generalized series in x over Rational Field sage: x = ZZ['x'].gen() sage: s.base_extend(x^2 + 2, 'a') exp(-9/2*x^(-2/3))*(1 + x^(1/3) + x^(2/3)) sage: _.parent() Monoid of continuous generalized series in x over Number Field in a with defining polynomial x^2 + 2 sage: s == s.base_extend(x^2 + 2, 'a') True sage: s is s.base_extend(x^2 + 2, 'a') False
-
prec
()¶ The precision of
self
is the minimum of the precisions of all the power series objects contained in it.
-
-
class
ore_algebra.generalized_series.
GeneralizedSeriesMonoid
(base, x, type)¶ Objects of this class represent parents of generalized series objects. They depend on a coefficient ring, which must be either QQ or a number field, and a variable name. The type must be “continuous” or “discrete”
-
base_extend
(ext, name='a')¶ Returns a monoid with an extended coefficient domain.
INPUT:
ext
– either a univariate irreducible polynomial overself.base()
or an algebraic extension field ofself.base()
name
(optional) – ifext
is a polynomial, this is used as a name for the generator of the algebraic extension.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x', 'continuous') sage: G Monoid of continuous generalized series in x over Rational Field sage: x = ZZ['x'].gen() sage: G1 = G.base_extend(x^2 + 2, 'a') sage: G1 Monoid of continuous generalized series in x over Number Field in a with defining polynomial x^2 + 2 sage: G2 = G1.base_extend(x^3 + 5, 'b') sage: G2 Monoid of continuous generalized series in x over Number Field in b with defining polynomial x^3 + 5 over its base field sage: G2(G1.random_element()).parent() is G2 True sage: G1.random_element().parent() is G2 False
-
exp_ring
()¶ Returns the ring which is used to store the exponential part of a generalized series. It is the univariate polynomial ring in over
self.base()
in the variableself.var()
.A polynomial p represents the exponential part exp(int_0^x p(t^{1/r})/t dt), where r is the object’s ramification.
In particular, a constant polynomial alpha represents exp(alphalog(x))=x^alpha`.
-
gen
()¶ Returns the generator of this monoid
-
is_commutative
()¶ Returns
True
.
-
is_exact
()¶ Returns
False
, because series objects are inherently approximate.
-
random_element
()¶ Returns a random element of this monoid.
-
tail_ring
()¶ Returns the ring which is used to store the non-exponential part (the tail) of a generalized series. It is the univariate polynomial ring in the variable “LOG” over the power series ring in
self.var()
overself.base()
.A polynomial p(x,y) represents the tail p(x^{1/r}, log(x)).
-
var
()¶ Returns the variable name associated to this monoid.
-