e04ucf

e04ucf © Numerical Algorithms Group, 2002.

Purpose

E04UCF Minimum, function of several variables, sequential QP method, nonlinear constraints, using function values and optionally 1st derivatives (comprehensive)

Synopsis

[iter,c,objf,objgrd,x,cjac,istate,clamda,r,ifail] = e04ucf(bl,bu,confun,...
objfun,x<,ncnln,a,cjac,istate,clamda,r,ifail>)

Description

 
 E04UCF is designed to solve the nonlinear programming problem -- 
 the minimization of a smooth nonlinear function subject to a set 
 of constraints on the variables. The problem is assumed to be 
 stated in the following form:
 
                                            { x  }           
        Minimize      F(x)   subject to  l<={A x }<=u,         (1)
                 n                          { L  }           
        x is in R                           {c(x)}           
 
 where F(x), the objective function, is a nonlinear function, A  
                                                               L
 is an n  by n constant matrix, and c(x) is an n  element vector 
        L                                       N               
 of nonlinear constraint functions. (The matrix A  and the vector 
                                                 L               
 c(x) may be empty.) The objective function and the constraint 
 functions are assumed to be smooth, i.e., at least twice-
 continuously differentiable. (The method of E04UCF will usually 
 solve (1) if there are only isolated discontinuities away from 
 the solution.)
 
 Note that upper and lower bounds are specified for all the 
 variables and for all the constraints.
 
 An equality constraint can be specified by setting l =u . If 
                                                     i  i    
 certain bounds are not present, the associated elements of l or u
 can be set to special values that will be treated as -infty or 
 +infty.
 
 The user must supply an initial estimate of the solution to (1), 
 together with subroutines that define F(x), c(x) and as many 
 first partial derivatives as possible; unspecified derivatives 
 are approximated by finite differences.
 
 The objective function is defined by subroutine OBJFUN, and the 
 nonlinear constraints are defined by subroutine CONFUN. On every 
 call, these subroutines must return appropriate values of the 
 objective and nonlinear constraints. The user should also provide
 the available partial derivatives. 
 
 E04UCF implements a sequential quadratic programming (SQP) 
 method. 

Parameters

e04ucf

Required Input Arguments:

bl (:)                                real
bu (:)                                real
confun                                function (User-Supplied)
objfun                                function (User-Supplied)
x (:)                                 real

Optional Input Arguments:                       <Default>

ncnln                                 integer  e04ucf03(cjac)
a (:,:)                               real     zeros(1,1)
cjac (:,:)                            real     zeros(max(1,ncnln),length(x))
istate (:)                            integer  zeros(length(bl),1)
clamda (:)                            real     zeros(length(bl),1)
r (:,:)                               real     zeros(length(x))
ifail                                 integer  -1

Output Arguments:

iter                                  integer
c (max(ncnln,1))                      real
objf                                  real
objgrd (:)                            real
x (:)                                 real
cjac (:,:)                            real
istate (:)                            integer
clamda (:)                            real
r (:,:)                               real
ifail                                 integer