0
$\begingroup$

Evaluating with DSolve has taken ~50 minutes to complete when given this ODE:

DSolve[y''[t] == Sqrt[1 + y[t]^2], y[t], t]

{}

DSolve::bvimp: General solution contains implicit solutions. In the boundary value problem, these solutions will be ignored, so some of the solutions will be lost.

I am not sure if it is a problem with my input.

The computation takes even longer with boundary values.

DSolve[{y''[t] == Sqrt[1+y[t]^2, y[0] == 0}, y[t], t]

The output fro this is the same as shown above.

Is there a problem with the way I am expressing the problem?

$\endgroup$

3 Answers 3

1
$\begingroup$

In version 11.2 I obtain

DSolve[y''[t] == Sqrt[1 + y[t]^2], y[t], t]

$$ \text{Solve}\left[\left(\int_1^{y(t)} \frac{1}{\sqrt{K[1] \sqrt{K[1]^2+1}+\sinh ^{-1}(K[1])+c_1}} \, dK[1]\right){}^2=\left(c_2+t\right){}^2,y(t)\right] $$

in moderate time. Maple performs a similar result.

$\endgroup$
2
  • $\begingroup$ I have received the same without boundary values in 11.2. Out of curiosity, have you tried the problem with the initial condition y[0] == 0? $\endgroup$
    – Popoman218
    Jan 17, 2018 at 20:24
  • $\begingroup$ @Popoman218 : DSolve::bvimp: General solution contains implicit solutions. In the boundary value problem, these solutions will be ignored, so some of the solutions will be lost. $\endgroup$
    – user64494
    Jan 17, 2018 at 21:05
2
$\begingroup$
DSolve[y''[t] == Sqrt[1 + y'[t]^2], y[t], t]
(*{y[t] -> C[2] + Cosh[t] Cosh[C[1]] + Sinh[t] Sinh[C[1]]} *)

evaluates the solution quite fast!

Using the correct ode y''[t] == Sqrt[1 + y[t]^2] the substitution y'[t]->z[ y[t]] separation of variables gives the equation

z[y] z'[y] == Sqrt[1 + y^2]

which can be solved

DSolve[z[y] z'[y] == Sqrt[1 + y^2], z, y]
(* {
{z -> Function[{y}, -Sqrt[y Sqrt[1 + y^2] + ArcSinh[y] + 2 C[1]]]}, 
{z ->Function[{y}, Sqrt[y Sqrt[1 + y^2] + ArcSinh[y] + 2 C[1]]]}}
*)

The antiderivative function of z is the solution y[t]!

$\endgroup$
5
  • $\begingroup$ Sorry, what is the MMA code? $\endgroup$
    – Popoman218
    Jan 17, 2018 at 20:13
  • $\begingroup$ Also, the Sqrt[1 + y'[t]^2] should just be Sqrt[1 + y[t]^2]. The long computation time still exists. $\endgroup$
    – Popoman218
    Jan 17, 2018 at 20:16
  • 1
    $\begingroup$ That's some pretty quick downvoting. I usually let folks have a chance to correct a mistake first. (And in the rare case I downvote, they can reply to my comment when they've addressed the problem; or explain why I'm all wrong.) $\endgroup$
    – Michael E2
    Jan 17, 2018 at 20:56
  • $\begingroup$ Looks like with one more step (solving for y in terms of t), you'll get the result @user64494 got, but without both sides being squared. $\endgroup$
    – Michael E2
    Jan 17, 2018 at 20:58
  • $\begingroup$ @ Michael E2: Thanks for your comment concerning the pretty quick feedback... $\endgroup$ Jan 17, 2018 at 21:07
1
$\begingroup$

From Why Can't `DSolve` Find a Solution for this ODE?, which might be considered a duplicate:

ClearAll[withTimedIntegrate];
SetAttributes[withTimedIntegrate, HoldFirst];
withTimedIntegrate[code_, tc_] := 
  Module[{$in}, 
   Internal`InheritedBlock[{Integrate}, Unprotect[Integrate];
    i : Integrate[___] /; ! TrueQ[$in] := 
     Block[{$in = True}, TimeConstrained[i, tc, Inactivate[i, Integrate]]];
    Protect[Integrate];
    code]];

withTimedIntegrate[DSolve[y''[t] == Sqrt[1 + y[t]^2], y[t], t], 1]

(*
Solve[
 Inactive[Integrate][1/Sqrt[ArcSinh[K[1]] + C[1] + K[1] Sqrt[1 + K[1]^2]],
  {K[1], 1, y[t]}]^2 == (t + C[2])^2,
 y[t]]
*)
$\endgroup$
1

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.