Ich habe versucht, die Wechselwirkung zwischen einem sich bewegenden Teilchen und einem Potentialtopf in Mathematica zu simulieren . Das Teilchen sollte eine Kraft erfahren von - , wenn die Gleichung für den Potentialtopf lautet - . Die Eingaben für die NDSolve -Funktion sind:
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,
Eine Art spiralförmige Bewegung oder Einfangen sollte passieren, wenn sich das Teilchen dem Brunnen in einem bestimmten Winkel nähert. Aber es passiert nicht in dieser einfachen Simulation. Das Partikel muss eine gewisse Zentrifugalkraft erfahren, wenn es sich in der Nähe des Bohrlochs befindet, damit seine Richtung geändert wird. Welche anderen Begriffe sollten hinzugefügt werden, um diese Kraft in der NDSolve-Funktion darzustellen? Jede Idee oder Hilfe wäre sehr willkommen.
Was ich habe ist:
Was erwartet wird, ist:
Durch die Übernahme der nachstehenden Vorschläge wurden die Bedingungen für die NDSolve nun wie folgt geändert:
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}]];
und Schieberegler wurden zum Einstellen hinzugefügt. Dennoch wurde keine konische Flugbahn beobachtet. Das Partikel bewegt sich aus der Draufsicht wie in einer geraden Linie.
AKTUALISIERT: Siehe unten.
Ihre NDSolve-Eingaben scheinen das zu tun, was ich für eine Masse um ein Gravitationszentrum erwarten würde. Verwendung:
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}}]
wo das Gravitationszentrum bei 0,0 und die Masse bei (x,y)=(1,0) bei t=0 ist, erhalte ich eine Reihe von begrenzten und (wahrscheinlich) unbegrenzten Umlaufbahnen unterschiedlicher Größe über einen Anfangsbereich Geschwindigkeiten:
Wie @alemi feststellte, wird es keine Spirale geben, es sei denn, Sie fügen einen Dämpfungsbegriff ein. Die Umlaufbahnen für diese Art von Potenzial sind entweder ungebunden (Einflug, dann Ausflug) oder geschlossene Schleifen.
UPDATE: Die Kraft in den geschriebenen Bewegungsgleichungen ist immer radial von (x,y)=(0,0). Die Kraft sollte in Richtung (a,b)-(x,y) wirken. Die richtigen Bewegungsgleichungen lauten:
{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}
Beachten Sie die Verschiebung um 'a' und 'b' in den Zählern , nicht nur die Entfernungsberechnung im Nenner. Die Gleichungen funktionierten in meinem Test, weil ich den Potentialtopf bei (0,0) platzierte und die Masse von der Achse wegbewegte.
Wenn Ihr Potenzial ist , simulieren Sie effektiv die Schwerkraft. Wenn es Ihnen eine bessere Intuition gibt, stellen Sie es sich als die Erde um die Sonne vor.
Solange Ihr numerischer Löser gute Arbeit leistet, sollten Sie nicht erwarten, dass sich die Kugel spiralförmig hineindreht, die richtige Lösung wäre ein Kegelschnitt, dh sie würde den Ursprung auf einer Ellipsenbahn umkreisen, wenn die Anfangsbedingungen gleich a sind gebundene Energie oder hyperbolisch, wenn die Anfangsbedingungen einer ungebundenen Energie entsprechen. Die von Ihnen geposteten Skizzen deuten darauf hin, dass Sie sich im ungebundenen Fall befinden. Um also Umlaufbahnen zu sehen, müssen Sie die Größe Ihrer Anfangsgeschwindigkeiten verringern.
Dies gilt natürlich nur, solange Sie einen symplektischen Integrator verwenden (einen, der Energie spart, den Mathematica meiner Meinung nach standardmäßig verwendet). Ein schwacher Integrator wie ein einfacher Euler hätte die Kugelspirale drin, aber das ist nur ein Effekt der schlechten Integration.
Wenn Sie wirklich wollen, dass es spiralförmig eindringt, müssen Sie eine Art viskosen Dämpfungsterm hinzufügen
oder so etwas wie Luftwiderstand, eine Kraft der Form
Außerdem ist nach dem Update klar, dass Sie immer noch mit zu hoher Geschwindigkeit fast direkt auf den Ursprung schießen. Es ist, als würden Sie Gravitationsstreuung modellieren, nicht Umlaufbahnen. Sie variieren Ihre Anfangsgeschwindigkeit , nicht Ihre Anfangsgeschwindigkeit . Um ganz allgemein zu sein, warum setzen Sie nicht
x'[0] == v0 Cos[th]
y'[0] == v0 Sin[th]
Spielen Sie separat mit den Schiebereglern v0
und herum th
, um ein Gefühl dafür zu bekommen, was vor sich geht. Hier th
steuert die Variable die Anfangsrichtung Ihrer Anfangsgeschwindigkeit und v0
die Anfangsgeschwindigkeit.
Was den Wert der Anfangsgeschwindigkeit betrifft, können Sie die Anfangsenergie berücksichtigen, um ein Gefühl für die entsprechende Größe zu bekommen. Bei , du hast
ein großer
Benutzer16069
ein großer
Alemi
ein großer
ein großer
Alemi
ein großer
Jason A