Ejemplo n.º 1
0
        //ф-я для удаления вторым и третим методом
        //отличаются только t
        private void Anomal2n3(double t, AnomalOptions options)
        {
            //скопировал значения для увеличения читаемосости кода
            double x = Expectation;

            double s = Sigma;

            double a = x - t * s;

            double b = x + t * s;

            #region Одиинаковый код, который позволяет только найти границы без изменения обрабатываемо массива

            BorderA = a;

            BorderB = b;

            if ((options & AnomalOptions.OnlyFindBordersAandB) != 0)
            {
                return;
            }

            #endregion

            d = d.Where(value => value >= a && value <= b)
                .ToArray();
        }
Ejemplo n.º 2
0
        public void AnomalFirt(AnomalOptions options)
        {
            //скопировал значения для увеличения читаемосости кода
            double x = Expectation;

            double s = Sigma;

            double t1 = 2 + 0.2 * Math.Log10(0.04 * d.Length);

            double t2 = Math.Sqrt(19 * Math.Sqrt(Excess + 2) + 1);

            double a, b; //границы

            #region Определение границ a и b

            if (A < -0.2)
            {
                a = x - t2 * s;
                b = x + t1 * s;
            }

            else if (A > 0.2)
            {
                a = x - t1 * s;
                b = x + t2 * s;
            }

            else
            {
                a = x - t1 * s;
                b = x + t1 * s;
            }
            #endregion

            #region Одиинаковый код, который позволяет только найти границы без изменения обрабатываемо массива

            BorderA = a;

            BorderB = b;

            if ((options & AnomalOptions.OnlyFindBordersAandB) != 0)
            {
                return;
            }

            #endregion

            d = d.Where(value => value >= a && value <= b)
                .ToArray();
        }
Ejemplo n.º 3
0
        public void AnomalSecond(AnomalOptions options)
        {
            double t = 1.2 + 3.6 * (1 - KontrExcess) * Math.Log10(d.Length / 10d);

            Anomal2n3(t, options);
        }
Ejemplo n.º 4
0
        public void AnomalThird(AnomalOptions options)
        {
            double t = 1.55 + 0.8 * Math.Sqrt(Math.Abs(Excess_zsun - 1)) * Math.Log10(d.Length / 10d);

            Anomal2n3(t, options);
        }