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, Vec, PetscReal *, Vec, void *), 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#

func (Tao tao, Vec x, PetscReal *f, Vec g, void *ctx);
  • 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, TaoSolve(), TaoSetObjective(), TaoSetHessian(), TaoSetGradient(), TaoGetObjectiveAndGradient()

Level#

beginner

Location#

src/tao/interface/taosolver_fg.c

Examples#

src/ts/tutorials/ex20opt_ic.c.html
src/ts/tutorials/ex20opt_p.c.html
src/tao/unconstrained/tutorials/burgers_spectral.c.html
src/tao/unconstrained/tutorials/eptorsion1.c.html
src/tao/unconstrained/tutorials/eptorsion2.c.html
src/tao/unconstrained/tutorials/eptorsion2f.F90.html
src/tao/unconstrained/tutorials/eptorsion3.c.html
src/tao/unconstrained/tutorials/minsurf1.c.html
src/tao/unconstrained/tutorials/minsurf2.c.html
src/tao/unconstrained/tutorials/rosenbrock1.c.html
src/tao/unconstrained/tutorials/rosenbrock1f.F90.html


Edit on GitLab

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