Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to solve the following differential equation numerically:

s = NDSolve[{
      (z + 2 r[z] r'[z]) (1 + r'[z]^2) -z r[z] r''[z] == 0, 
      r[0.01] == 0.0001, 
      r'[0.01] == 10
     r, {z, 0.01, 10}

But, when I set the initial condition to $z=0$, there are singularities, so I tried to set it as 0.01. Also, for $r(z=0.01)=0$ there is a singularity, so I set $r(z=0.01)=0.0001$.

However, when I try to solve the equation for any value that I put in the boundary conditions, I'm getting "step size is effectively zero; singularity or stiff system suspected." Is there any method to sort this out?

share|improve this question
The singularity is clear: this equation algebraically implies $r'' = (1+r'^2)\frac{1}{r}$ plus other stuff not involving $r$. Because $1+r'^2\ge 1$ (assuming you want non-Complex solutions), it would be hard for $r$ to approach $0$ while its second derivative is blowing up like $1/r$. This indicates you will have extreme trouble finding any solution for small values of $r$. – whuber Oct 3 '12 at 15:56

This problem seems to be really stiff as whuber has pointed out. Using the BDF method and allowing NDSolve to ruminate about the order, didn't quite change the solution (z value where stiffness was encountered).

NDSolve[{(z + 2 r[z] r'[z]) (1 + r'[z]^2) - z r[z] r''[z] == 0, 
  r[0.01] == 0.0001, r'[0.01] == 10}, r, {z, 0.01, 10}, 
 MaxStepFraction -> 1/101, 
 Method -> {"BDF", "MaxDifferenceOrder" -> 5}]

Try these commands out as pointed out by several authors here and here:

These answers helped me out with issues I had with stiff equations.

You can look around and find heaps more information.

share|improve this answer
Huh, I haven't said anything about these equations. You intended to address whuber? – J. M. Oct 3 '12 at 16:14
@J.M. Yes, I meant whuber... I think I got that wrong. – drN Oct 3 '12 at 20:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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