Modelado de un pozo de potencial

Intenté simular la interacción de una partícula en movimiento y un pozo de potencial en Mathematica . La partícula debe experimentar una fuerza de - 1 / r 2 , si la ecuación para el pozo de potencial es - 1 / r . Las entradas para la función NDSolve son:

  x''[t] == -x[t]/((x[t] - a)^2 + (y[t] - b)^2)^(3/2), 
  y''[t] == -y[t]/((x[t] - a)^2 + (y[t] - b)^2)^(3/2),
  x[0] == -2,
  y[0] == -2,
  x'[0] == 2 ,
  y'[0] == 2,

Debería ocurrir una especie de movimiento en espiral o atrapamiento cuando la partícula se acerca al pozo en un cierto ángulo. Pero no sucede en esta simple simulación. La partícula debe experimentar alguna fuerza centrífuga cuando está cerca del pozo para que cambie su dirección. ¿Qué otros términos deben agregarse para representar esta fuerza en la función NDSolve? Cualquier idea o cualquier ayuda sería muy apreciada.

Lo que tengo es:

ingrese la descripción de la imagen aquí

Lo que se esperaba ver es:

ingrese la descripción de la imagen aquíAl adoptar las sugerencias que se dan a continuación, los términos de NDSolve ahora se modificaron de la siguiente manera:

