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/eptorsion2.c
src/tao/unconstrained/tutorials/minsurf1.c
src/tao/unconstrained/tutorials/rosenbrock1.c
src/tao/unconstrained/tutorials/minsurf2.c
src/tao/unconstrained/tutorials/rosenbrock2.c
src/tao/unconstrained/tutorials/rosenbrock3.c
src/tao/unconstrained/tutorials/burgers_spectral.c
src/tao/unconstrained/tutorials/spectraladjointassimilation.c
src/tao/bound/tutorials/plate2.c
src/tao/bound/tutorials/jbearing2.c


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