Exemplo n.º 1
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            var xyzDataSeries3D1 = new XyzDataSeries3D <double>();
            var xyzDataSeries3D2 = new XyzDataSeries3D <double>();

            _n1 = 0;
            _n2 = 0;
            var    mu1X    = 0.0;
            var    mu1Y    = 0.0;
            var    mu2X    = 0.0;
            var    mu2Y    = 0.0;
            var    sigma1X = 0.0;
            var    sigma1Y = 0.0;
            var    sigma2X = 0.0;
            var    sigma2Y = 0.0;
            var    eps     = 0.01;
            string inputBuffer;

            try
            {
                // ввод исходных данных
                inputBuffer = TextBox.Text;
                _n1         = Convert.ToInt32(inputBuffer);
                inputBuffer = TextBox1.Text;
                _n2         = Convert.ToInt32(inputBuffer);
                inputBuffer = TextBox2.Text;
                mu1X        = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox3.Text;
                mu1Y        = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox4.Text;
                mu2X        = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox5.Text;
                mu2Y        = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox6.Text;
                sigma1X     = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox7.Text;
                sigma1Y     = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox8.Text;
                sigma2X     = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox9.Text;
                sigma2Y     = Convert.ToDouble(inputBuffer);
                inputBuffer = TextBox24.Text;
                eps         = Convert.ToDouble(inputBuffer);
            } catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            List <Point> setP1;
            List <Point> setP2;
            var          normRand = new NormalRandom();
            var          set1     = new SetPoint(mu1X, sigma1X, mu1Y, sigma1Y, _n1, normRand);
            var          set2     = new SetPoint(mu2X, sigma2X, mu2Y, sigma2Y, _n2, normRand);

            setP1 = set1.get_list_point();
            setP2 = set2.get_list_point();
            var ro1 = MathTpr.CalculationOfCorrelationCoefficient(setP1, mu1X, mu1Y, sigma1X, sigma1X);
            var ro2 = MathTpr.CalculationOfCorrelationCoefficient(setP2, mu2X, mu2Y, sigma2X, sigma2X);

            // определение фактических значений мат. ожиданий и среднеквадратических отклонений
            _averageX1 = set1.calculate_Average_Value_x();
            _averageY1 = set1.calculate_Average_Value_y();
            _averageX2 = set2.calculate_Average_Value_x();
            _averageY2 = set2.calculate_Average_Value_y();
            _sigmaX1   = Math.Sqrt(MathTpr.DispersionX(setP1, _averageX1));
            _sigmaY1   = Math.Sqrt(MathTpr.DispersionY(setP1, _averageY1));
            _sigmaX2   = Math.Sqrt(MathTpr.DispersionX(setP2, _averageX2));
            _sigmaY2   = Math.Sqrt(MathTpr.DispersionY(setP2, _averageY2));

            // построение точек на плоскости XY
            foreach (var item in setP1)
            {
                var x = item.X;
                var z = item.Y;
                item.Z = MathTpr.func_Gauss_XY(item.X, item.Y, sigma1X, sigma1Y, mu1X, mu1Y, ro1);
                var y = 0;
                xyzDataSeries3D1.Append(x, y, z);
            }
            foreach (var item in setP2)
            {
                var x = item.X;
                var z = item.Y;
                item.Z = MathTpr.func_Gauss_XY(item.X, item.Y, sigma2X, sigma2Y, mu2X, mu2Y, ro2);
                var y = 0;
                xyzDataSeries3D2.Append(x, y, z);
            }
            xyzDataSeries3D1.SeriesName = "S1";
            xyzDataSeries3D2.SeriesName = "S2";

            PointGrid.DataContext     = setP1;
            PointGridCopy.DataContext = setP2;

            if (_graph != null)
            {
                _graph = new _3DGraph {
                    Visibility = Visibility.Visible
                };
            }
            // создание формы с графиком
            _graph?.PaintGraph(set1, set2, sigma1X, sigma1Y, mu1X,
                               mu1Y, mu2X, mu2Y, sigma2X, sigma2Y, _n1, _n2);
        }
Exemplo n.º 2
0
 public MainWindow()
 {
     _graph = new _3DGraph();
     InitializeComponent();
 }