next up previous 196
Next: PDA_LSQR - Solves sparse unsymmetric, linear least squares and damped least squares problems
Up: User-callable routines
Previous: PDA_LMDIF - Minimise the sum of the squares of m nonlinear functions in n variables, function only.


PDA_LMDIF1 - Minimise the sum of the squares of m nonlinear functions in n variables, simple interface to PDA_LMDIF.

Origin
MINPACK / NETLIB

      subroutine pda_lmdif1(fcn,m,n,x,fvec,tol,info,iwa,wa,lwa)


     **********

     subroutine pda_lmdif1

     the purpose of pda_lmdif1 is to minimize the sum of the squares of
     m nonlinear functions in n variables by a modification of the
     levenberg-marquardt algorithm. this is done by using the more
     general least-squares solver pda_lmdif. the user must provide a
     subroutine which calculates the functions. the jacobian is
     then calculated by a forward-difference approximation.

     the subroutine statement is

       subroutine pda_lmdif1(fcn,m,n,x,fvec,tol,info,iwa,wa,lwa)

     where

       fcn is the name of the user-supplied subroutine which
         calculates the functions. fcn must be declared
         in an external statement in the user calling
         program, and should be written as follows.

         subroutine fcn(m,n,x,fvec,iflag)
         integer m,n,iflag
         double precision x(n),fvec(m)
         ----------
         calculate the functions at x and
         return this vector in fvec.
         ----------
         return
         end

         the value of iflag should not be changed by fcn unless
         the user wants to terminate execution of pda_lmdif1.
         in this case set iflag to a negative integer.

       m is a positive integer input variable set to the number
         of functions.

       n is a positive integer input variable set to the number
         of variables. n must not exceed m.

       x is an array of length n. on input x must contain
         an initial estimate of the solution vector. on output x
         contains the final estimate of the solution vector.

       fvec is an output array of length m which contains
         the functions evaluated at the output x.

       tol is a nonnegative input variable. termination occurs
         when the algorithm estimates either that the relative
         error in the sum of squares is at most tol or that
         the relative error between x and the solution is at
         most tol.

       info is an integer output variable. if the user has
         terminated execution, info is set to the (negative)
         value of iflag. see description of fcn. otherwise,
         info is set as follows.

         info = 0  improper input parameters.

         info = 1  algorithm estimates that the relative error
                   in the sum of squares is at most tol.

         info = 2  algorithm estimates that the relative error
                   between x and the solution is at most tol.

         info = 3  conditions for info = 1 and info = 2 both hold.

         info = 4  fvec is orthogonal to the columns of the
                   jacobian to machine precision.

         info = 5  number of calls to fcn has reached or
                   exceeded 200*(n+1).

         info = 6  tol is too small. no further reduction in
                   the sum of squares is possible.

         info = 7  tol is too small. no further improvement in
                   the approximate solution x is possible.

       iwa is an integer work array of length n.

       wa is a work array of length lwa.

       lwa is a positive integer input variable not less than
         m*n+5*n+m.

     subprograms called

       user-supplied ...... fcn

       minpack-supplied ... pda_lmdif

     argonne national laboratory. minpack project. march 1980.
     burton s. garbow, kenneth e. hillstrom, jorge j. more

     **********



next up previous 196
Next: PDA_LSQR - Solves sparse unsymmetric, linear least squares and damped least squares problems
Up: User-callable routines
Previous: PDA_LMDIF - Minimise the sum of the squares of m nonlinear functions in n variables, function only.

PDA [1ex
Starlink User Note 194
H. Meyerdierks, D. Berry, P. W. Draper, G. Privett, M. Currie
12th October 2005
E-mail:starlink@jiscmail.ac.uk

Copyright © 2013 Science and Technology Facilities Council