I’m trying to solve a really simple problem of finding object position under force {k1+k2 * y, k3*t}. Here’s what I’m entering into Mathematica 7:
DSolve{
x''t*m == k1 + k2*yt,
y''t*m == k3*t,
y'0 == 0,
y0 == 0,
x'0 == 0,
x0 == 0
}, {xt, yt}, t
and I get this error:
DSolve::deqn: Equation or list of equations expected instead of True in the first argument {-C m (x^Prime)t^2==k1+k2 yt,m (y^PrimePrime)t==k3 t,True,y0==0,True,x0==0}.
It seems that Mathematica is unhappy about boundary conditions x’0 == 0. Why is that?
,
It worked as you typed it … try to do it in a fresh notebook
,
When I cut and paste the code you’ve posted into M’ma 7.0.1 and evaluate, I get the result
{{xt -> (60*k1*m*t^2 + k2*k3*t^5)/(120*m^2), yt -> (k3*t^3)/(6*m)}}
Your M’ma error message tells me you actually have only one prime on x (i.e. x't
) in your actual M’ma input. The equation it cites, -C m (x^Prime)t^2==k1+k2 yt
, does not match the first line of your code above.
I also suspect that x’0 and y’0 have been assigned to zero previously, which is causing x'0==0, ..., y'0==0
to both collapse to True
. Best way to test: kill your kernel and re-evaluate the input above (after fixing typos).
,
Both, belisarius and Eric Towers have suggested killing the kernel and re-evaluating. They’re most likely correct in that something has a prior definition. You can check if that is true via
?<variable name>
As an alternative to killing the kernel, I’d suggest clearing their values via
Clearx, y, k1, k2, k3, m
Or, if you really want to rid yourself of any definition of a variable there’s Remove
. This way, you won’t have to recalculate anything else from your current session.