// Обработка интервалов (извлечение, расчет характеристик, вывод групированного ряда) #region IntervalsProcessing private void calculateGroupedSeries_Click(object sender, EventArgs e) { if (intSeries != null) { groupedSeries = GroupedRelativeArequenceSeries.calculateFromIntervalSeries(intSeries, intSeries.SeriesTable.Count); visualizeGroupedSeries(); } else { MessageBox.Show("Перед тем, как рассчитывать группированный ряд относительных частот,\n извлеките интервальный ряд обычных частот", "Не был извлечен интервальный ряд частот"); } }
protected override List <double> probabilitiesCount(IntervalVariationStatisticSeries inValue) { List <double> probs = new List <double>(); // Вероятности GroupedRelativeArequenceSeries groupedSeries = GroupedRelativeArequenceSeries.calculateFromIntervalSeries(inValue, inValue.SeriesTable.Count); double sampleMean = SeriesCharacteristics.calculateSampleMean(groupedSeries.SeriesTable); double lambda = 1 / sampleMean; double buff; foreach (KeyValuePair <LinearInterval, double> pair in inValue.SeriesTable) { buff = Math.Exp(-lambda * pair.Key.LeftBorder) - Math.Exp(-lambda * pair.Key.RightBorder); probs.Add(buff); } return(probs); }
private IntervalVariationStatisticSeries createNewIntervalSeries(IntervalVariationStatisticSeries old) { GroupedRelativeArequenceSeries groupedSeries = GroupedRelativeArequenceSeries.calculateFromIntervalSeries(old, old.SeriesTable.Count); double sampleMean = SeriesCharacteristics.calculateSampleMean(groupedSeries.SeriesTable); double sampleMeanSquare = SeriesCharacteristics.calculateSampleMeanSquare(groupedSeries.SeriesTable); IntervalVariationStatisticSeries newInterval = IntervalVariationStatisticSeries.calculateSeriesFromReadySeries(old.SeriesTable); foreach (KeyValuePair <LinearInterval, double> pair in newInterval.SeriesTable) { pair.Key.LeftBorder = (pair.Key.LeftBorder - sampleMean) / sampleMeanSquare; pair.Key.RightBorder = (pair.Key.RightBorder - sampleMean) / sampleMeanSquare; } return(newInterval); }