Consideremos un campo vectorial $\vec A$ y un desplazamiento infinitesimal $d\vec r$ sobre una trayectoria $C$. Se define la circulación elemental de $\vec A$ sobre la trayectoria $C$ como el producto escalar $\vec A · d\vec r$. En consecuencia, la circulación del campo $\vec A$ entre dos puntos $P$ y $Q$ que están sobre la curva $C$ es:
$$ \int_P^Q \vec A · d\vec r$$
Si la curva $C$ es cerrada, esta circulación se suele indicar de la siguiente manera:
$$ \oint_C\vec A·d\vec r $$
Un campo vectorial conservativo $\vec E$ se puede expresar como gradiente de una función potencial $V$: $\vec E = -\vec \nabla V$. En consecuencia, en un campo vectorial conservativo se verifica que:
- La circulación entre dos puntos cualesquiera no depende del camino seguido, sino que depende solamente de las posiciones inicial y final.
- La circulación a lo largo de cualquier camino cerrado es cero.
Pensemos en una fuerza que actúa sobre un cuerpo, empujándolo a lo largo de una trayectoria. La circulación del vector fuerza equivaldría a cuánto empuja la fuerza, de manera efectiva, a lo largo de ese camino. Este "empuje" no solo depende de la magnitud de la fuerza, sino también del ángulo que forman la fuerza y el desplazamiento sobre la trayectoria (ya que solo la componente de la fuerza que actúa en la dirección del desplazamiento contribuirá al movimiento a lo largo de esta trayectoria). Como en un desplazamiento infinitesimal $d\vec r$ la componente de la fuerza en la dirección de la trayectoria es $\vec F· d\vec r$, la circulación total la obtendremos integrando este valor a lo largo de todo el camino: $\int_A^B\vec F· d\vec r$. Y este valor no es otra cosa que el trabajo realizado por la fuerza entre $A$ y $B$. Es decir, la circulación del vector fuerza entre dos puntos es el trabajo de que realiza la fuerza para desplazar un cuerpo entre dichos puntos.
var('x y t')
# Campo creado por una fuerza F constante
F = (1, 1)
campo = plot_vector_field(F, (x, -2, 2), (y, -2, 2), plot_points=10, color='darkslategray')
# Curva
x = cos(t)
y = sin(t)
curva1 = parametric_plot((x, y), (t, 0, 2*pi), thickness=4, color='cadetblue', alpha=.5)
curva2 = parametric_plot((x, y), (t, -pi/4, pi/4), thickness=4, color='cadetblue', alpha=.5)
# Vector
vectorF = arrow((1,0),(2,1), color='darkslategray')
vectorFx = arrow((1,0),(2,0), color='brown')
vectorFy = arrow((1,0),(1,1), color='brown')
# Desplazamiento infinitesimal
dr = arrow((1,0),(1, 0.2), color='cadetblue')
# Representación gráfica
show(campo + curva1, frame=False, axes=False)
show(curva2 + vectorF + vectorFx + vectorFy + dr, axes=False, figsize=4)