Time evolution of a function of two variables. Let $f(x,y)$ be a real function of two variables. What can be said about the trajectory of the function:
$$ g_t(x,y) = f( x \cos(t) - y\sin(t) , y \cos(t) + x \sin(t) ), \ t \in [0,2\pi]?$$
I know that when $f$ is a gaussian centered at $(x_0,y_0)$, then in time it will follow an elliptical orbit about the origin. But what can be said for an arbitrary (though nice) $f$? Will it still exhibit some sort of rotation? I don't know how to visualise this.
 A: For any $t$, we can decompose $g_t$ as the composition
$$g_t = f \circ R_t,$$
where $R_t : \mathbb{R}^2 \to \mathbb{R}^2$ is the map
$$\begin{pmatrix}x\\y\end{pmatrix} \mapsto \begin{pmatrix}x \cos t - y \sin t\\ x \sin t + y \cos t\end{pmatrix} = \begin{pmatrix} \cos t & -\sin t\\ \sin t & \cos t\end{pmatrix} \begin{pmatrix}x\\y\end{pmatrix},$$
which itself rotates a given point $t$ radians anticlockwise about the origin. So (for fixed $t$) as a subset of $\mathbb{R}^2 \times \mathbb{R}$, the graph of $g_t$ is just the graph of $f$ rotated $t$ radians clockwise about the origin.
If we replaced $\sin t$ with $B \sin t$ for some, say, positive constant $B$, to produce a corresponding "rotation" $R_t^B$, then we get a rather more complicated behavior. One way to understand a composition $g_t^B := f \circ R_t^B$ is to look at the path determined by a point $(x, y)$ under the family $R_t^B$ of transformations: For example, given a point $(x, y)$, say, a distance $r$ from the origin, then for each time $t$, the point $R_t^B(x, y)$ is a distance $r\sqrt{1 + (B^2 - 1) \sin^2 t}$ from the origin. This means that the family $g_t^B$ behaves in a particularly nice way if $f$ is a radial function, that is, if $f(x, y)$ depends only on the value $r$.
Here's a typical example, with $B = 2$ and a nonradial function $f(x, y) = x^2 + 6 \cos y$. (Maple code that generates this animation is below.)

restart;
with(plots);
B := 2;
f := (x, y) -> x + cos(y);
RB := (x, y, t) -> (x * cos(t) - B * y * sin(t), B * x * sin(t) + y * cos(t));
animate(plot3d, [f(RB(x, y, t)), x=-Pi..Pi, y=-Pi..Pi], t=0..2*Pi);

