HomeArticlesMathematics

Phase Portraits: Reading a Dynamical System Without Solving It

Plot the velocity vector at every point in the plane instead of solving the equations, and the fixed points, spirals and cycles of a system reveal themselves directly.

mysimulator teamUpdated June 2026≈ 8 min read▶ Open the simulation

The vector field is the whole story

Take a 2D autonomous system of ordinary differential equations, dx/dt = f(x, y) and dy/dt = g(x, y). At every point of the plane, (f, g) is a velocity vector telling you exactly which way and how fast the state would move if it were there. A phase portrait draws a grid of these vectors, plus a family of trajectories that are everywhere tangent to them, instead of plotting x(t) and y(t) against time. You lose the timing information, but you gain something more valuable: the entire qualitative behaviour of the system, visible at a glance, with no closed-form solution required.

dx/dt = a*x + b*y
dy/dt = c*x + d*y        (linear case, matrix form: dX/dt = A X)
live demo · trajectories flowing through a 2D vector field● LIVE

Fixed points and their classification via eigenvalues

A fixed point is a location where the vector field is exactly zero — both f and g vanish, so a state placed there never moves. Near a fixed point you can linearize the system with its Jacobian matrix, and the eigenvalues of that Jacobian classify exactly how nearby trajectories behave.

both eigenvalues real, negative        -> stable node (sink)
both eigenvalues real, positive        -> unstable node (source)
real eigenvalues, opposite signs       -> saddle
complex pair, negative real part       -> stable spiral
complex pair, positive real part       -> unstable spiral
purely imaginary pair                  -> center (neutral orbits)

Nonlinear systems: limit cycles and the Poincare-Bendixson theorem

Nonlinear systems can also have an isolated closed periodic orbit called a limit cycle, which nearby trajectories spiral toward (or away from) without ever landing on it — the Van der Pol oscillator is the textbook example. The Poincare-Bendixson theorem says that in a bounded region of the plane, any trajectory of a continuous 2D autonomous system that does not approach a fixed point must approach a periodic orbit. Trajectories in a plane cannot cross themselves, so there is simply no room for the endless stretching and folding that chaos requires. That is a structural reason 2D phase portraits always look orderly, while a 3D system like the Lorenz attractor, which has the extra dimension to fold into, can be genuinely chaotic.

Reading stability and bifurcations from the portrait

Nullclines — the curve where dx/dt = 0 and the curve where dy/dt = 0 — intersect exactly at the fixed points, and sketching them by hand is the classic way to build a phase portrait without a computer: the vector field points purely vertically on the dx/dt = 0 nullcline and purely horizontally on the dy/dt = 0 nullcline. As a system's parameters change continuously, fixed points can appear, disappear, merge or flip stability; a Hopf bifurcation is the moment a stable spiral turns unstable and sheds a small limit cycle around itself, a mechanism behind the onset of oscillation in everything from predator-prey models to electronic circuits.

Frequently asked questions

What is the difference between a fixed point and a limit cycle?

A fixed point is a single point where the vector field is exactly zero, so a trajectory placed there never moves. A limit cycle is an isolated closed loop that trajectories spiral toward (or away from) but never actually stop on; the system keeps moving forever, tracing the same periodic orbit repeatedly.

How do I classify a fixed point just by looking at the portrait?

Watch how nearby trajectories behave. Straight lines flowing directly in or out mean a node; trajectories curving inward or outward while spiralling mean a spiral (stable if they approach the point, unstable if they flee); trajectories that approach along one direction and flee along another mean a saddle; and closed loops encircling the point with no inward or outward drift mean a center. These visual patterns correspond exactly to the sign and type of the Jacobian's eigenvalues at that point.

Why can't a 2D continuous system be chaotic?

The Poincare-Bendixson theorem proves that any bounded trajectory in a 2D continuous (autonomous) system that does not approach a fixed point must approach a periodic orbit. Trajectories in the plane cannot cross themselves, which rules out the kind of endless, non-repeating stretching and folding that produces chaos. True chaotic attractors like the Lorenz system need at least three dimensions to have room to fold without intersecting.

Try it live

Everything above runs in your browser — open Phase Portrait and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open Phase Portrait simulation

What did you find?

Add reproduction steps (optional)