## Prob with NDSolve in Mathematica

How can I show the regular part of the solution of a differential equation, numerically solved with NDSolve, if there's a singularity on the curve ?

I know how to use NDSolve and show its solution, but Mathematica gives a bad curve after some point (singularity jumping). I don't want to show this part, just the regular curve BEFORE the singularity (which is occuring at t = %\$&*).

More precisely, the curve function should be strictly positive : a[t] > 0. The NDSolve should stop the resolution if a <= 0. I added the command StoppingTest -> (a[t] < 0.001) or StoppingTest -> (a[t] <= 0) but it doesn't work. I'm still getting wrong curve parts with a[t] < 0.

Any idea ?
 PhysOrg.com science news on PhysOrg.com >> New language discovery reveals linguistic insights>> US official: Solar plane to help ground energy use (Update)>> Four microphones, computer algorithm enough to produce 3-D model of simple, convex room
 Recognitions: Gold Member Why don't you just solve over the interval you're solving over now, but only plot it over the interval where it's positive?
 Duh ! Because I don't know in advance what are the singularities ! There are two singularities on the curve, and I need to plot the regular part between them. There's no way I can know in advance the exact values of the singularities.

## Prob with NDSolve in Mathematica

Try using Sow and Reap inside the NDSolve, and only Sow when the answer meets your criterion, as in the attached notebook.
Attached Files
 Sow_Reap_Interpolating_Function.nb (27.0 KB, 3 views)

 Quote by phyzguy Try using Sow and Reap inside the NDSolve, and only Sow when the answer meets your criterion, as in the attached notebook.
Very good trick ! Thanks a lot for that info !

However, I found the right solution to my problem : I just have to define the x values at which the curve y[x] blows away, like this :

Code:
Xmin := (y /. Curve)[[1]][[1]][[1]][[1]]
Xmax := (y /. Curve)[[1]][[1]][[1]][[2]]
Then, I plot the curve between these two values.
 Recognitions: Gold Member I don't see how that's different than what I suggested.. but glad it worked for you

 Quote by kai_sikorski I don't see how that's different than what I suggested.. but glad it worked for you
Actually, it's exactly what you suggested. I just wasn't able to see how to implement it at first.

 Similar discussions for: Prob with NDSolve in Mathematica Thread Forum Replies Math & Science Software 5 Differential Equations 6 Differential Equations 2 Math & Science Software 1 Math & Science Software 0