12345678910111213141516171819202122232425262728293031323334 |
- #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;
- }
|