#ifndef ESTIMATION_H #define ESTIMATION_H #include using namespace std; // абстрактный класс оценки временных рядов // пока что используется для хранения только поля "значение" // нужно будет дополнить необходимыми участками временного ряда для проедения оценки // от него наследуются конкретные реализации критериев, реализующие соответствующие методики // исходим из того, что все критерии в качестве результата возвращают double class Estimation { public: double value; // значение оценки модели virtual double getValue(int paramsCount, vector, vector) = 0; // получить значение оценки модели virtual double getValue(vector, vector) = 0; // получить значение оценки модели protected: double RSS(vector original, vector model){ double res = 0.0; int commonElemsCount = original.size() > model.size() ? original.size() : model.size(); for (int i = 0; i < commonElemsCount; i++) { res += (original[i] - model[i]) * (original[i] - model[i]); } return res; } virtual void Validate(vector original, vector model){ if (original.size() == 0) throw exception("Original time seria is empty"); if (model.size() == 0) throw exception("Model time seria is empty"); } }; #endif