Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Feel::BFGSInvHessian< VECTOR > Struct Template Reference

#include <bfgs.hpp>

Detailed Description

template<typename VECTOR>
struct Feel::BFGSInvHessian< VECTOR >

delta[k] = x[k+1] - x[k]
gamma[k] = grad f(x[k+1]) - grad f(x[k])
H[0] = I
BFGS : zeta[k] = delta[k] - H[k] gamma[k]
DFP : zeta[k] = H[k] gamma[k]
tau[k] = gamma[k]^T zeta[k]
rho[k] = 1 / gamma[k]^T delta[k]
BFGS : H[k+1] = H[k] + rho[k](zeta[k] delta[k]^T + delta[k] zeta[k]^T)

  • rho[k]^2 tau[k] delta[k] delta[k]^T
    DFP : H[k+1] = H[k] + rho[k] delta[k] delta[k]^T
  • (1/tau[k])zeta[k] zeta[k]^T

Public Types

typedef value_type magnitude_type
 
typedef vector_type::value_type T
 
typedef vector_type::value_type value_type
 
typedef VECTOR vector_type
 

Public Member Functions

 BFGSInvHessian (BFGSType v=BFGS)
 
template<typename VEC1 , typename VEC2 >
void hmult (const VEC1 &X, VEC2 &Y)
 
void restart (void)
 
template<typename VECT1 , typename VECT2 >
void update (const VECT1 &deltak, const VECT2 &gammak)
 

Public Attributes

std::vector< vector_type > delta
 
std::vector< vector_type > gamma
 
std::vector< T > rho
 
std::vector< T > tau
 
int version
 
std::vector< vector_type > zeta
 

The documentation for this struct was generated from the following file:

Generated on Sun Dec 22 2013 13:11:17 for Feel++ by doxygen 1.8.5