TaoSetObjectiveAndGradient#

Sets a combined objective function and gradient evaluation routine for the function to be optimized

Synopsis#

#include "petsctao.h" 
PetscErrorCode TaoSetObjectiveAndGradient(Tao tao, Vec g, PetscErrorCode (*func)(Tao tao, Vec x, PetscReal *f, Vec g, void *ctx), void *ctx)

Logically Collective

Input Parameters#

  • tao - the Tao context

  • g - [optional] the vector to internally hold the gradient computation

  • func - the gradient function

  • ctx - [optional] user-defined context for private data for the gradient evaluation routine (may be NULL)

Calling sequence of func#

  • tao - the optimization object

  • x - input vector

  • f - objective value (output)

  • g - gradient value (output)

  • ctx - [optional] user-defined function context

Note#

For some optimization methods using a combined function can be more eifficient.

See Also#

TAO: Optimization Solvers, Tao, TaoSolve(), TaoSetObjective(), TaoSetHessian(), TaoSetGradient(), TaoGetObjectiveAndGradient()

Level#

beginner

Location#

src/tao/interface/taosolver_fg.c

Examples#

src/tao/unconstrained/tutorials/rosenbrock1.c
src/tao/tutorials/ex3.c
src/tao/unconstrained/tutorials/rosenbrock1f.F90
src/tao/unconstrained/tutorials/burgers_spectral.c
src/tao/constrained/tutorials/tomographyADMM.c
src/tao/constrained/tutorials/ex1.c
src/tao/unconstrained/tutorials/eptorsion2f.F90
src/tao/constrained/tutorials/maros.c
src/tao/unconstrained/tutorials/eptorsion2.c
src/tao/unconstrained/tutorials/eptorsion3.c


Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages