PITCON66 is a FORTRAN77 program which carries out the continuation method for producing a series of solutions of a set of nonlinear equations with one degree of freedom.
The program is designed for problems in which N variables X are constrained by N-1 nonlinear equations F(X)=0. Generally, there is an entire family of solutions to such a problem, which can be thought of as a curve in N-dimensional space. We can imagine this curve parameterized by a variable LAMBDA. Given one solution (X,LAMBDA0), the program attempts to determine more points on the curve of solutions.
PITCON66 is a revision of the continuation code originally published as ACM TOMS algorithm 596. The revisions to the code have corrected a problem that occurred because it was assumed that local variables were automatically saved between calls. Other modifications and improvements have been made.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
PITCON66 is available in a FORTRAN77 version.
CONTINUATION, a MATLAB library which implements the continuation method for a simple 2D problem, which involves finding a point on the unit circle, and then finding a sequence of nearby points which trace out the full curve, using only the information available in the implicit definition of the curve from the function f(x,y)=x^2+y^2-1.
PITCON7, a FORTRAN90 library which seeks to produce a sequence of points that satisfy a set of nonlinear equations with one degree of freedom; this is version 7.0 of ACM TOMS algorithm 596.
TEST_CON, a FORTRAN90 library which implements test problems for numerical continuation.
TOMS502,
a FORTRAN77 library which
seeks to produce a sequence of points that satisfy a set of nonlinear
equations with one degree of freedom;
this library is commonly called DERPAR;
this is ACM TOMS algorithm 502.
TOMS596,
a FORTRAN77 library which
seeks to produce a sequence of points that satisfy a set of nonlinear
equations with one degree of freedom;
this library is commonly called PITCON;
this is ACM TOMS algorithm 596.
PITCON66_PRB1 sets up the Freudenstein Roth function. There are 2 equations, and N = 3 variables. The solution curve has some severe bends.
PITCON66_PRB2 sets up the aircraft stability problem, with N = 8. There are 7 equations in N = 8 variables. This is a mildly nonlinear problem, whose solution curve has some limit points that are difficult to track.
PITCON66_PRB3 sets up a two point boundary value problem with a parameter, LAMBDA, and variable number set to N = 22. (This problem can easily be modified to use larger values of N). This problem has a limit point in the LAMBDA parameter, which we seek. We solve this problem 6 times, illustrating the use of full and banded jacobians, and of user-generated, or forward or central difference approximated jacobian matrices. The program seeks limit points in LAMBDA.
PITCON66_PRB4 sets up the Freudenstein Roth function, with N = 3, and investigates the use of the fixed parameterization option.
PITCON66_PRB5 repeats problem 3, the two point boundary value problem. This time, we do NOT seek the limit point in the LAMBDA parameter, but rather the two target points where LAMBDA=0.8, which occurs twice, before and after LAMBDA "goes around the bend". Here, the interest is in investigating the ability to request a full, modified, or "cheap" Newton iteration.
PITCON66_PRB6 sets up the Freudenstein Roth function, with N = 3, and investigates the use of the options for checking the accuracty of a user-supplied jacobian. This version of the problem demonstrates the jacobian checking option. Two runs are made. Each is allowed only five steps. The first run is with the correct jacobian. The second run uses a defective jacobian, and demonstrates not only the jacobian checker, but also shows that "slightly" bad jacobians can cause the Newton convergence to become linear rather than quadratic.
PITCON66_PRB7 sets up the materially nonlinear rod, with a variety of values of N depending on the user choices for the piecewise polynomial basis and continuity conditions. The program is currently restricted to N=71 variables maximum.
PITCON66_PRB8 sets up the Freudenstein Roth function, with N = 3, and investigates the use of the options for approximating the jacobian using finite differences.
You can go up one level to the FORTRAN77 source codes.