private void calculateChars_Click(object sender, EventArgs e) { if (intSeries != null) { double sampleMeanSquare = SeriesCharacteristics.calculateSampleMeanSquare(groupedSeries.SeriesTable); double dispersion = SeriesCharacteristics.calculateDispersion(groupedSeries.SeriesTable); double sampleMean = SeriesCharacteristics.calculateSampleMean(groupedSeries.SeriesTable); characteristicsLabel.Text = String.Format("Выборочное среднее квадратическое {0:f4}\n\rВыборочное среднее {1:f4}\n\rДисперсия {2:f4}\n\r", sampleMeanSquare, sampleMean, dispersion); } 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 calculateTableCharacteristics() { if (calculated) { SampleMeanTB.Text = SeriesCharacteristics.calculateSampleMean(relativeSeries.SeriesTable).ToString(); SampleMeanSquareTB.Text = SeriesCharacteristics.calculateSampleMeanSquare(relativeSeries.SeriesTable).ToString(); DispersionTB.Text = SeriesCharacteristics.calculateDispersion(relativeSeries.SeriesTable).ToString(); InitialSamplingPointTB.Text = SeriesCharacteristics.calculateInitialSamplingPoint(relativeSeries.SeriesTable, Convert.ToDouble(nudR.Value)).ToString(); CentralSamplingPointTB.Text = SeriesCharacteristics.calculateCentralSamplingPoint(relativeSeries.SeriesTable, Convert.ToDouble(nudR.Value)).ToString(); statusLabel.Text = "Рассчитаны числовые характеристики выборки"; } else { MessageBox.Show("Прежде чем рассчитывать характеристики выборки,\nрассчитайте ряды!", "Внимание"); } }
private void calculateChars_Click(object sender, EventArgs e) { if (intSeries != null) { double sampleMeanSquare = SeriesCharacteristics.calculateSampleMeanSquare(groupedSeries.SeriesTable); double dispersion = SeriesCharacteristics.calculateDispersion(groupedSeries.SeriesTable); double sampleMean = SeriesCharacteristics.calculateSampleMean(groupedSeries.SeriesTable); double centralSamplingPoint = SeriesCharacteristics.calculateCentralSamplingPoint(groupedSeries.SeriesTable, (double)rNumber.Value); double initialSamplingPoint = SeriesCharacteristics.calculateInitialSamplingPoint(groupedSeries.SeriesTable, (double)rNumber.Value); characteristicsLabel.Text = String.Format("Средневыборочное квадратическое {0:f4}\n\rСредневыборочное {1:f4}\n\rДисперсия {2:f4}\n\rЦентр. выборочн. момент {3}: {4:f4}\n\rНачальный выборочный момент {5}: {6:f4}", sampleMeanSquare, sampleMean, dispersion, (int)rNumber.Value, centralSamplingPoint, (int)rNumber.Value, initialSamplingPoint); } else { MessageBox.Show("Перед тем, как рассчитывать характеристики выборки,\nизвлечите интервальный ряд обычных частот и рассчитайте группированный ряд отновительных частот", "Не был рассчитан группированный ряд относительных частот частот"); } }
// Построение графиков #region ShowGraphics private void showGraphicsButton_Click(object sender, EventArgs e) { switch (cbGraphKind.SelectedIndex) { case 0: { if (groupedSeries != null) { SortedDictionary <double, int> modifiedSeries = new SortedDictionary <double, int>(); double summ = groupedSeries.ElementsCount; foreach (var pair in groupedSeries.SeriesTable) { modifiedSeries.Add(pair.Key, (int)(pair.Value * summ)); } DisplayForm.DisplayStatFreq(modifiedSeries); LoggerEvs.writeLog("Построение полигона..."); } break; } case 1: { if (intSeries != null) { DisplayForm.DisplayIntervalFreq(intSeries.SeriesTable); LoggerEvs.writeLog("Построение гистограммы..."); } break; } case 2: { if (groupedSeries != null) { SortedDictionary <double, double> modifiedSeries = new SortedDictionary <double, double>(); double summ = 0; foreach (var pair in groupedSeries.SeriesTable) { summ += pair.Value; } foreach (var pair in groupedSeries.SeriesTable) { modifiedSeries.Add(pair.Key, pair.Value / summ); } EmpiricFunction.ShowEmpiricFunction(modifiedSeries); LoggerEvs.writeLog("Построение функции распределения..."); } break; } case 3: { if (groupedSeries != null) { CheckDistributionForm wnd = new CheckDistributionForm(); double sampleMeanSquare = SeriesCharacteristics.calculateSampleMeanSquareNew(groupedSeries.SeriesTable); double sampleMean = SeriesCharacteristics.calculateSampleMean(groupedSeries.SeriesTable); double dispersion = SeriesCharacteristics.calculateDispersion(groupedSeries.SeriesTable); wnd.draw_distribution(groupedSeries.SeriesTable, "Выборка", sampleMean, sampleMeanSquare, Color.FromArgb(255, 255, 0, 255)); wnd.drawNormalDistribution(dispersion, sampleMeanSquare, sampleMean); wnd.Show(); } break; } case 4: { if (groupedSeries != null) { CheckDistributionForm wnd = new CheckDistributionForm(); double sampleMeanSquare = SeriesCharacteristics.calculateSampleMeanSquareNew(groupedSeries.SeriesTable); double sampleMean = SeriesCharacteristics.calculateSampleMean(groupedSeries.SeriesTable); double dispersion = SeriesCharacteristics.calculateDispersion(groupedSeries.SeriesTable); wnd.draw_distribution(groupedSeries.SeriesTable, "Выборка", sampleMean, sampleMeanSquare, Color.FromArgb(255, 255, 0, 255)); wnd.drawExpDistribution(dispersion, sampleMeanSquare, sampleMean); wnd.Show(); } break; } } }