optimize_mod Module

module~~optimize_mod~~UsesGraph module~optimize_mod optimize_mod module~kinds_mod kinds_mod module~kinds_mod->module~optimize_mod module~array_mod array_mod module~kinds_mod->module~array_mod module~array_mod->module~optimize_mod
Help

Module for minimization of 1D and N-D problems

Used By

module~~optimize_mod~~UsedByGraph module~optimize_mod optimize_mod program~testoptimize_prg testOptimize_prg module~optimize_mod->program~testoptimize_prg module~objective_mod objective_mod module~optimize_mod->module~objective_mod module~objective_mod->program~testoptimize_prg
Help


Interfaces

public interface lineSearch_t

Constructors for lineSearch_t

  • private function newLineSearch(obj, x) result(self)

    Constructor for lineSearch_t

    Arguments

    Type IntentOptional AttributesName
    class(objN_t), intent(in) :: obj

    Parent N-D objective function

    real(kind=wp), intent(in), dimension(:):: x

    Point along line

    Return Value type(lineSearch_t)

    New lineSearch_t


Derived Types

type, public, abstract :: obj_t

Type for a 1D objective function

Components

TypeVisibility AttributesNameInitial
integer, public :: derivativeOrder =2

Order of finite difference approximations

real(kind=wp), public :: stepSize =1.0E-3_wp

Step size for finite differences

Type-Bound Procedures

procedure, public :: der1
procedure, public :: der2
procedure, public :: rootNewton
procedure, public :: minNewton => minNewton_obj
procedure(eval_p), public :: eval

type, public, abstract :: objN_t

Type for an N-D objective function

Components

TypeVisibility AttributesNameInitial
integer, public :: derivativeOrder =2

Order for finite difference approximations

real(kind=wp), public :: stepSize =1.0E-3_wp

Step size for finite differences

Type-Bound Procedures

procedure, public :: grad
procedure, public :: hessian
procedure, public :: steepestDescent
procedure, public :: nelderMead
procedure, public :: minNewton => minNewton_objN
procedure(evalN_p), public :: eval

type, public, extends(obj_t) :: lineSearch_t

Objective function for a line search in an N-D space

Components

TypeVisibility AttributesNameInitial
integer, public :: derivativeOrder =2

Order of finite difference approximations

real(kind=wp), public :: stepSize =1.0E-3_wp

Step size for finite differences

class(objN_t), public, allocatable:: parent

N-D objective function

real(kind=wp), public, dimension(:), allocatable:: x0

Base point in N-space along the line

real(kind=wp), public, dimension(:), allocatable:: n0

Direction in N-space

Constructor

Constructors for lineSearch_t

private function newLineSearch(obj, x)

Constructor for lineSearch_t

Type-Bound Procedures

procedure, public :: der1
procedure, public :: der2
procedure, public :: rootNewton
procedure, public :: minNewton => minNewton_obj
procedure, public :: parentX
procedure, public :: eval => eval_lineSearch