Ruling out closed orbits.
After reading this section of notes, you should
know what a gradient system is and understand why such a system can not have a closed orbit,
know what a Liapunov function is, and
know Dulac’s criterion and how to apply it.
From our experiences so far, we know that a two-dimensional autonomous system of the form
dxdt=f(x,y)dydt=g(x,y) may possess closed orbits either in the form of a nonlinear center or a limit cycle. However, in general, it is tricky to confirm the existence of a closed orbit for a nonlinear system. In this section of notes, we provide some techniques for ruling out the possibility of closed orbits. Here we closely follow section 7.2 from (Strogatz 2015) and recommend it for further reading.
In this section, we introduce three common and relatively easy techniques that can be used to rule out the possibility that a system of the form
dxdt=f(x,y)dydt=g(x,y)
possesses closed orbits. These are gradient systems, Liapunoz functions, and Dulac’s criterion.
Suppose that F:Rn→R is a function such that ∂F∂xi exists for i=1,2,…,n. We define the gradient ∇F of F to be the vector
∇F(x1,x2,…,xn)=(∂F∂x1(x1,x2,…,xn)∂F∂x2(x1,x2,…,xn)⋮∂F∂xn(x1,x2,…,xn))
In particular, in two-dimensions
∇F(x,y)=(∂F∂x(x,y)∂F∂y(x,y))
Notation: We will use bold face letters such as x to stand for vectors. That is, x=(x1,x2,…,xn)T. Further, notation such as f(x) denotes concisely a vector field such as
f(x)=(f1(x1,x2,…,xn)f2(x1,x2,…,xn)⋮fn(x1,x2,…,xn))
We say that a system ddtx=f(x) is a gradient system if there is a (scalar) function F(x) that satisfies −∇F=f(x) in which case we have ddtx=−∇F. Sometimes a gradient system is also called a conservative system and the function F is called a potential.
In the plane R2, a system
dxdt=f(x,y)dydt=g(x,y)
is a gradient system if there is a function F(x,y) satisfying
dxdt=f(x,y)=−∂F∂xdydt=g(x,y)=−∂F∂y
For example, the system
dxdt=−2xdydt=2y is a gradient system with potential F(x,y)=x2−y2 since
−∂F∂x=−2x−∂F∂y=−(−2y)=2y Now this particular system happens to be linear with trace τ=0 and determinant δ=−4 from which we deduce that the origin is a saddle. The phase portrait for the system is shown below.
lin_sys <- function(t,state,parameters){
with(as.list(c(state,parameters)),{
dx <- A %*% state
list(dx)
})
}
A <- matrix(c(-2,0,0,2),2,2,byrow=TRUE)
parms_mat <- list(A=A)
linear_flowField <- flowField(lin_sys,
xlim = c(-2, 2),
ylim = c(-2, 2),
parameters = parms_mat,
points = 19,
add = FALSE)
state <- matrix(c(1,0,1.0,0.25,-1.0,0.25,-1.0,-0.25,1.0,-0.25,-1,0,0,0.1,0,-0.1),
8, 2, byrow = TRUE)
linear_trajectory <- trajectory(lin_sys,
y0 = state,
tlim = c(0, 10),
parameters = parms_mat,
add=TRUE)

In general, gradient systems will not be linear. Further, not all linear systems are gradient systems.
Theorem: Closed orbits are impossible in gradient systems.
See (Strogatz 2015) for a proof.
Given a system
dxdt=f(x,y)dydt=g(x,y) it may not be easy to find a potential function F even if the system is actually a gradient system. There is an approach that sometimes works. Let’s look at the example system
dxdt=−2xdydt=2y
again. A potential F must satisfy ∂F∂x=−(−2x)=2x. So let’s integrate this with respect to x. Doing so gives
F(x,y)=∫2x dx=x2+ϕ(y)
Why do we have the additive term of ϕ(y)? It is because any function of y alone is treated as a constant whenever we take a partial derivative with respect to x. Now, if F(x,y)=x2+ϕ(y) is actually a potential, then it must also satisfy
∂F∂y=∂∂y(x2+ϕ(y))=ϕ′(y)=−2y This happens provided ϕ(y)=−y2+c for any constant value. This was obtained by integrating
∫ϕ′(y) dy=∫−2y dy
Thus, we conclude that F(x,y)=x2−y2 is a potential for the system
dxdt=−2xdydt=2y Note that F(x,y)=x2−y2+c for any constant value of c would also be a potential for this system. Thus, potentials are only unique up to an additive constant.
In general, finding a potential in this way involes solving a system of differential equations
∂F∂x=−f(x,y)∂F∂y=−g(x,y)
and this may or may not be easy depending on how difficult it is to find antiderivatives for the functions on the right hand side.
Suppose that a system dxdt=f(x,y)dydt=g(x,y) is a gradient system with potential function F(x,y). As we know from Calculus III, the graph of z=F(x,y) is a surface but it can be visualized in the plane by displaying its contours. It turns out that the contours of a potential function F(x,y) are closely related to the phase portrait of the corresponding autonomous system.
In particular, a parametric curve (x(t),y(t)) that is a solution to a system
dxdt=f(x,y)dydt=g(x,y) that possesses a potential F(x,y) will be orthogonal to contour lines F(x,y)=c. You will show that this is the case in the homework exercises.
For now, let’s make a contour plot of the potential F(x,y)=x2−y2 for the system
dxdt=−2xdydt=2y
the phase portrait of which was shown above.

