Exemplo n.º 1
0
 private void ExportToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (saveFileDialog1.ShowDialog() == DialogResult.OK)
     {
         if (saveFileDialog1.FileName.Substring(saveFileDialog1.FileName.Length - 3, 3) == "csv")
         {
             ImportAndExportFiles.ExportFile(saveFileDialog1.FileName, 1);
         }
         else if (saveFileDialog1.FileName.Substring(saveFileDialog1.FileName.Length - 4, 4) == "html")
         {
             ImportAndExportFiles.ExportFile(saveFileDialog1.FileName, 2);
         }
         else
         {
             ImportAndExportFiles.ExportFile(saveFileDialog1.FileName, 3);
         }
     }
 }
Exemplo n.º 2
0
        private void buttonImportData_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                buttonClear_Click(sender, e);

                using (var fs = new FileStream(openFileDialog1.FileName, FileMode.Open))
                {
                    ImportAndExportFiles.ImportFile(fs);

                    for (var i = 0; i < Row.GetCount(); i++)
                    {
                        if (Row.GetByIndex(i).a != Row.GetByIndex(i).b)
                        {
                            listBoxRow.Items.Add("(" + Row.GetByIndex(i).a + "; " + Row.GetByIndex(i).b + ")   |   ni = " + Row.GetByIndex(i).n);
                        }
                        else
                        {
                            listBoxRow.Items.Add(Row.GetByIndex(i).a + "   |   ni = " + Row.GetByIndex(i).n);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        //Перевірка гіпотези про закон Пуассона
        public static void CheckPuassonLaw()
        {
            ImportAndExportFiles.Clear();

            ImportAndExportFiles.WriteHTML("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/></head><body>");

            ImportAndExportFiles.WriteHTML("<h2>Перевірка гіпотези про розподіл випадкової величини за законом Пуассона розподілу:</h2>");
            ImportAndExportFiles.WriteText("Перевірка гіпотези про розподіл випадкової величини за законом Пуассона розподілу:");

            ImportAndExportFiles.WriteHTML("<h3>Результати обчислень:</h3>");
            ImportAndExportFiles.WriteText("Результати обчислень:\n");

            double X = GetSampleMean(), S2 = GetSampleVariance();
            int    N = GetSampleSize();

            ImportAndExportFiles.WriteHTML("N = " + N + "</br>");
            ImportAndExportFiles.WriteText("N = " + N);

            ImportAndExportFiles.WriteHTML("X = " + Math.Round(X, 4) + "</br>");
            ImportAndExportFiles.WriteText("X = " + Math.Round(X, 4));

            ImportAndExportFiles.WriteHTML("S2 = " + Math.Round(S2, 4) + "</br>");
            ImportAndExportFiles.WriteText("S2 = " + Math.Round(S2, 4));

            double lambda = (X + S2) / 2;

            ImportAndExportFiles.WriteHTML("lambda = " + Math.Round(lambda, 4) + "</br></br>");
            ImportAndExportFiles.WriteText("lambda = " + Math.Round(lambda, 4) + "\n");

            //Обчислення теоретичних ймовірностей, що будуть заноситися в окремий список данних.
            ImportAndExportFiles.WriteHTML("<table border=\"1\" style=\"width:90%;\">");
            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>[ai; ai+1]</td>");
            var str = "\"[ai; ai+1]\"";

            foreach (var i in Row.Values)
            {
                ImportAndExportFiles.WriteHTML("<td>(" + i.a + "; " + i.b + ")</td>");
                str += ";\"(" + i.a + "; " + i.b + ")\"";
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>ni</td>");
            str = "ni";

            foreach (var i in Row.Values)
            {
                ImportAndExportFiles.WriteHTML("<td>" + i.n + "</td>");
                str += ";" + i.n;
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            var TempCalculation = new List <double>();

            //pi = [exp(-lam)*pow(lam, k)]/k!
            foreach (var i in Row.Values)
            {
                TempCalculation.Add((Math.Exp(-lambda) * Math.Pow(lambda, i.x)) / Functions.Factorial(Convert.ToInt32(i.x)));
            }

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>pi</td>");
            str = "pi";

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                ImportAndExportFiles.WriteHTML("<td>" + Math.Round(TempCalculation[i], 4) + "</td>");
                str += ";" + Math.Round(TempCalculation[i], 4);
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            //ni=n*pi
            for (var i = 0; i < TempCalculation.Count; i++)
            {
                TempCalculation[i] = TempCalculation[i] * N;
            }

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>ni = pi * n</td>");
            str = "ni = pi * n";

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                ImportAndExportFiles.WriteHTML("<td>" + Math.Round(TempCalculation[i], 4) + "</td>");
                str += ";" + Math.Round(TempCalculation[i], 4);
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                TempCalculation[i] = Math.Pow(Row.Values[i].n - TempCalculation[i], 2) / TempCalculation[i];
            }

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>((ni-ni')^2)/ni'</td>");
            str = "((ni-ni')^2)/ni'";

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                ImportAndExportFiles.WriteHTML("<td>" + Math.Round(TempCalculation[i], 4) + "</td>");
                str += ";" + Math.Round(TempCalculation[i], 4);
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteHTML("</table>");
            ImportAndExportFiles.WriteText(str);

            double Hi2 = 0;

            foreach (var i in TempCalculation)
            {
                Hi2 += i;
            }

            ImportAndExportFiles.WriteHTML("</br>Hi2 = " + Math.Round(Hi2, 4));
            ImportAndExportFiles.WriteText("Hi2 = " + Math.Round(Hi2, 4));

            double Hi2Crit = GetHi2Crit(2);

            ImportAndExportFiles.WriteHTML("</br>Hi2Crit = " + Math.Round(Hi2Crit, 4));
            ImportAndExportFiles.WriteText("Hi2Crit = " + Math.Round(Hi2Crit, 4));

            if (Hi2 < Hi2Crit)
            {
                ImportAndExportFiles.WriteHTML("</br><h3>Гіпотеза про розподіл випадкової величини за законом Пуассона приймається.</h3>");
                ImportAndExportFiles.WriteText("Гіпотеза про розподіл випадкової величини за законом Пуассона приймається.");
            }
            else
            {
                ImportAndExportFiles.WriteHTML("</br><h3>Гіпотеза про розподіл випадкової величини за законом Пуассона не приймається.</h3>");
                ImportAndExportFiles.WriteText("Гіпотеза про розподіл випадкової величини за законом Пуассона не приймається.");
            }

            ImportAndExportFiles.WriteHTML("</body></html>");
        }
Exemplo n.º 4
0
        //Перевірка гіпотези про нормальний закон
        public static void CheckNormalLaw()
        {
            ImportAndExportFiles.Clear();

            ImportAndExportFiles.WriteHTML("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/></head><body>");

            ImportAndExportFiles.WriteHTML("<h2>Перевірка гіпотези про розподіл випадкової величини за нормальним законом розподілу:</h2>");
            ImportAndExportFiles.WriteText("Перевірка гіпотези про розподіл випадкової величини за нормальним законом розподілу:");

            ImportAndExportFiles.WriteHTML("<h3>Результати обчислень:</h3>");
            ImportAndExportFiles.WriteText("Результати обчислень:\n");

            double X = GetSampleMean(), S = Math.Sqrt(GetSampleVariance());
            int    N = GetSampleSize();

            ImportAndExportFiles.WriteHTML("N = " + N + "</br>");
            ImportAndExportFiles.WriteText("N = " + N);

            ImportAndExportFiles.WriteHTML("X = " + Math.Round(X, 4) + "</br>");
            ImportAndExportFiles.WriteText("X = " + Math.Round(X, 4));

            ImportAndExportFiles.WriteHTML("S = " + Math.Round(S, 4) + "</br></br>");
            ImportAndExportFiles.WriteText("S = " + Math.Round(S, 4) + "\n");

            //Обчислення теоретичних ймовірностей, що будуть заноситися в окремий список данних.
            ImportAndExportFiles.WriteHTML("<table border=\"1\" style=\"width:90%;\">");
            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>[ai; ai+1]</td>");
            var str = "\"[ai; ai+1]\"";

            foreach (var i in Row.Values)
            {
                ImportAndExportFiles.WriteHTML("<td>(" + i.a + "; " + i.b + ")</td>");
                str += ";\"(" + i.a + "; " + i.b + ")\"";
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>ni</td>");
            str = "ni";

            foreach (var i in Row.Values)
            {
                ImportAndExportFiles.WriteHTML("<td>" + i.n + "</td>");
                str += ";" + i.n;
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            var TempCalculation = new List <double>();

            if (Row.Values[0].a == Row.Values[0].x)
            {
                //pi = fi(...)
                foreach (var i in Row.Values)
                {
                    TempCalculation.Add((1 / (S * Math.Sqrt(2 * Math.PI))) * Math.Exp(-Math.Pow(i.x - X, 2) / (2 * S * S)));
                }
            }
            else
            {
                //pi = Ф[(b-X)/S] - Ф[(a-X)/S]
                foreach (var i in Row.Values)
                {
                    TempCalculation.Add(Functions.Laplase((i.b - X) / S) - Functions.Laplase((i.a - X) / S));
                }
            }

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>pi</td>");
            str = "pi";

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                ImportAndExportFiles.WriteHTML("<td>" + Math.Round(TempCalculation[i], 4) + "</td>");
                str += ";" + Math.Round(TempCalculation[i], 4);
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            //ni=n*pi
            for (var i = 0; i < TempCalculation.Count; i++)
            {
                TempCalculation[i] = TempCalculation[i] * N;
            }

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>ni = pi * n</td>");
            str = "ni = pi * n";

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                ImportAndExportFiles.WriteHTML("<td>" + Math.Round(TempCalculation[i], 4) + "</td>");
                str += ";" + Math.Round(TempCalculation[i], 4);
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteText(str);

            //Hi2
            for (var i = 0; i < TempCalculation.Count; i++)
            {
                TempCalculation[i] = Math.Pow(Row.Values[i].n - TempCalculation[i], 2) / TempCalculation[i];
            }

            ImportAndExportFiles.WriteHTML("<tr>");

            ImportAndExportFiles.WriteHTML("<td>((ni-ni')^2)/ni'</td>");
            str = "((ni-ni')^2)/ni'";

            for (var i = 0; i < TempCalculation.Count; i++)
            {
                ImportAndExportFiles.WriteHTML("<td>" + Math.Round(TempCalculation[i], 4) + "</td>");
                str += ";" + Math.Round(TempCalculation[i], 4);
            }
            ImportAndExportFiles.WriteHTML("</tr>");
            ImportAndExportFiles.WriteHTML("</table>");
            ImportAndExportFiles.WriteText(str);

            double Hi2 = 0;

            foreach (var i in TempCalculation)
            {
                Hi2 += i;
            }

            ImportAndExportFiles.WriteHTML("</br>Hi2 = " + Math.Round(Hi2, 4));
            ImportAndExportFiles.WriteText("Hi2 = " + Math.Round(Hi2, 4));

            double Hi2Crit = GetHi2Crit(2);

            ImportAndExportFiles.WriteHTML("</br>Hi2Crit = " + Math.Round(Hi2Crit, 4));
            ImportAndExportFiles.WriteText("Hi2Crit = " + Math.Round(Hi2Crit, 4));

            if (Hi2 < Hi2Crit)
            {
                ImportAndExportFiles.WriteHTML("</br><h3>Гіпотеза про розподіл випадкової величини за нормальним законом розподілу приймається.</h3>");
                ImportAndExportFiles.WriteText("Гіпотеза про розподіл випадкової величини за нормальним законом розподілу приймається.");
            }
            else
            {
                ImportAndExportFiles.WriteHTML("</br><h3>Гіпотеза про розподіл випадкової величини за нормальним законом розподілу не приймається.</h3>");
                ImportAndExportFiles.WriteText("Гіпотеза про розподіл випадкової величини за нормальним законом розподілу не приймається.");
            }

            ImportAndExportFiles.WriteHTML("</body></html>");
        }