Пример #1
0
        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);
        }
Пример #2
0
        // Обработка интервалов (извлечение, расчет характеристик, вывод групированного ряда)
        #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 извлеките интервальный ряд обычных частот", "Не был извлечен интервальный ряд частот");
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
 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();
         }
     }
 }
Пример #6
0
 /// <summary>
 /// Создает группированный ряд относительных частот, исходя из данных, расчитанных в данном объекте.
 /// </summary>
 /// <param name="intervalsCount">Количество интервалов разбиения.</param>
 /// <returns>Группированный ряд относительных частот.</returns>
 public GroupedRelativeArequenceSeries getGroupedRelativeArequenceSeries(int intervalsCount)
 {
     return(GroupedRelativeArequenceSeries.calculateFromVariationSeries(this, intervalsCount));
 }