From: spellucci@mathematik.tu-darmstadt.de (Peter Spellucci) Subject: Re: Numerical ODE integration when soluton is not unique Date: 24 Jul 2001 11:02:20 GMT Newsgroups: sci.math.num-analysis Summary: Numerical solutions of differential equations near singularities In article , drbotkin@yahoo.com (V. Botkin) writes: |> Hello: |> |> I have to solve an IVP for a nonlinear ODE |> |> dx/dt = F(x), x(t_0) = x_0 |> |> close to the point t_1 where the solution is not unique: |> |> x = 0 is the trivial solution everywhere, there is a solution for t >= |> t_1, x(t_1) = 0 and there is no solution for t < t_1. So for t_1 the |> solution I am interested in joins the trivial solution. |> |> ODE integrators stumble when they come very close to t_1 (step becomes |> too small etc.) |> |> I would appreciate if somebody could point me to existing techniques |> on how to best formulate problem for a numerical integrator to deal |> with such nonuniqueness. |> |> Thank you. |> |> - V. Botkin from your description I assume that for t: >I'm looking for a (free) software to carry out bifurcation analysis of >systems of ODEs. I've heard about the AUTO package of Doedel. Where >could I find it ? Where could I find something else ? I assume you are interested in local bifurcations and you are looking for programs running under Unix. I've used two different programs: LocLbf (as a part of DsTool) and Candys/QA. LocLbf is available by ftp from macomb.cam.cornell.edu in the directory pub/dstool, the documentation for the LocLbf part is in pub/khibnik. You can find information about Candys/QA and Candys/QA itself at http://www.agnld.uni-potsdam.de/~wolfgang/ca-ov.html. LocLbf is written in Fortran, the comments in the source code are mostly in Russian and it's rather a bit difficult to compile. The algorithmens are able to detect quite a number of different types of bifurcations. The program is integrated in DsTool, a graphical tool for investigating dynamical systems (there is a stand-alone DOS version). Problem: DsTools needs Xview which is (at least in the default operation system distribution) only available for SunOs and Linux. If you want to follow branches starting from bifurcation points etc. you have to it "manually" by selecting a suitable data point among the points calculated so far. You can generate a postscript file from the calculated data. During my studies, I had to deal with dynamical systems with up dimension 80. The algorithmens of LocLbf are not able to deal with this. I had to change, vamong others, the bifurcation functions just to get part of it working. As all derivates are calculated numerically, even if an analytical calculation would be possible, it is very slow - at least for high dimensional systems. These drawbacks might be uninteresting if you just want to examine systems of "normal" size. Most of my work has been with Candys/QA. It is a stand-alone program without graphical functions. The program can write the calculated data as a file which may be directly fed to gnuplot or AVS. All "common" bifurcations are detected. The calculated equlibrium points are written to a file and only the information concerning bifurcation points is kept in memory - this way you may calculate lots of data without having to worry about the workstation's main memory. Compilation is easy - it will compile right out of the box on most systems (on the other there are just a few collisions between names in /usr/include/*.h and the source code - easy to change). The are no comments in the source code (in C), but the identifier names are quite long. During the calculation a graph of all bifurcation points and the branches connecting them is generated. This way, you can leave the program unattended while a completed bifurcation graph is calculated. I don't have personal experience with AUTO, but I discussed the matter with a former member of our university who has: According to him, AUTO sometimes has problems recognising which branches it already has "visited". So the same branch might get calculed again and again. This can't happen with Candys/QA. The algorithmens in Candys/QA are able to deal with high dimensional systems (except for the eigenvalue routine - I had to replace that one) and are much faster than LocLbf's. Almost no user intervention is needed once the initial parameters are set. ============================================================================== From: Alois Steindl Subject: Re: Numerical ODE integration when soluton is not unique Date: 24 Jul 2001 14:14:10 +0200 Newsgroups: sci.math.num-analysis drbotkin@yahoo.com (V. Botkin) writes: > Hello: > > I have to solve an IVP for a nonlinear ODE > > dx/dt = F(x), x(t_0) = x_0 > > close to the point t_1 where the solution is not unique: > > x = 0 is the trivial solution everywhere, there is a solution for t >= > t_1, x(t_1) = 0 and there is no solution for t < t_1. So for t_1 the > solution I am interested in joins the trivial solution. > There is a chapter on singular differential equations and methods to treat these analytically in the book "Geometrical methods in the theory of ordinary differential equations" by V.I.Arnol'd (maybe my translation from german to english is not correct). The main idea is to use a different set of coordinates, e.g. p=x' and x, instead of x and t. I guess you will need some preparations "by hand". Do you have any idea how singular the equation is? The typical example in introductory lectures is the ODE x'=sign(x), which has the solutions x=0, and x=\pm (t-t0) for arbitrary t0. Your example seems to be related to some equation of the form F(x, t).x = 0. If you could reformulate somehow to an equation for F(x, t), you might be able to decrease the singularity. > ODE integrators stumble when they come very close to t_1 (step becomes > too small etc.) > ODE integrators usually assume a smooth solution. Maybe you could try an implicit integrator (like ddassl from netlib), but I also expect problems if you don't rewrite your equations, since these integrators don't reverse the time. Hope it helps Alois