public List <double> TheorFreqsSecond() { var n = GroupedData.Sum(x => x.PointsCount); var k = GroupedData.Count; var h = (OrigData.Max() - OrigData.Min()) / k; var matExp = GetMathExp(); var stdDev = GetStdDev(); var standartVars = GetStandartVars(); var gauss = new GaussDis(); var theorFreqs = new List <double>(); for (int i = 0; i < standartVars.Count; i++) { if (i == 0) { theorFreqs.Add(n * (gauss.Get(standartVars[i + 1]))); } else if (i == standartVars.Count - 1) { theorFreqs.Add(n * (1 - gauss.Get(standartVars[i]))); } else { theorFreqs.Add(n * (gauss.Get(standartVars[i + 1]) - gauss.Get(standartVars[i]))); } } return(theorFreqs); }
public void GroupData() { int cnt = (int)Math.Round(1 + 3.31 * Math.Log10(OrigData.Count()), 0); var min = OrigData.Min(); var max = OrigData.Max(); var step = (max - min) / cnt; // Формируем интервалы GroupedData = new List <IntervalData>(); for (double k = min; k + step < max + step / 2; k += step) { GroupedData.Add(new IntervalData() { StartPoint = k, EndPoint = k + step, PointsCount = 0 }); } // Подсчитываем количество точек на интервал foreach (var p in OrigData) { var group = GroupedData.FirstOrDefault(x => x.IsIn(p)); if (group == null) { group = GroupedData.Last(); } group.PointsCount += 1; } }
public async Task SelectData(UserDataViewModel data) { if (SelectedData == null) { return; } Globals.userData = OrigData.Single(d => d.Id == data.Id); //Globals.userData = data; await Shell.Current.GoToAsync("//EntryPage"); }
public List <double> TheorFreqsFirst() { var n = GroupedData.Sum(x => x.PointsCount); var k = GroupedData.Count; var h = (OrigData.Max() - OrigData.Min()) / k; var matExp = GetMathExp(); var stdDev = GetStdDev(); var standartVars = GetStandartVars(); var gauss = new GaussDen(); return(standartVars.Select(x => n * h * gauss.Get(x) / stdDev).ToList()); }