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;
            }
        }
Esempio n. 3
0
 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());
        }