MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Relatively simple, but problematic, non-linear ODE

  • To: mathgroup at
  • Subject: [mg71956] Relatively simple, but problematic, non-linear ODE
  • From: "Alan" <info at>
  • Date: Wed, 6 Dec 2006 06:03:33 -0500 (EST)

I am trying to find positive, non-decreasing solutions y(z)
on the interval (0,z), z > 0 to the ODE:

(y')^2 - rho y y' + (1/4) y^2 = 1,   with y[0] = 0.

where y' = dy/dz,  and the constant parameter |rho| < 1.
There are generally two solutions. The one I want has the
same sign as z.

Here is my code:

FSolver[z_, rho_] :=
  Module[{solnpair, vals, ans},
      solnpair =  y[x] /. NDSolve[{y'[x]^2 - rho y'[x] y[x] + (1/4) y[x]^2 
== 1,
          y[0] == 0}, y[x], {x, 0, z}];
      vals = Re[solnpair /. x -> z];
      ans = Select[vals, (Sign[#] == Sign[z]) &][[1]];

You can see that y[x] = 2 is also a solution to the ODE.
The solution I want apparently switches to y = 2
at some critical value of z. The problem is that this causes Mathematica to 
For example, for rho = 0, the exact solution is y(z) = 2 Sin(z/2)
for |z| < Pi and y(z) = 2 for larger z. I can fix things for rho = 0, since 
am very confident about the answer. But I am less confident about
the solution for rho not equal to zero.

For example, run my fragment with z = 3,  rho = 1/2 to see the problems.
Any suggestions on how to get some reliable output
from NDSolve for this problem will be much appreciated.


  • Prev by Date: Re: Drawing function with 3 variables in a graph
  • Next by Date: RE: Re: Run option
  • Previous by thread: Re: radical equation
  • Next by thread: Re: Relatively simple, but problematic, non-linear ODE