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