2011-09-30 2 views
7

편집 :Mathematica를 사용하여 2 체체 문제를 해결할 수 없습니까?

@auxsvr은 잘못된 방정식을 갖고 있으며, -3/2 지수에 관한 것입니다.

이것을 단순히 2 차원으로보고 원점에서 작용하는 힘을 중력과 마찬가지로 1/r^2에 비례하는 에 비유 할 수있는 또 다른 방법은 r은 원점으로부터의 거리입니다.

(x, y)에서 힘은 방향 (-x, -y)으로 작용합니다. 그러나, 그 방향은 단지 크기가 아니라 입니다. 만약 k를 의 비례 상수로 사용하면, 힘은 (-kx, -ky)가됩니다.

따라서 힘의 크기는 Sqrt [(- kx)^2 + (- ky)^2] 또는 k * Sqrt [x^2 + y^2] 또는 k * Sqrt [ 2] 또는 k * r

힘의 크기도 1/r^2이기 때문에 k = 1/r^3이됩니다.

따라서 힘은 (-x/r^3, -y/r^3)입니다.

처음에는 r^2를 기본 수량으로 사용 했으므로 (r^2)^(- 3/2)로 3/2가 나온 것입니다.

이 질문은 실제로 흥미로운 이론 토론을 만들지 만 효과적으로 내 질문을 무효화합니다.

올바른 방정식으로이 Mathematica를 다시 시도했지만 여전히 대답이 없습니다. 대답이 없습니다. 다른 점이 지적한대로 결과는 특정 조건 (다른 경우에는 포물선 또는 쌍곡선 일 수 있음) 아래의 타원입니다.

또한 최종 궤도가 원추 곡선 구간이지만 초기 궤도는 최종 원뿔 곡선 궤도 이 달성 될 때까지 나선형으로 나올 수 있습니다.

편집 내가이 몸의 문제를 해결하기 위해 티카를 사용하고 여기

종료 :

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 
] 

을하지만 내가 돌아올 :

방정식보다 적은 수의 종속 변수가 있습니다, 그래서 시스템은 과다하게 결정됩니다.

나는 7 방정식과 7 개의 종속 변수를 포함합니까? 나는 시간 0 I 자체가 두 신체 문제에 대한 잘못된 수 있습니다 내 방정식을 실현

에서 위치와 속도를 제공하지 않기 때문에

는 사실, 시스템은 반 미정이지만, 나는 좋겠 아직도 Mathematica가 이것을 불평하는 이유를 알고 싶습니다.

+7

x1이 변수로 두 번 나열되고 z1이 전혀 표시되지 않으므로 메시지가 표시됩니다. 그러나 DSolve가 결과를 얻는 데 충분하지 않으면 오류 메시지 만 제거됩니다. –

+0

감사합니다. 두 경우 모두 당신이 옳습니다. Mathematica가 2 몸체 문제를 풀 수 있습니까? – barrycarter

+0

데카르트 코드입니까? –

답변

18

어때 대략 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

이 경우 동일한 효과를 내기 위해 PlotRange-> r을 사용할 수 있습니다 ... –

+9

어두운 물질이없고 노벨상이 없습니다. –

6

나는 아무도 다른 두 물체의 중력에 경계 궤도가 항상 닫혀 있기 때문에 모두가 줄거리에서 명백한 잘못 모션의 방정식을 쓴 눈치 놀랄거야 (Bertrand의 정리). 모션이 중심력 필드의 평면이기 때문에 움직임의 정확한 방정식

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

으로

{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]} 

이다. 또한 초기 조건을 적절하게 설정해야합니다. 그렇지 않으면 질량 중심이 움직이며 궤도는 더 이상 원추형 단면이 아닙니다.

관련 문제