# Prob with NDSolve in Mathematica

by Barnak
Tags: mathematica, ndsolve, prob
 P: 60 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 ?
 PF Patron P: 162 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?
 P: 60 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.
P: 1,957

## 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, 4 views)
P: 60
 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 :

Xmin := (y /. Curve)[[1]][[1]][[1]][[1]]
Xmax := (y /. Curve)[[1]][[1]][[1]][[2]]
Then, I plot the curve between these two values.
 PF Patron P: 162 I don't see how that's different than what I suggested.. but glad it worked for you
P: 60
 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.

 Related Discussions Math & Science Software 5 Differential Equations 6 Differential Equations 2 Math & Science Software 1 Math & Science Software 0