Algorithms and Software

Here is some of the software developed in my research and that of my students has been distributed publicly. The usual caveats apply - use at your own risk and expect that there may be difficulties in making the software work properly on your system. You have an obligation to acknowledge use of the software in your research. 

DsTool

DsTool is a computer program for the interactive investigation of dynamical systems on computers using unix or linux and the X window system. The aims of the program are described in an article entitled dstool: Computer Assisted Exploration of Dynamical Systems (Notices of the American Mathemtical Society, 39, 303--309, 1992). Originally written at Cornell by Mark Myers, Rick Wicklin and Patrick Worfolk, it was improved and modified by contributions from Allen Back and the staff of the former Geometry Center at the University of Minneapolis. Three versions of the program were written: Versions 1, Version 2 and Version tk. Versions 1 and 2 used the xview toolkit for the user interface which has fallen into disuse.  Version tk has a tcl/tk interface. Download dstool_tk and its user manual here. There has been little development of the programs since 1997.  Instead, recent efforts of Rob Clewley, Erik Sherwood and Drew Lamar have been directed at the development of PyDSTool PyDSTool Wiki, a python program that incorporates the functionality of DsTool and much more. Comments about the program or contributions to either program can be sent to John Guckenheimer at jmg16@cornell.edu.

Periodic Orbit Solver with Matlab and ADOLC

This software implements a multiple shooting algorithm for computing periodic orbits that uses automatic differentiation. The method achieves accuracy comparable to the floating point round-off of IEEE-754 double precision arithmetic.  The algorithm utilizes three strategies that contribute to its accuracy: The method has additional attractive geometric features from both theoretical and geometric perspectives. It utilizes directly the geometric objects that are prominent in the theory. These objects can be readily examined and manipulated, and they can be used adaptively to enable the algorithms to respond to changes in the geometry of a periodic orbit during continuation. The algorithm gives dense output, accurate representations of approximate periodic orbits at all points rather than just at mesh points of a discretization.  Constraints are readily imposed upon mesh points, enabling the accurate computation of periodic orbits of piecewise analytic vector fields and hybrid systems. A detailed account of the mathematics underlying the algorithms is available in the paper  Computing Periodic Orbits and their Bifurcations with Automatic Differentiation. The algorithm has been implemented in MATLAB, using a modified version of the automatic differenentiation code ADOLC as an engine for computing derivatives. The file Canard_demo.tar.gz is a gzipped tar file of the computer codes. These programs require MATLAB and a C++ compiler. Won Gyu Choe and Brian Meloon contributed to this work. The figure below shows a family of periodic orbits computed with this algorithm as a parameter is varied. Mesh points are marked by "x". This system has slow and fast time scales, and the family of periodic orbits contains canards, segments that follow the unstable portion of the slow manifold. The instability of trajectories along the unstable branch of the slow manifold is so severe that round-off errors in initial values are large enough to prevent the trajectories from tracking the manifold for more than a short distance approximately 0.1.





 

 Odetools

Numerical integration algorithms in MATLAB can be made to operate many times faster than the ode commands that are part of MATLAB. Odetools is set of programs developed by Ricardo Oliva and Erik Sherwood that use the matlab mex interface and matlab objects to provide a fast interface for numerical integration of differential equations. The numerical integration routines that are incorporated into the package are the dopri45 and radau codes from the suite of programs written and distributed by Hairer and Wanner.