#include "MyCostFunction.h" double MyCostFunction::evaluate(const optimization::matrix_type & x) { double f; if (m_bVerbose) std::cerr << x.rows() << " x " << x.cols() << std::endl; if ( x.rows() == 1 ) { if (m_bVerbose) std::cerr << "current position: " << x[0][0] << std::endl; //our cost function is f(x) = (x-5)^2 f = pow(x[0][0] - 4.2, 2.0); if (m_bVerbose) std::cerr << "function value: " << f << std::endl; } //two-dimensional data else { if (m_bVerbose) std::cerr << "current position: " << x[0][0] << " " << x[1][0] << std::endl; //our cost function is f(x,y) = (x-4.7)^2 + (y-1.1)^2 f = pow(x[0][0] - 4.7, 2.0) + pow( x[1][0] - 1.1, 2.0 ); if (m_bVerbose) std::cerr << "function value: " << f << std::endl; } return f; }