/** @(#) functionnd/functionnd.h */ #ifndef FUNCTIONND_H #define FUNCTIONND_H //---------------------------------------------------------------------------- #include "../matrixdouble/vectordouble.h" #include "../mathpos/mathpos.h" //MACHEPS #include <iostream> #include <stdexcept> // runtime_exception using namespace std; /** * Interfaz de funciones de varias dimensiones. * @author Omar Posada Villarreal * @version 1.0, 02/03/2002 */ class FunctionND { public: // Constructor predeterminado // Destructor predeterminado /** * Interfaz para evaluar funcion en n dimensiones. * Algoritmo FVEC pagina 298. * Logica uno. * Uso: * inicio de ejemplo class Function1 : public FunctionND { public: // No se checa las dimensiones de xc y Fc. void evaluate(VectorDouble &xc, VectorDouble &Fc) { xc.setLogic(1); Fc.setLogic(1); // Funcion del usuario Fc[1] = 2.0*pow(xc[1]+xc[2], 2.0) + pow(xc[1]-xc[2], 2.0)- 8.0; Fc[2] = 5.0*pow(xc[1], 2.0) + pow(xc[2]-3.0, 2.0) - 9.0; } }; // No olvidar ";" * fin de ejemplo * @param xc Punto donde se evaluara. * @param Fc Asignacion del valor del vector funcion * de las ecuaciones no lineales. */ virtual void evaluate(VectorDouble &xc, VectorDouble &Fc) = 0; private: }; //---------------------------------------------------------------------------- #endif // Fin------------------------------------------------------------------------