Welcome to our community

Be a part of something great, join today!

[SOLVED] Mathematica acting strange

dwsmith

Well-known member
Feb 1, 2012
1,673
Can someone identity what the issue here is before I throw my computer out the window.
By the way, this just worked 10mins ago. I restarted Mathematica and my computer but it now insist z isn't an equation.
Code:
ClearAll["Global`*"];
me = 5.974*10^(24);
mm = 7.348*10^(22);
G = 6.67259*10^(-20);
\[Mu] = G*(me + mm);
re = 6378;
rm = 1737;
\[Pi]1 = me/(me + mm);
\[Pi]2 = mm/(me + mm);
x = -4671;
y = -6578;
r12 = r1 = r2 = 384400;
(*r1=Sqrt[(x+\[Pi]2*r12)^2+y^2];
r2=Sqrt[(x-\[Pi]1*r12)^2+y^2];*)
M = me + mm; vi = 8;
\[Nu] = -\[Pi]/2;
e = 1;
vi = 10.8662;

\[Gamma] = ArcTan[e*Sin[\[Nu]]/(1 + e*Cos[\[Nu]])];
vx = vi*(Sin[\[Gamma]]*Cos[\[Nu]] - Cos[\[Gamma]]*Sin[\[Nu]]);
vy = vi*(Sin[\[Gamma]]*Sin[\[Nu]] + Cos[\[Gamma]]*Cos[\[Nu]]);
rx = -4671;
ry = -6578;
rz = 0;

\[CapitalOmega] = Sqrt[\[Mu]/r12^3];
\[Mu]1 = G*me;
\[Mu]2 = G*mm;

r0 = {rx, ry, rz};
v0 = {vx, vy, rz};

s = NDSolve[{x''[t] - 
      2*\[CapitalOmega]*y'[t] - \[CapitalOmega]^2*
       x[t] == -\[Mu]1/r1^3*(x[t] + \[Pi]2*r12) - \[Mu]2/
        r2^3*(x[t] - \[Pi]1*r12),
    y''[t] - 
      2*\[CapitalOmega]*x'[t] - \[CapitalOmega]^2*
       y[t] == -\[Mu]1/r1^3*y[t] - \[Mu]2/r2^3*y[t], 
    z''[t] == -\[Mu]1/r1^3*z[t] - \[Mu]2/r2^3*z[t],
    x[0] == r0[[1]],
    y[0] == r0[[2]],
    z[0] == r0[[3]],
    x'[0] == v0[[1]],
    y'[0] == v0[[2]],
    z'[0] == v0[[3]]},
   {x, y, z}, {t, 0, 1000000}];

NDSolve::deqn: Equation or list of equations expected instead of False in the first argument {0. -7.10426\[CenterDot]10^-12 (-4671)[t]==-8.63204\[CenterDot]10^-14 (-379729.+(-4671)[t])-7.01794\[CenterDot]10^-12 (4670.66 +(-4671)[t]),0. -7.10426\[CenterDot]10^-12 (-6578)[t]==-7.10426\[CenterDot]10^-12 (-6578)[t],<<5>>,False,(z^\[Prime])[0]==0}. >>
 

MarkFL

Administrator
Staff member
Feb 24, 2012
13,775
...before I throw my computer out the window...
Sorry, can't help with the Mathematica issue, but just wanted to say I have considered throwing my computer in my pond before.(Tmi)
 

Ackbach

Indicium Physicus
Staff member
Jan 26, 2012
4,192
You define

x = -4671;
y = -6578;

and then you use both x = x[t] and y = y[t] in NDSolve. That might be tripping you up. Try renaming variables. What might especially confirm this is that the double equals, which is definitely what you need in NDSolve, will yield TRUE or FALSE if the stuff on either side is already defined.

When something works, and then it doesn't work, in Mathematica, that's typically happening because of the order in which cells are evaluated. If these commands are spread out over a bunch of different cells, then the order really matters.
 

dwsmith

Well-known member
Feb 1, 2012
1,673
You define

x = -4671;
y = -6578;

and then you use both x = x[t] and y = y[t] in NDSolve. That might be tripping you up. Try renaming variables. What might especially confirm this is that the double equals, which is definitely what you need in NDSolve, will yield TRUE or FALSE if the stuff on either side is already defined.

When something works, and then it doesn't work, in Mathematica, that's typically happening because of the order in which cells are evaluated. If these commands are spread out over a bunch of different cells, then the order really matters.
The only problem was mathematica. I copied everything over to a new notebook and it worked.
 

Ackbach

Indicium Physicus
Staff member
Jan 26, 2012
4,192
The only problem was mathematica. I copied everything over to a new notebook and it worked.
Yep, that's a good trick, too. Glad it's working for you now.