soln[a_, b_, alp_, sp_] := Return[First@NDSolve[{
      x''[t] == x[t]/((x[t] - a)^2 + (y[t] - b)^2)^(3/2) - alp*x'[t], 
      y''[t] == y[t]/((x[t] - a)^2 + (y[t] - b)^2)^(3/2) - alp*y'[t],
      x[0] == -2,
      y[0] == -2,
      x'[0] == sp,
      y'[0] == sp},
     {x, y}, {t, 0, 3}]];

y se agregaron controles deslizantes para ajustar. Aún así, no se observó ninguna trayectoria cónica. La partícula se mueve como si fuera en línea recta desde la vista superior.ingrese la descripción de la imagen aquí

Con esas entradas, lanzas la partícula directamente a la divergencia. Esperaría entonces, debido a errores numéricos, que sobrepase (0, 0) ligeramente y salga por el otro lado en línea recta. Esto quiere decir que la trayectoria parece plausible dadas las entradas. Si no me equivoco, si trazara la velocidad a lo largo del tiempo, debería obtener un valor no constante, y si comenzó la partícula con un ligero ángulo, y'[0] = 1, por ejemplo, debería obtener el comportamiento que desee (tenga en cuenta que la velocidad inicial podría ser demasiado alta para que la partícula "notara" la gravedad).
Actualmente, la posición del pozo de potencial es ajustable en la simulación , también se han probado diferentes valores de velocidad inicial y posiciones del pozo de potencial. No se había observado ningún rastro de espiral alguna.
En ese caso, esto no parece un problema de física, sino más bien un problema con el software en particular. Hay un Mathematica.SE, y la gente probablemente podría ayudar mejor.
@alarge Su problema particular en este caso es de física, está simulando la gravedad newtoniana y esperando que entre en espiral.
@alemi De acuerdo, hay un pequeño malentendido en cuanto a cómo debería verse la órbita en la pregunta planteada, pero el principal problema aquí parece ser que el software no resuelve las ecuaciones: la trayectoria no se desvía (esperando una hipérbola, una sección cónica, es razonable pero aparentemente no sucede a pesar de variar las condiciones iniciales).
¿Podría agregar a la pregunta su versión de Mathematica? Es plausible que los más antiguos no tengan algunas de las funciones necesarias para hacer las cosas de la misma manera (también tenga en cuenta que su término de arrastre, si lo desea, no tiene la misma forma que se sugirió en algunas de las publicaciones a continuación) .
Todavía estás apuntando directamente al origen de tu velocidad inicial. Ver la actualización en mi respuesta.
@alemi El potencial no parece estar centrado en (0, 0), por lo que la dirección de la velocidad inicial no es un problema.
@ user16069 Consulte mi respuesta actualizada. Creo que el problema es que la fuerza en tus ecuaciones de movimiento siempre apunta a (0,0), no a (a,b).

Respuestas (2)

ACTUALIZADO: ver más abajo.

Sus entradas NDSolve parecen estar haciendo lo que esperaría para una masa alrededor de un centro gravitacional. Usando:

a = 0;
b = 0;
traj = Table[
   s = NDSolve[{x''[t] == -x[t]/((x[t] - a)^2 + (y[t] - b)^2)^(3/2), 
      y''[t] == -y[t]/((x[t] - a)^2 + (y[t] - b)^2)^(3/2), x[0] == 1, 
      y[0] == 0, x'[0] == 0, y'[0] == v}, {x, y}, {t, -20, 20}];
   {x[t], y[t]} /. s,
   {v, 0.1, 2.1, 0.2}];
ParametricPlot[traj, {t, -20, 20}, PlotRange -> {{-3, 2}, {-4, 4}}]

donde el centro gravitacional está en 0,0 y la masa está en (x,y)=(1,0) en t=0, obtengo una serie de órbitas limitadas y (probablemente) ilimitadas de varios tamaños en un rango de inicial velocidades:

ingrese la descripción de la imagen aquí

Como dijo @alemi, no habrá una espiral a menos que incluya un término de amortiguación. Las órbitas para este tipo de potencial están libres (de entrada y luego de salida) o son bucles cerrados.

ACTUALIZACIÓN: la fuerza en las ecuaciones de movimiento tal como están escritas siempre es radial desde (x,y)=(0,0). La fuerza debe estar en la dirección (a,b)-(x,y). Las ecuaciones de movimiento correctas son:

{x''[t] == (a - x[t])/((x[t] - a)^2 + (b - y[t])^2)^(3/2) - alp*x'[t],
  y''[t] == (b - y[t])/((x[t] - a)^2 + (y[t] - b)^2)^(3/2) - 
   alp*y'[t], x[0] == -2, y[0] == -2, x'[0] == sp, y'[0] == sp}

Observe el cambio de 'a' y 'b' en los numeradores , no solo el cálculo de la distancia en el denominador. Las ecuaciones funcionaron en mi prueba porque coloqué el pozo de potencial en (0,0) y moví la masa fuera del eje.

puede eliminar el (probablemente). mi = 1 / r + 1 2 v 2 , entonces en tu caso v = 2 es el punto de inflexión.

Si tu potencial es 1 / r , estás simulando efectivamente la gravedad. Si te da una mejor intuición, imagínalo como la tierra alrededor del sol.

Siempre que su solucionador numérico esté haciendo un trabajo decente, no debe esperar que la bola entre en espiral, la solución correcta sería una sección cónica, es decir, orbitaría el origen en una trayectoria elíptica si las condiciones iniciales equivalen a un energía ligada, o hiperbólica si las condiciones iniciales equivalen a una energía no ligada. Los bocetos que publica sugieren que se encuentra en el caso no vinculado, por lo que, incluso para ver las órbitas, debe disminuir la magnitud de sus velocidades iniciales.

Por supuesto, esto solo es cierto siempre que esté usando un integrador simpléctico (uno que conserva energía, que imagino que Mathematica usa de manera predeterminada). Un integrador débil como el simple Euler tendría la bola en espiral, pero esto es puramente un efecto de la pobre integración.

Si realmente desea que entre en espiral, debe agregar algún tipo de término de amortiguación viscosa

F = α v

o algo así como la resistencia del aire, una fuerza de la forma

F = α v 2 v ^ = α | v | v

Además, después de la actualización, está claro que todavía está disparando casi directamente al origen con una velocidad demasiado alta. Es como si estuvieras modelando dispersión gravitacional, no órbitas. Estás variando tu velocidad inicial , no tu velocidad inicial . Para ser completamente general, ¿por qué no establece

x'[0] == v0 Cos[th]
y'[0] == v0 Sin[th]

Y juegue con los controles deslizantes v0y thpor separado para tener una idea de lo que está sucediendo. Aquí la thvariable controlará la dirección inicial de su velocidad inicial y v0controlará la velocidad inicial.

En cuanto al valor que debe tener la velocidad inicial, puede considerar la energía inicial para tener una idea de la magnitud adecuada. En t = 0 , tienes

mi = 1 2 v 2 1 r
Si esta energía es positiva, ignorando el amortiguamiento, la partícula no está unida y debería dispararse hasta el infinito. Intente usar la configuración inicial que Jason A usó en su respuesta. Ponga el centro del potencial en cero, haga que la partícula comience en X ( 0 ) = 1 , y ( 0 ) = 0 y establecer X ˙ ( 0 ) = 0 , y ˙ ( 0 ) = v , dónde v está cerca de 1 más o menos.