Beispiel #1
0
        private void k_DoMain(object sender, RoutedEventArgs e)
        {
            if (currentDis == null)
            {
                MessageBox.Show("Завантажте файл");
                return;
            }
            KnownKParser data = new KnownKParser();

            data.Parse(this);
            TestKnownK_IU(data);
        }
Beispiel #2
0
        private void OpenLastChart_k(object sender, RoutedEventArgs e)
        {
            if (currentDis == null)
            {
                MessageBox.Show("Завантажте файл");
                return;
            }
            KnownKParser data = new KnownKParser();

            data.Parse(this);
            List <System.Windows.Point> lp1 = new List <System.Windows.Point>();
            List <System.Windows.Point> lp2 = new List <System.Windows.Point>();

            for (double i = 0; i < 20; i += 0.1)
            {
                lp1.Add(new System.Windows.Point(i, GammaDistribution.calcDens(data.k, data.theta1, i)));
                lp2.Add(new System.Windows.Point(i, GammaDistribution.calcDens(data.k, data.theta2, i)));
            }
            DensComparer dc = new DensComparer("H0", lp1, "H1", lp2);

            dc.Show();
        }
Beispiel #3
0
        private void TestKnownK_IU(KnownKParser data)
        {
            List <ResultsTableRow> resList = new List <ResultsTableRow>();

            double alpha = data.alpha;
            double beta  = data.beta;
            double c0;
            double c1;

            bool falseIsTop = true;

            while (SCollection.Count > 0)
            {
                SCollection.RemoveAt(SCollection.Count - 1);
            }
            var topPointsLine       = AddNewSeriesCollection("брак.значення", Brushes.Red);
            var botPointsLine       = AddNewSeriesCollection("пр-е значення", Brushes.Blue);
            var checkingsPointsLine = AddNewSeriesCollection("спостереження", Brushes.Purple);

            DataContext = this;

            for (int i = 0; i < currentDis.arr.Count; i++)
            {
                ResultsTableRow resListInstance  = new ResultsTableRow();
                List <double>   checkedList      = currentDis.arr.GetRange(0, i + 1);
                double          likehoodDivision = SPRT.LikehoodKnownK(checkedList);
                c0 = SPRT.LowMarginKnownK(data.theta1, data.theta2, data.k, alpha, beta, i + 1);
                c1 = SPRT.TopMarginKnownK(data.theta1, data.theta2, data.k, alpha, beta, i + 1);
                if (c1 < c0)
                {
                    falseIsTop = false;
                }
                resListInstance.Num         = i.ToString();
                resListInstance.falseMargin = falseIsTop ? c1.GetRoundedString(4) : c0.GetRoundedString(4);
                resListInstance.TrueMargin  = falseIsTop ? c0.GetRoundedString(4) : c1.GetRoundedString(4);
                resListInstance.Sum         = likehoodDivision.GetRoundedString(4);
                resListInstance.Value       = currentDis.arr[i].GetRoundedString(4);
                resList.Add(resListInstance);


                topPointsLine.Values.Add(new System.Windows.Point(i, Math.Round(c1, 3)));
                botPointsLine.Values.Add(new System.Windows.Point(i, Math.Round(c0, 3)));
                checkingsPointsLine.Values.Add(new System.Windows.Point(i, Math.Round(likehoodDivision, 3)));

                var checkC0 = falseIsTop ? c0 : c1;
                var checkC1 = falseIsTop ? c1 : c0;
                if (likehoodDivision < checkC0)
                {
                    string insert = falseIsTop ? "H0" : "H1";
                    MessageBox.Show("Гіпотеза " + insert + "\r\n на кроці " + (i + 1).ToString());
                    break;
                }
                if (likehoodDivision > checkC1)
                {
                    string insert = falseIsTop ? "H1" : "H0";
                    MessageBox.Show("Гіпотеза " + insert + "\r\n на кроці " + (i + 1).ToString());
                    break;
                }
            }
            ResultsTable.ItemsSource = resList;
        }