Esempio n. 1
0
        static void Main(string[] args)
        {
            //MyTD T1 = new MyTD("MAC_LabWork_1_3_2020_3k_113_v00.bin", "binary file");
            //string txt = $"\r\n Count of rows: {T1.Length,0}";
            //txt += T1.ToPrint("  *.bin file processing ");
            //Console.WriteLine(txt);

            //MyTD T2 = new MyTD("MAC_LabWork_1_3_2020_3k_113_v00.txt", "txt file");
            //txt = $"\r\n\r\n\r\n Count of rows: {T2.Length,0}";
            //txt += T2.ToPrint("  *.txts file processing ");
            //Console.WriteLine(txt);

            MyTD   T1  = new MyTD("MAC_LabWork_1_3_2020_3k_113_v02.bin", "binary file");
            string txt = $"\r\n Count of rows: {T1.Length,0}";

            txt += T1.ToPrint("  *.bin file processing ");
            Console.WriteLine(txt);

            MyTD T2 = new MyTD("MAC_LabWork_1_3_2020_3k_113_v02.txt", "txt file");

            txt  = $"\r\n\r\n\r\n Count of rows: {T2.Length,0}";
            txt += T2.ToPrint("  *.txts file processing ");
            Console.WriteLine(txt);

            T1.To_txt_File("Test_LW_1_3_bin.txt", "New result's form");

            T2.To_txt_File("Test_LW_1_3_txt.txt", "New result's form");
        }
        public static void LW_7_1_Graph(ToD tod, Func <double, double> F, string comment)
        {
            tod.ToArrays(out double[] X, out double[] Y);
            Form_with_Data fwd = new Form_with_Data(X, Y, F, comment);

            fwd.StartPosition = FormStartPosition.CenterScreen;
            fwd.ShowDialog();
        }
        SingleGraphXY(ToD tod, int Nx, int Ny)
        {
            tod.ToArrays(out double[] X, out double[] Y);
            Form_with_Data fwd = new Form_with_Data(X, Y, tod.Title);

            fwd.StartPosition = FormStartPosition.Manual;
            fwd.Location      = new Point(Nx, Ny);
            fwd.ShowDialog();
        }
        public static void DoublyGraph(ToD tod, Func <double, double> F, int Nx, int Ny)
        {
            tod.ToArrays(out double[] X, out double[] Y);
            Form_with_Data fwd = new Form_with_Data(X, Y, F, tod.Title);

            fwd.StartPosition = FormStartPosition.Manual;
            fwd.Location      = new Point(Nx, Ny);
            fwd.ShowDialog();
        }
Esempio n. 5
0
        static void Test_3(string file)
        {
            CLTD test = new CLTD(file, " Unknown Function");

            //SW.WriteLine(test.Table_in_File);
            test.power = 9;
            test.Roots_correction(1.0E-12);
            SW.WriteLine(test.Table_of_Function());
            SW.Close();
        }
