Hi,

On Thu, 31 Dec 2009 08:37:55 -0800 (PST)
VictorMiller <[email protected]> wrote:

> Is there any easy way of building up what I'd call a ring of
> exponentials (maybe there's a better word)?  For example I'd like to
> work in the ring QQ[[2^j for j in Integers()]]: the ring with
> coefficients in Q and elements 2^j where j is an integer (or possibly
> just a non-negative integer).  Such things arise naturally when
> considering difference equations.  Such a ring should also have a
> difference operator Delta(f)(x) := f(x+1)-f(x).  In fact the ring that
> I mentioned might also be embedded in an even bigger ring -- of all
> functions
> 
> f: Integers() --> QQ
> 
> Has anybody built such a thing?

I have implemented special difference fields, so called PiSigma
Fields [1], which can be used to model sums and products.

[1] http://doi.acm.org/10.1145/322248.322255

I work with the shift operator \sigma, which is the mapping x |-> x+1,
and not Delta as you describe.

Since 2^j is a product, namely \prod_{i=1}^j 2, this can be modeled in
a PiSigmaField:

sage: from karr.pi_sigma_field import PiSigmaField
sage: K.<j> = PiSigmaField(QQ, 1, 1)
sage: E.<e> = PiSigmaField(K, 2, 0)

Here the arguments to the PiSigmaField constructor specify the base
field and a,b in the base field such that \sigma(j) = aj + b where j
is the generator of the extension. Michael Karr shows that most first
order equations of interest create transcendental extensions of the
base field which have the same constant field. An interesting
object which doesn't lead to a transcendental extension is (-1)^n.

In the construction above, we have

sage: sigma = E.sigma()
sage: sigma
Ring endomorphism of PiSigmaField with constant field Rational Field
and tower: [('j', 1, 1), ('e', 2, 0)]
  Defn: e |--> 2*e
        j |--> j + 1
sage: sigma(j)
j + 1

Solving first order difference equations in such an object is
equivalent to simplifying indefinite symbolic sums or products. I have
an implementation of a modified version of Karr's algorithm for this.

It is also possible to solve higher order equations, once we have
degree bounds for the solutions.

The code is for experimentation only and far from being efficient.
This is the main reason I didn't try to submit it for inclusion in Sage
so far. I can make it available if you're interested though.


Cheers,
Burcin

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to