11 #ifndef PRIMATOLOGIST_OPTIMIZATION_NEWTON_D_H 12 #define PRIMATOLOGIST_OPTIMIZATION_NEWTON_D_H 22 template <
typename O,
template <
typename>
class L>
35 template <
typename O,
template <
typename>
class L>
46 template <
typename O,
template <
typename>
class L>
50 template <
typename O,
template <
typename>
class L>
71 template <
typename O,
template <
typename>
class L>
77 template <
typename O,
template <
typename>
class L>
83 template <
typename O,
template <
typename>
class L>
89 template <
typename O,
template <
typename>
class L>
98 template <
typename O,
template <
typename>
class L>
105 template <
typename O,
template <
typename>
class L>
111 template <
typename O,
template <
typename>
class L>
118 template <
typename O,
template <
typename>
class L>
125 template <
typename O,
template <
typename>
class L>
135 template <
typename O,
template <
typename>
class L>
141 template <
typename O,
template <
typename>
class L>
147 template <
typename O,
template <
typename>
class L>
153 template <
typename O,
template <
typename>
class L>
160 template <
typename O,
template <
typename>
class L>
166 template <
typename O,
template <
typename>
class L>
172 template <
typename O,
template <
typename>
class L>
178 template <
typename O,
template <
typename>
class L>
185 template <
typename O,
template <
typename>
class L>
196 template <
typename O,
template <
typename>
class L>
201 std::cout << std::string(80,
'-') << std::endl;
202 std::cout << std::setw(7) <<
"Search " 203 << std::setw(4) <<
"i " 204 << std::setw(15) <<
"f" 205 << std::setw(15) <<
"crit" 207 std::cout << std::string(80,
'-') << std::endl;
215 float previous_value;
221 std::cout << std::setw(7) <<
"N" 223 << std::setw(15) << std::setprecision(5) << current_value
224 << std::setw(15) << std::setprecision(5) <<
"" 231 previous_x = current_x;
232 previous_value = current_value;
242 crit_value = std::abs( current_value - previous_value );
244 crit_value /= std::abs( previous_value );
249 std::cout << std::setw(7) <<
"N" 251 << std::setw(15) << std::setprecision(5) << current_value
252 << std::setw(15) << std::setprecision(5) << crit_value
253 << std::string( ok ?
" OK" :
" C" )
260 std::cout <<
"Maximum number of iterations reached." << std::endl;
269 #endif // PRIMATOLOGIST_OPTIMIZATION_NEWTON_D_H const Objective & objectiveFunction() const
MatrixBase< T > invert(const MatrixBase< T > &)
Matrix inversion.
float _gamma
Fixed Gamma or initial gamma for line search.
void setMaxIterations(int n=- 1)
Newton's Method for optimization.
void setStopCriterion(const std::string &crit="absdiff")
Can take values:
Objective _f
objectiveFunction
Newton< O, L > & operator=(const Newton< O, L > &other)
Newton(const Objective &f=Objective(), const Vector &x=Vector())
void setMaximize(bool maximize=false)
void setStopValue(float epsilon=1E-5)
const std::string & stopCriterion() const
bool _maximize
maximize or minimize
void setPosition(const Vector &x=Vector())
void setLineSearch(const LineSearch &l=LineSearch())
void setObjectiveFunction(const Objective &f)
Matrix class implementing matrix operations.
const Vector & position() const
LineSearch & lineSearch()
void setGamma(float gamma=0.1)
int _max_it
maximum number of iterations
int maxIterations() const
void setVerbose(int v=carto::verbose)
int _verbose
verbosity level
std::string _crit
stop criterion