Group Abstract Group Abstract

Message Boards Message Boards

Why does DSolve result in a Solve function?

Posted 14 days ago
POSTED BY: Luther Nayhm
2 Replies
Posted 13 days ago

Thanks for the quick response. Inconvenient!!!! I have often had to resort to graphical solutions to understand what are supposed to be analytic solutions are really describe. The above example for the Kepler equation has been around since Newton's time. My curiosity was why physics texts had to resort to finding the inverse function to solve the problem, and now I know.

Regards,

Luther

POSTED BY: Luther Nayhm

DSolve[] is returning an implicit form of the solution, that is, an unsolved equation that implicitly defines r[t] in terms of t.

You say the ODE is "easily solved by setting r==1/u." If I do that, I get an equally complicated solution with InverseFunction[] instead of an unsolved equation. Whether the solution is expressed as $F(r(t))=g(t)$ or $r(t)=F^{-1}(g(t))$ does not make much difference to me; they are both inconvenient. The equation form is probably easier to deal with. Here's a way to plot an example solution:

impl = DSolve[r''[t] + m/r[t]^2 == h, r[t], t];
example = First[impl] /. (* plug in values for constants *)
  {C[1] -> 0, C[2] -> 0, m -> 1, h -> 1};
ContourPlot[example
 , {t, 0, 12}, {r[t], 0, 100}
 , WorkingPrecision -> 16, FrameLabel -> Automatic]

(WorkingPrecision prevents gaps in the plot due to round-off errors in the imaginary parts of the computation of the curve. They should cancel out, but floating-point round-off errors sometimes result in nonzero imaginary parts.)

POSTED BY: Michael Rogers
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard