public void Analyze(List <ReceivedMeasurement> measurements, AnalysisVM viewmodel) { _result = new ComputationResultVM() { X_values = new List <string>(new[] { "Result" }), Y_values = new List <double>(new[] { measurements.Sum(m => m.Value) / measurements.Count }) }; }
public void Analyze(List <ReceivedMeasurement> measurements, AnalysisVM viewmodel) { var dates = measurements.Select(x => x.RecordCreateTime.ToOADate()).ToArray(); DirectRegressionMethod regressionMethod = (DirectRegressionMethod)Enum.Parse(typeof(DirectRegressionMethod), viewmodel.regressionMethod); var polynomialCoefficients = Fit.Polynomial(dates, measurements.Select(y => y.Value).ToArray(), viewmodel.polynomialDegree, regressionMethod).ToList(); var predictionDate = DateTime.Parse(viewmodel.predictionDate); var predictionResults = GetPredictionResults(predictionDate.ToOADate(), polynomialCoefficients); List <string> predictionDates = new List <string>() { viewmodel.predictionDate }; _result = new ComputationResultVM() { X_values = predictionDates, Y_values = predictionResults, Formula = "" }; }
public void Analyze(List <ReceivedMeasurement> measurements, AnalysisVM viewmodel) { var measurementDates = measurements.Select(x => x.RecordCreateTime.ToOADate()).ToArray(); DirectRegressionMethod regressionMethod = (DirectRegressionMethod)Enum.Parse(typeof(DirectRegressionMethod), viewmodel.regressionMethod); var polynomialCoefficients = Fit.Polynomial(measurementDates, measurements.Select(y => y.Value).ToArray(), viewmodel.polynomialDegree, regressionMethod).ToList(); var functionFormula = GetPolynomialFormula(polynomialCoefficients); var newDates = GenerateNewDates(measurementDates); var approximationResults = GetApproximationResults(newDates.ToArray(), polynomialCoefficients); _result = new ComputationResultVM() { X_values = measurementDates.Select(x => DateTime.FromOADate(x).ToString("yyyy-MM-dd HH:mm:ss")).ToList(), X2_values = newDates.Select(x => DateTime.FromOADate(x).ToString("yyyy-MM-dd HH:mm:ss")).ToList(), Y_values = measurements.Select(x => x.Value).ToList(), Y2_values = approximationResults, Formula = functionFormula }; }