Esempio n. 6
0
        public MAC_Regressions(MyToD ToD)
        {
            bool flag_X, flag_F, flag_Fo, flag_Xo; n = ToD.Length;

            flag_X = flag_F = flag_Fo = flag_Xo = true;

            // Копирование данных из таблицы в основные массивы
            ToD.ToArrays(out X, out F);

            // Копирование данных из таблицы во "вспомогательные" массивы
            ToD.ToArrays(out x, out f);

            // установка значение флагов
            for (int i = 0; i < n; i++)
            {
                if (x[i] <= 0)
                {
                    flag_X = false;
                }
                if (x[i] == 0)
                {
                    flag_Xo = false;
                }
                if (f[i] <= 0)
                {
                    flag_F = false;
                }
                if (f[i] == 0)
                {
                    flag_Fo = false;
                }
            }

            #region <--- 1. Вычисление коэффициентов для Линейной функции --->
            Linear_Coefficients();

            for (int i = 0; i < n; i++)
            {
                fi = aa * X[i] + bb; ee += (F[i] - fi) * (F[i] - fi);
            }
            ee = Math.Sqrt(ee) / n;

            a    = aa; b = bb; c = double.NaN; error = ee;
            Kind = TypeOfRegression.Linear; Name = "Линейная функция";
            #endregion <--- 1. Вычисление коэффициентов для Линейной функции --->

            #region <--- 2. Вычисление коэффициентов для Квадратичной функции --->
            Quadratic_Coefficients();

            for (int i = 0; i < n; i++)
            {
                fi = aa * X[i] * X[i] + bb * X[i] + cc; ee += (F[i] - fi) * (F[i] - fi);
            }
            ee = Math.Sqrt(ee) / n;

            if (ee < error)
            {
                a    = aa; b = bb; c = cc; error = ee;
                Kind = TypeOfRegression.Quadratic; Name = "Квадратичная функция";
            }
            #endregion <--- 2. Вычисление коэффициентов для Квадратичной функции --->

            #region <--- 3. Вычисление коэффициентов для Степенной функции --->
            if (flag_X && flag_F)
            {
                for (int i = 0; i < n; i++)
                {
                    x[i] = Math.Log(X[i]); f[i] = Math.Log(F[i]);
                }

                Linear_Coefficients();
                bb = Math.Exp(bb);

                for (int i = 0; i < n; i++)
                {
                    fi = bb * Math.Pow(X[i], aa); ee += (F[i] - fi) * (F[i] - fi);
                }
                ee = Math.Sqrt(ee) / n;
                if (ee < error)
                {
                    a    = aa; b = bb; c = double.NaN; error = ee;
                    Kind = TypeOfRegression.Power; Name = "Степенная функция";
                }
            }
            #endregion <--- 3. Вычисление коэффициентов для Степенной функции --->

            #region <--- 4. Вычисление коэффициентов для Показательной функции --->
            if (flag_F)
            {
                for (int i = 0; i < n; i++)
                {
                    x[i] = X[i]; f[i] = Math.Log(F[i]);
                }

                Linear_Coefficients();
                bb = Math.Exp(bb);

                for (int i = 0; i < n; i++)
                {
                    fi = bb * Math.Exp(X[i] * aa); ee += (F[i] - fi) * (F[i] - fi);
                }
                ee = Math.Sqrt(ee) / n;

                if (ee < error)
                {
                    a    = aa; b = bb; c = double.NaN; error = ee;
                    Kind = TypeOfRegression.Exponential; Name = "Показательная функция";
                }
            }
            #endregion <--- 4. Вычисление коэффициентов для Показательной функции --->

            #region <--- 5. Вычисление коэффициентов для Дробно-линейной функции --->
            if (flag_Fo)
            {
                for (int i = 0; i < n; i++)
                {
                    x[i] = X[i]; f[i] = 1.0 / F[i];
                }

                Linear_Coefficients();

                for (int i = 0; i < n; i++)
                {
                    fi = 1.0 / (bb + X[i] * aa); ee += (F[i] - fi) * (F[i] - fi);
                }
                ee = Math.Sqrt(ee) / n;

                if (ee < error)
                {
                    a    = aa; b = bb; c = double.NaN; error = ee;
                    Kind = TypeOfRegression.Fractional_Linear; Name = "Дробно-линейная функция";
                }
            }
            #endregion <--- 5. Вычисление коэффициентов для Дробно-линейной функции --->

            #region <--- 6. Вычисление коэффициентов для Логарифмической функции --->
            if (flag_X)
            {
                for (int i = 0; i < n; i++)
                {
                    x[i] = Math.Log(X[i]); f[i] = F[i];
                }

                Linear_Coefficients();

                for (int i = 0; i < n; i++)
                {
                    fi = bb + Math.Log(X[i]) * aa; ee += (F[i] - fi) * (F[i] - fi);
                }
                ee = Math.Sqrt(ee) / n;
                if (ee < error)
                {
                    a    = aa; b = bb; c = double.NaN; error = ee;
                    Kind = TypeOfRegression.Logarithmic; Name = "Логарифмическая функция";
                }
            }
            #endregion <--- 6. Вычисление коэффициентов для Логарифмическойфункции --->

            #region <--- 7. Вычисление коэффициентов для Дробно-рациональной функции --->
            if (flag_Xo && flag_Fo)
            {
                for (int i = 0; i < n; i++)
                {
                    x[i] = 1.0 / X[i]; f[i] = 1.0 / F[i];
                }

                Linear_Coefficients();

                for (int i = 0; i < n; i++)
                {
                    fi  = X[i] / (bb * X[i] + aa);
                    ee += (F[i] - fi) * (F[i] - fi);
                }
                ee = Math.Sqrt(ee) / n;
                if (ee < error)
                {
                    a    = bb; b = aa; c = double.NaN; error = ee;
                    Kind = TypeOfRegression.Fractional_Rational; Name = "Дробно-рациональная функция";
                }
            }
            #endregion <--- 7. Вычисление коэффициентов для Дробно-рациональной --->

            #region <--- 8. Вычисление коэффициентов для Гиперболической функции --->
            if (flag_Xo)
            {
                for (int i = 0; i < n; i++)
                {
                    x[i] = 1.0 / X[i]; f[i] = F[i];
                }

                Linear_Coefficients();

                for (int i = 0; i < n; i++)
                {
                    fi = aa / X[i] + bb; ee += (F[i] - fi) * (F[i] - fi);
                }
                ee = Math.Sqrt(ee) / n;
                if (ee < error)
                {
                    a    = aa; b = bb; c = double.NaN; error = ee;
                    Kind = TypeOfRegression.Hyperbolic; Name = "Гиперболическая функция";
                }
            }
            #endregion <--- 8. Вычисление коэффициентов для Гиперболической --->
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            string file     = "LW_7_1_v09_a.bin";
            MToD   TestData = new MToD(file, "LW_7_1_Tests");

            CLRG MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());

            file     = "LW_7_1_v09_b.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());

            file     = "LW_7_1_v09_c.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());

            file     = "LW_7_1_v09_d.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());

            file     = "LW_7_1_v09_e.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());


            file     = "LW_7_1_v09_f.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());


            file     = "LW_7_1_v09_g.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());

            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());


            file     = "LW_7_1_v09_h.bin";
            TestData = new MToD(file, "LW_7_1_Tests");

            MyReg = new CLRG(TestData);

            Console.WriteLine(file + "\r\n" + MyReg.ToPrint());


            FwD.LW_7_1_Graph(TestData, MyReg.Regression, file + "\r\n" + MyReg.ToPrint());
        }