Can you see how the contour lines are orthogonal to the trajectories
of the system? Note that we have used the function cf_func
from the ContourFunctions
package to obtain the previous plot.
Suppose that we have an autonomous system ddtx=f(x) with an equilibrium x∗. A function V that satisfies
V(x∗)=0 and V(x)>0 for all x≠x∗, and
ddtV(x)<0 for all x≠x∗
is called a Liapunov function.
Theorem: If a system ddtx=f(x) with an equilibrium x∗ has a Liapunov function, then the equilibrium x∗ is globally asymptotically stable. Hence, the system cannot have a closed orbit.
That x∗ is globally asymptotically stable means that for any initial condition x(t)→x∗ as t→∞. A system that has a globally asymptotically stable equilibrium cannot have a closed orbit since otherwise there would be at least one trajectory which would fail to approach the equilibrium x∗. Thus, we can use the existence of a Liapunov function for the purpose of ruling out closed orbits.
Consider the system
dxdt=−x+4ydydt=−x−y3 We claim that V(x,y)=x2+4y2 is a Liapunov function for this system. Note that the system has a single equilibrium at x∗=(0,0). Observe,
V(0,0)=0 and V(x,y)>0 as long as (x,y)≠(0,0), and
ddtV(x,y)=∂V∂xdxdt+∂V∂ydydt=(2x)dxdt+(8y)dydt=2x(−x+4y)+8y(−x−y3)=−2x2+8xy−8xy−8y4=−2x2−8y4 for any trajectory of the system. Now, we have that −2x2−8y4≤0 and only equals zero at (0,0). Thus V(x,y)=x2+4y2 is in fact a Liapunov function for the system.
As you can check, the linearization of the system
dxdt=−x+4ydydt=−x−y3
at (0,0) is
(−14−10)
which has trace τ=−1 and determinant δ=4. So we conclude that the phase portrait near (0,0) is a stable spiral. The existence of a Liapunov function allows us to make an even stronger conclusion that the global phase portrait for the system is a stable spiral. We plot the phase portrait for this system here
nonlinear_example <- function(t,state,parameters){
with(as.list(c(state,parameters)),{
dx <- -state[1] + 4*state[2]
dy <- -state[1] - state[2]^3
list(c(dx,dy))
})
}
nonlinear_flowfield <- flowField(nonlinear_example,
xlim = c(-2, 2),
ylim = c(-2, 2),
parameters = NULL,
points = 17,
add = FALSE)
state <- matrix(c(1,1,-1,-1),2,2,byrow = TRUE)
nonlinear_trajs <- trajectory(nonlinear_example,
y0 = state,
tlim = c(0, 10),
parameters = NULL,add=TRUE)

The stable spiral is apparent.
The method of Liapunov functions is very powerful. However, it is in general not trivial to find Liapunov functions.
The following result is known as Dulac’s criterion:
Theorem: Let ddtx=f(x) be a continuously differentiable vector field defined on a simply connected region R of the plane R2. If there exists a continuously differentiable, real-valued function s(x) such that ∇⋅(sddtx) has one sign throughout R, then there are no closed orbits lying entirely in R.
Recall that the notation ∇⋅f refers to the divergence of the vector field f.
We refer to (Strogatz 2015) for the proof but note that the proof is an application of Green’s theorem from Calculus III.
We use Dulac’s criterion to show that
dxdt=ydydt=−x−y+x2+y2
has no closed orbits. Obviously the right hand side of this system is a continuously differentiable vector field defined in the entire plane R2 which happens to be a simply connected set (this essentially means that there are no holes in the plane). Now, let s(x,y)=e−2x, then
∇⋅(g(x,y)(dxdtdydt)T)=∇⋅(e−2x(dxdtdydt)T)=∂∂x(e−2xdxdt)+∂∂y(e−2xdydt)=∂∂x(e−2x(y))+∂∂y(e−2x(−x−y+x2+y2))=−2ye−2x−e−2x+2ye−2x=−e−2x<0, ∀ x Thus, Dulac’s criterion is satisfied for this particular system. In the homework, you will be asked to determine the equilibria for the system
dxdt=ydydt=−x−y+x2+y2
and examine their corresponding stability properties. Further, you will rewrite the system in polar coordinates and see what that suggests about the phase portrait for the system which looks as follows
dulacs_example <- function(t,state,parameters){
with(as.list(c(state,parameters)),{
dx <- state[2]
dy <- -state[1] - state[2] + state[1]^2 + state[2]^2
list(c(dx,dy))
})
}
nonlinear_flowfield <- flowField(dulacs_example,
xlim = c(-3, 3),
ylim = c(-3, 3),
parameters = NULL,
points = 17,
add = FALSE)
state <- matrix(c(1,0,0,1,-1,0,0,-1,1,1,-1,1,-1,-1,1,-1,
2,-1,2,1),10,2,byrow = TRUE)
nonlinear_trajs <- trajectory(dulacs_example,
y0 = state,
tlim = c(0, 50),
parameters = NULL,add=TRUE)

Gradient systems, systems for which a Liapunov function exists, and systems for which Dulac’s criterion applies can not have closed orbits. This includes both limit cycles and nonlinear centers. If you have a system for which you have reason to believe that there should be no closed orbits, then you might be able to use one of these techniques to prove it. On the other hand, what do you do if you suspect that a system does possess closed orbits and you want to confirm it? In the case of stable limit cycles, the famous Poincarè-Bendixson theorem can often be used to provide a rigorous verification of the existence of a closed orbit. We will take up the study of this in the next section of notes.
For further details on the topics covered in this section of notes, see Chapter 7 from (Strogatz 2015).
Text and figures are licensed under Creative Commons Attribution CC BY-NC 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".