2011-09-30 8 views
7

EDIT:Non è possibile risolvere il problema di due corpi con Mathematica?

@auxsvr è corretto che ho avuto le equazioni di forza sbagliata, e circa l'esponente -3/2.

Un altro modo di vedere questo semplicemente a 2 dimensioni e consideriamo una forza che agisce dall'origine, proporzionale a 1/r^2 proprio come la gravità, dove r è la distanza dall'origine.

In (x, y), la forza agisce nella direzione (-x, -y). Tuttavia, questo è solo la direzione, non la grandezza. Se usiamo k come costante di proporzionalità , la forza è (-kx, -ky).

La grandezza della forza è quindi Sqrt [(- kx)^2 + (- ky)^2] o k * Sqrt [x^2 + y^2] o k * Sqrt [r^2] o k * r

Poiché l'intensità della forza è anche 1/r^2, questo ci dà k = 1/r^3.

La forza è quindi (-x/r^3, -y/r^3).

Poiché inizialmente utilizzavo r^2 come quantità principale, è (r^2)^(- 3/2), da cui proviene il 3/2.

Ciò invalida efficacemente la mia domanda, sebbene faccia ancora un'interessante discussione teorica su .

Ho ritentato questa Mathematica con le equazioni corrette, ma ho ancora nessuna risposta. Come altri punti, il risultato è solo un'ellisse sotto alcune condizioni (potrebbe essere una parabola o un'iperbole in altri casi).

Inoltre, sebbene l'orbita finale sia una sezione conica, l'orbita iniziale può entrare o uscire a spirale fino a raggiungere l'orbita della sezione conica finale .

EDIT finisce qui

sto utilizzando Mathematica per risolvere il problema dei due corpi:

DSolve[{ 
    d2[t] == (x1[t]-x0[t])^2 + (y1[t]-y0[t])^2 + (z1[t]-z0[t])^2, 
    D[x0[t], t,t] == (x1[t]-x0[t])/d2[t], 
    D[y0[t], t,t] == (y1[t]-y0[t])/d2[t], 
    D[z0[t], t,t] == (z1[t]-z0[t])/d2[t], 
    D[x1[t], t,t] == -(x1[t]-x0[t])/d2[t], 
    D[y1[t], t,t] == -(y1[t]-y0[t])/d2[t], 
    D[z1[t], t,t] == -(z1[t]-z0[t])/d2[t] 
    }, 
    {x0,y0,z0,x1,y1,x1,d2}, 
    t 
] 

Ma torno:

Ci sono meno variabili dipendenti di equazioni, quindi il sistema è sovradeterminato.

Conteggio 7 equazioni e 7 variabili dipendenti?

In realtà, il sistema è semi-indeterminato, dal momento che non fornisco posizioni e velocità al tempo 0.

Mi rendo conto che le mie equazioni si potrebbe essere sbagliato per il problema dei due corpi, ma mi piacerebbe Mi piace ancora sapere perché Mathematica si lamenta di questo.

+7

Hai x1 elencato come variabile due volte e z1 non del tutto, quindi il messaggio. Ma correggere ciò non è sufficiente per far sì che DSolve dia un risultato, ma rimuoverà solo il messaggio di errore. –

+0

Grazie! Hai ragione in entrambi i casi. Mathematica può risolvere il problema dei 2 corpi? – barrycarter

+0

Nelle corde cartesiane? –

risposta

18

Che ne dici di NDSolve?

d2[t_] = (-x0[t] + x1[t])^2 + (-y0[t] + y1[t])^2 + (-z0[t] + 
    z1[t])^2; sol = {x0, y0, z0, x1, y1, z1} /. 
    NDSolve[{x0''[t] == (-x0[t] + x1[t])/d2[t], 
    y0''[t] == (-y0[t] + y1[t])/d2[t], 
    z0''[t] == (-z0[t] + z1[t])/d2[t], x1''[t] == -x0''[t], 
    y1''[t] == -y0''[t], z1''[t] == -z0''[t], x0[0] == 0, y0[0] == 0, 
     z0[0] == 0, x1[0] == 1, y1[0] == 0, z1[0] == 0, x0'[0] == -0.5, 
    y0'[0] == 1, z0'[0] == 0.5, x1'[0] == 0.5, y1'[0] == -1, 
    z1'[0] == -0.5}, {x0, y0, z0, x1, y1, z1}, {t, 0, 120}][[1]] 

r = 3; 
Animate[ 
    Graphics3D[ 
    { 
    PointSize -> 0.05, 
    Point[{sol[[1]][t], sol[[2]][t], sol[[3]][t]}], 
    Point[{sol[[4]][t], sol[[5]][t], sol[[6]][t]}], 
    Red, 
    Line[Table[{sol[[1]][t1], sol[[2]][t1], sol[[3]][t1]}, {t1, 0, t, 0.1}]], 
    Green, 
    Line[Table[{sol[[4]][t1], sol[[5]][t1], sol[[6]][t1]}, {t1, 0, t, 0.1}]] 
    }, 
    PlotRange -> {{-r, r}, {-r, r}, {-r, r}} 
    ], {t, 0, 120}, AnimationRate -> 4 
] 

enter image description here

+0

In questo caso è possibile utilizzare PlotRange-> r per lo stesso effetto ... –

+9

Nessuna materia oscura, nessun premio Nobel –

6

sto sorpreso che nessun altro ha notato che tutti ha scritto le equazioni del moto in modo non corretto, che è evidente dal grafico, perché le orbite limitati nel potenziale gravitazionale di due corpi sono sempre chiuse (Il teorema di Bertrand). Le corrette equazioni del moto sono

{x0''[t] == (-x0[t] + x1[t])/d2[t]^(3/2), 
y0''[t] == (-y0[t] + y1[t])/d2[t]^(3/2), 
x1''[t] == -x0''[t], 
y1''[t] == -y0''[t]} 

con

d2[t_]:= (x1[t]-x0[t])^2 + (y1[t]-y0[t])^2 

poiché il moto è planare per campi di forza centrali. Inoltre, è necessario impostare le condizioni iniziali in modo appropriato, altrimenti il ​​centro di massa si sposta e le orbite non sono più sezioni coniche.

Problemi correlati