29 lines
1.3 KiB
C++
29 lines
1.3 KiB
C++
#ifndef AICWEIGHTS_H
|
|
#define AICWEIGHTS_H
|
|
#include <vector>
|
|
|
|
using namespace std;
|
|
|
|
// êðèòåðèé Àêàèêå. Íàñëåäóåòñÿ îò êëàññà Estimation.
|
|
// ðåàëèçóåò ìåòîä "ïîëó÷èòü çíà÷åíèå êðèòåðèÿ"
|
|
class AicWeights {
|
|
private:
|
|
static double getMinValue(vector<double> AicWeights); // Íàéòè ìèíèìàëüíûé ýëåìåíò âåêòîðà
|
|
//For fuzzy adoptive weights calculate
|
|
//Delta koeff
|
|
static double delta;
|
|
static double N;
|
|
static double relativeError(double value, double forecastedValue);
|
|
static double forecastedTendency(vector<double> realSeria);
|
|
static double grayTendency(double forecastedTendency, vector<double> timeSeria, vector<vector<double>> forecastedSeries);
|
|
static double grayBasicWeight(double relativeError, vector<double> timeSeria, vector<vector<double>> forecastedSeries);
|
|
static double adaptiveControlCoefficient(int i);
|
|
static double beta(vector<double> timeSeria, vector<vector<double>> forecastedSeries);
|
|
static double alpha(vector<double> timeSeria, vector<vector<double>> forecastedSeries);
|
|
public:
|
|
AicWeights();
|
|
~AicWeights();
|
|
static vector<double> calculateWeights(vector<double> AicWeights); //Ðàññ÷èòàòü çíà÷åíèÿ âåñîâ
|
|
static vector<double> calculateFuzzyAdaptiveWeights(vector<double> timeSeria, vector<vector<double>> forecastedSeries); //Ðàññ÷èòàòü çíà÷åíèÿ âåñîâ
|
|
};
|
|
#endif |