Prob with NDSolve in Mathematica

  • Mathematica
  • Thread starter Barnak
  • Start date
  • #1
63
0
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 ?
 

Answers and Replies

  • #2
kai_sikorski
Gold Member
162
0
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?
 
  • #3
63
0
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.
 
  • #4
phyzguy
Science Advisor
4,620
1,573
Try using Sow and Reap inside the NDSolve, and only Sow when the answer meets your criterion, as in the attached notebook.
 

Attachments

  • #5
63
0
https://www.youtube.com/watch?v=
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 ! :smile:

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.
 
  • #6
kai_sikorski
Gold Member
162
0
I don't see how that's different than what I suggested.. but glad it worked for you
 
  • #7
63
0
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 Threads on Prob with NDSolve in Mathematica

Replies
3
Views
4K
Replies
5
Views
3K
  • Last Post
Replies
3
Views
2K
Replies
4
Views
4K
Replies
8
Views
4K
  • Last Post
Replies
1
Views
7K
Replies
3
Views
1K
Replies
2
Views
2K
Replies
0
Views
2K
Top