NLToolbox
|
00001 /* 00002 * DynamicalSystem.h 00003 * 00004 * Created on: Nov 13, 2012 00005 * Author: romain 00006 */ 00007 00008 #ifndef CONTINUOUSSYSTEM_H_ 00009 #define CONTINUOUSSYSTEM_H_ 00010 00011 #include "Set.h" 00012 #include "utils.h" 00013 00014 namespace nltool { 00015 00016 00017 enum SystemType { 00018 CONSTANT, LINEAR, QUADRATIC, POLYNOMIAL, OTHER, POINTER 00019 }; 00020 enum SystemTimeType { 00021 CONTINUOUS, DISCRETE 00022 }; 00023 00027 class DynamicalSystem { 00028 public: 00029 00033 DynamicalSystem(); 00034 00038 virtual ~DynamicalSystem(); 00039 00045 virtual Vector eval(const Vector& x); 00046 00052 virtual DynamicalSystem& derivate(const unsigned dx); 00053 00057 void printType(); 00058 00059 /* 00060 * ########################################## 00061 * GETTTERS and SETTERS 00062 * ########################################## 00063 */ 00064 00065 unsigned getDimension() const; 00066 void setDimension(unsigned dimension); 00067 00068 SystemTimeType getSystemTimeType() const; 00069 void setSystemTimeType(SystemTimeType systemTimeType); 00070 SystemType getSystemType() const; 00071 00072 00073 protected: 00074 unsigned dimension; // system dimension 00075 SystemType systemType; // system type 00076 SystemTimeType systemTimeType; // discret of continuous time 00077 Number discretizedTime; // discretization time in case of discrete time type 00078 00079 }; 00080 00081 } // namespace nltool 00082 00083 00084 #endif /* CONTINUOUSSYSTEM_H_ */