# Singularity problem in NDSolve in Mathematica

Posted 10 years ago
16888 Views
|
3 Replies
|
1 Total Likes
|
 Hi,I am trying to solve numerically 13 differential equations with initial boundary conditions in Mathematica. In my case, the boundary conditions are not free parameters and those are constrained from experimental observations. But these set of equations and boundary condition give the error in NDSolve as following,"NDSolve::ndsz: At e == 11.706899882374666, step size is effectively zero; singularity or stiff system suspected. >>"Because of this error, the plots of those 13 variables changes abruptly at "e == 11.706899882374666".I am getting nice curve upto this particular vaue of "e".My question is , How can get a nice curve even after this value without changing the boundary conditions?Thanks in advance.
3 Replies
Sort By:
Posted 10 years ago
 Quasi-linearization can work well for problems like that:http://library.wolfram.com/infocenter/MathSource/8484/
Posted 10 years ago
 Try giving boundary condition at  a slightly higher e value,  say  e = 11.72, and trap all " the poles" , where denominator may be going  to zero.Or may be your solution itself there has a vertical tangent...or returning tendency like the end of ellipse. You should know the qualitative behaviour of the function a priori. An example can be the vertical asymptote expected for y = tan  at x = Pi/2  in:NDSolve[ { y' == 1 + y^2, y[0] == 0}, y, {x, 0, 2}]. HTH.
Posted 10 years ago
 The key is to understand why it is stiff. This often gives the insight needed to fix the problem. Sometimes, for example, it is possible to make the problem more tractable by a change of coordinates. This is often the case when the solution is has a very large derivative for example.Without more information about the structure of the equations though, the best I can suggest is to try different values for the Method option in NDSolve. For example, please see this tutorial on how to use StiffnessSwitching with NDSolve: http://reference.wolfram.com/mathematica/tutorial/NDSolveStiffnessSwitching.html