public static GroupedRelativeArequenceSeries calculateFromVariationSeries(VariationSeries varSeries, int intervalsCount) { GroupedRelativeArequenceSeries currentSeries = new GroupedRelativeArequenceSeries(); currentSeries.varSeries = varSeries; currentSeries.intervalSeries = varSeries.getIntervalVariationSeries(intervalsCount); currentSeries.calculateElementsCount(); currentSeries.addElementsToTable(); return(currentSeries); }
// Обработка интервалов (извлечение, расчет характеристик, вывод групированного ряда) #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); }
private void fillTable() { if (SourceValues.valuesTable != null) { variationSeries = VariationSeries.calculateSerires(); relativeSeries = variationSeries.getRelativeSeries(); intervalSeries = variationSeries.getIntervalVariationSeries((int)intervalsCountUpDown.Value); groupedRelativeSeries = variationSeries.getGroupedRelativeArequenceSeries((int)intervalsCountUpDown.Value); calculated = true; printTable(); } else { string errMsg = "Необходимо загрузить выборку из файла. Выберите файл с выборкой."; MessageBox.Show(errMsg, "Внимание"); LoggerEvs.writeLog(errMsg); LoggerEvs.writeLog("Открытие входной выборки..."); if (openDataInputFile()) { LoggerEvs.writeLog("Входная выборка успешно открыта!"); fillTable(); } } }
/// <summary> /// Создает группированный ряд относительных частот, исходя из данных, расчитанных в данном объекте. /// </summary> /// <param name="intervalsCount">Количество интервалов разбиения.</param> /// <returns>Группированный ряд относительных частот.</returns> public GroupedRelativeArequenceSeries getGroupedRelativeArequenceSeries(int intervalsCount) { return(GroupedRelativeArequenceSeries.calculateFromVariationSeries(this, intervalsCount)); }