Ask Your Question

Self composition of a function with symbolic variable

asked 2020-05-10 20:55:28 +0200

sberner gravatar image

updated 2021-10-24 20:38:00 +0200

slelievre gravatar image

I have a function in one variable with a placeholder variable, and would like to find the nth iterate. For example, using:

$f(z) = z^3 + a z^2$, a function in variable $z$ with placeholder coefficient $a$.

then I would like to see

$f(f(z)) = (z^3 + az^2)^3 + a(z^3 + az^2)^2$

However I am struggling to perform this in Sage.

f(f) returns (a*z^2 + z^3)*z^2 + z^3, so it substitutes for $a$ instead of $z$, and declaring f(f(z)) returns the function only in terms of $z$.

How can we self compose functions with a placeholder variable for a coefficient?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-05-10 21:15:18 +0200

tmonteil gravatar image

What is wrong here :

sage: var('a')
sage: f(z)=z^3+a*z^2
sage: f(f(z))
(a*z^2 + z^3)^3 + (a*z^2 + z^3)^2*a
edit flag offensive delete link more


Ahh, my mistake was that I was also declaring z as a variable. Why don't I need to do this? Does sage "know" that this is over the complex field?

sberner gravatar imagesberner ( 2020-05-10 21:20:08 +0200 )edit

No, the construction f(z)= is not Pythonic, so there is some Sage preparsing that does the job of defining the symbol z :

sage: preparse('f(z)=z^3+a*z^2')
'__tmp__=var("z"); f = symbolic_expression(z**Integer(3)+a*z**Integer(2)).function(z)'
tmonteil gravatar imagetmonteil ( 2020-05-10 21:58:57 +0200 )edit

Your Answer

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

Add Answer

Question Tools


Asked: 2020-05-10 20:55:28 +0200

Seen: 467 times

Last updated: Oct 24 '21