Can DSolve give results in parametric form?

For example the cycloid equation is:

DSolve[{(x'[t])^2 == r/x[t] - 1}, x[t], t]

And the solution is usually given in parametric form:

$$x=r \,(t- Sin[t]) \quad y=r\,(1- Cos[t])$$

but Mathematica (10) give a resolt in terms of InverseFunction

So I wonder can DSolve give result in parametric form?

  • $\begingroup$ Are you sure that's the cycloid equation? I've never seen it in that form. $\endgroup$ Aug 15, 2017 at 15:19
  • 2
    $\begingroup$ Also, your parametric solution should be $x = r(t - \sin t)$ or something similar; right now your parametric solution is just a circle. $\endgroup$ Aug 15, 2017 at 15:19
  • $\begingroup$ @MichaelSeifert You are right I corrected and added a link to wikipedia: en.wikipedia.org/wiki/Cycloid $\endgroup$
    – mattiav27
    Aug 15, 2017 at 15:23
  • $\begingroup$ I don't believe DSolve[] is capable of parametric solutions yet. Here's another simple example (the equiangular spiral): DSolve[{y'[x] == (x + y[x])/(x - y[x]), y[1] == 0}, y, x]. $\endgroup$ Aug 15, 2017 at 15:23

1 Answer 1


This is more an extended comment as a solution. For convenience, begin from the ODE in the form given in the Wikipedia reference cited in the question.

y'[x]^2 == 2 r/y[x] - 1

The OP wishes DSolve to provide the parametric answer,

{y[t] -> r - r Cos[t], x[t] -> r (t - Sin[t])}

However, this result is not unique. For instance, replacing t by a t, where a is any real constant, also is a valid parametric solution. And, there are infinitely more equivalent parametric solutions. Obtaining the desired solution requires specifying an additional relationship.

Here is a simple illustration. Rewrite the ODE in terms of a parameter t.

y'[t]^2 == x'[t]^2 (2 r/y[t] - 1)

This ODE cannot, of course, be solved without a second relationship among x, y, and t. For instance, specify

x'[t] == y[t]

(Other second equations are possible but yield different parametric representations.) Now solve the set of ODEs, impose the boundary conditions that x and y vanish at t == 0, and simplify

FullSimplify[First@DSolve[{y'[t]^2 == x'[t]^2 (2 r/y[t] - 1), x'[t] == y[t], 
    x[0] == 0}, {x[t], y[t]}, t] /. C[1] -> 0]

(* {y[t] -> r - r Cos[t], x[t] -> r (t - Sin[t])} *)

as desired. This example is meant to show that DSolve is capable with assistance of producing parametric solutions. It is not, however, capable of producing any particular parametric solution that someone might desire without very particular assistance.

  • 1
    $\begingroup$ As noted, a lot of manual intervention (and clever choices) is still necessary, since there are multiple ways to parametrize a curve. The functions here should be helpful in converting the original DE to a corresponding parametric form. $\endgroup$ Aug 16, 2017 at 0:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.