First time here? Check out the FAQ!

Ask Your Question
1

How can I recurse a power series in two variables?

asked 7 years ago

tzeentch gravatar image

I would like very much to express, for example,

R.<x, y> = PowerSeriesRing(QQ, default_prec = 20)
g(x, g(x, g(x, x)))

Or,

f(x, f(x, f(x, f(x, f(x, f(x, f(x, f(x, f(x, f(x, f(x, f(x, (f(x, (f(x, f(x,y))))))))))))))))).expand()

In a more elegant way, for a specified number of self-compositions in one variable. I have only been able to find the sage function of composition for one variable polynomials, not for nesting two variable power series.

Preview: (hide)

Comments

Could you provide a definition of f and g that one could use to explore your question?

slelievre gravatar imageslelievre ( 7 years ago )

Note: with R as in the question, R.random_element() gave a starting point for exploration.

slelievre gravatar imageslelievre ( 7 years ago )

In general though, providing a working example helps other Ask Sage users to explore a question. This question had g(x, g(x, g(x, x))) but no definition of g to make that work.

slelievre gravatar imageslelievre ( 7 years ago )

1 Answer

Sort by » oldest newest most voted
0

answered 7 years ago

slelievre gravatar image

Defining a function would give you a nice syntax for this kind of iteration.

For example, let us define right_iterate as follows.

def right_iterate(n, g):
    x, y = g.parent().gens()
    gg = y
    for k in xrange(n):
        gg = g(x, gg)
    return gg

Suppose we defined

sage: g = x*y^3 + x^3*y^11 - 1/21*x^11*y^5 - 2/5*x^3*y^13 + O(x, y)^60

then, instead of writing

sage: g(x, g(x, g(x, y)))
x^13*y^27 + 9*x^15*y^35 - 3/7*x^23*y^29 - 18/5*x^15*y^37 - 1/7*x^25*y^33 + O(x, y)^60

one can write

sage: right_iterate(3, g)
x^13*y^27 + 9*x^15*y^35 - 3/7*x^23*y^29 - 18/5*x^15*y^37 - 1/7*x^25*y^33 + O(x, y)^60

and instead of

sage: g(x, g(x, g(x, x)))
x^40 + 9*x^50 - 141/35*x^52 - 1/7*x^58 + O(x, y)^60

one can write

sage: right_iterate(3, g)(x, x)
x^40 + 9*x^50 - 141/35*x^52 - 1/7*x^58 + O(x, y)^60

Of course, you could modify the function to directly use (x, x) if you always want that.

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 7 years ago

Seen: 339 times

Last updated: Dec 06 '17