PITCON66
Continuation Code for Parameterized Nonlinear Equations


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.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

PITCON66 is available in a FORTRAN77 version.

Related Data and Programs:

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.

Reference:

  1. Ivo Babuska, Werner Rheinboldt,
    Reliable Error Estimations and Mesh Adaptation for the Finite Element Method,
    in International Conference on Computational Methods in Nonlinear Mechanics,
    edited by John Oden,
    Elsevier, 1980,
    ISBN: 0444853820,
    LC: QA808.I57.
  2. Richard Brent,
    Algorithms for Minimization without Derivatives,
    Dover, 2002,
    ISBN: 0-486-41998-3,
    LC: QA402.5.B74.
  3. Cor denHeijer, Werner Rheinboldt,
    On Steplength Algorithms for a Class of Continuation Methods,
    SIAM Journal on Numerical Analysis,
    Volume 18, Number 5, October 1981, pages 925-947.
  4. Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
    LINPACK User's Guide,
    SIAM, 1979,
    ISBN13: 978-0-898711-72-1,
    LC: QA214.L56.
  5. Ferdinand Freudenstein, Bernhard Roth,
    Numerical Solutions of Nonlinear Equations,
    Journal of the ACM,
    Volume 10, Number 4, October 1963, pages 550-556.
  6. Herbert Keller,
    Numerical Methods for Two-point Boundary Value Problems,
    Dover, 1992,
    ISBN: 0486669254,
    LC: QA372.K42.
  7. Raman Mehra, William Kessel, James Carroll,
    Global stability and contral analysis of aircraft at high angles of attack,
    Technical Report CR-215-248-1, -2, -3,
    Office of Naval Research, June 1977.
  8. John Oden,
    Finite Elements of Nonlinear Continua,
    Dover, 2006,
    ISBN: 0486449734,
    LC: QA808.2.O33.
  9. Werner Rheinboldt,
    Solution Field of Nonlinear Equations and Continuation Methods,
    SIAM Journal on Numerical Analysis,
    Volume 17, Number 2, April 1980, pages 221-237.
  10. Werner Rheinboldt,
    Numerical Analysis of Continuation Methods for Nonlinear Structural Problems,
    Computers and Structures,
    Volume 13, 1981, pages 103-114.
  11. Werner Rheinboldt, John Burkardt,
    A Locally Parameterized Continuation Process,
    ACM Transactions on Mathematical Software,
    Volume 9, Number 2, June 1983, pages 215-235.
  12. Werner Rheinboldt, John Burkardt,
    Algorithm 596: A Program for a Locally Parameterized Continuation Process,
    ACM Transactions on Mathematical Software,
    Volume 9, Number 2, June 1983, pages 236-241.
  13. Albert Schy, Margery Hannah,
    Prediction of Jump Phenomena in Roll-coupled Maneuvers of Airplanes,
    Journal of Aircraft,
    Volume 14, 1977, pages 375-382.
  14. John Young, Albert Schy, Katherine Johnson,
    Prediction of Jump Phenomena in Aircraft Maneuvers, Including Nonlinear Aerodynamic Effects,
    Journal of Guidance and Control,
    Volume 1, 1978, pages 26-31.

Source Code:

Examples and Tests:

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.

List of Routines:

You can go up one level to the FORTRAN77 source codes.


Last revised on 16 May 2008.