예제 #1
0
        private void Start_but_Click(object sender, EventArgs e)
        {
            Graphic.Series[0].Points.Clear();
            Graphic.Series[1].Points.Clear();
            Function_graphics graf = new Function_graphics();

            try
            {
                graf.n = Convert.ToInt32(Stepen_box.Text);
                graf.a = Convert.ToDouble(A_box.Text);
                graf.b = Convert.ToDouble(B_box.Text);
                if (graf.a >= graf.b)
                {
                    MessageBox.Show("Неверный ввод");
                    A_box.Text      = string.Empty;
                    B_box.Text      = string.Empty;
                    Stepen_box.Text = string.Empty;
                    graf.flag       = false;
                }
            }
            catch (Exception) { MessageBox.Show("Неверный ввод");
                                A_box.Text      = string.Empty;
                                B_box.Text      = string.Empty;
                                Stepen_box.Text = string.Empty;
                                graf.flag       = false; }
            if (graf.flag)
            {
                graf.H();

                //масштабируем по Х
                //Graphic.ChartAreas[0].AxisX.Minimum = -2;
                //Graphic.ChartAreas[0].AxisX.Maximum = 3;
                // Graphic.ChartAreas[0].AxisX.ScaleView.Zoom(-2, 3);

                /* Graphic.ChartAreas[0].CursorX.IsUserEnabled = true;
                 * Graphic.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;// выбор интервалов для масштабирования
                 * Graphic.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
                 * Graphic.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
                 *               Graphic.ChartAreas[0].CursorY.IsUserEnabled = true;
                 * Graphic.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;// выбор интервалов для масштабирования
                 * Graphic.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
                 * Graphic.ChartAreas[0].AxisY.ScrollBar.IsPositionedInside = true;
                 */

                Graphic.Series[0].Points.Clear();
                Graphic.Series[1].Points.Clear();
                for (double i = graf.a; i <= graf.b; i += graf.h)
                {
                    for (double j = i; (j <= i + graf.h) && j < graf.b; j += (double)(graf.h / graf.m))
                    {
                        Graphic.Series[0].Points.AddXY(j, graf.func(j));
                        Graphic.Series[1].Points.AddXY(j, graf.Polin(j));
                    }
                }
                //
                //Vivod_text.Text=Convert.ToString( graf.func(-1));
                //
            }
        }
예제 #2
0
        private void Mnogo_but_Click(object sender, EventArgs e)
        {
            Graphic.Series[0].Points.Clear();
            Graphic.Series[2].Points.Clear();
            Function_graphics graf = new Function_graphics();

            try
            {
                graf.n = Convert.ToInt32(Stepen_box.Text);
                graf.a = Convert.ToDouble(A_box.Text);
                graf.b = Convert.ToDouble(B_box.Text);
                if (graf.a >= graf.b)
                {
                    MessageBox.Show("Неверный ввод");
                    A_box.Text      = string.Empty;
                    B_box.Text      = string.Empty;
                    Stepen_box.Text = string.Empty;
                    graf.flag       = false;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Неверный ввод");
                A_box.Text      = string.Empty;
                B_box.Text      = string.Empty;
                Stepen_box.Text = string.Empty;
                graf.flag       = false;
            }
            if (graf.flag)
            {
                graf.H();
                Graphic.Series[0].Points.Clear();
                Graphic.Series[2].Points.Clear();
                for (double i = graf.a; i <= graf.b; i += graf.h)
                {
                    for (double j = i; (j <= i + graf.h) && j < graf.b; j += (double)(graf.h / graf.m))
                    {
                        Graphic.Series[0].Points.AddXY(j, graf.func(j));
                    }
                }

                for (double g = graf.a; g < graf.b; g += 0.001)
                {
                    Graphic.Series[2].Points.AddXY(g, graf.polynomial(g));
                }
                //
                //Vivod_text.Text=Convert.ToString( graf.func(-1));
                //
                //Vivod_text.Text = Convert.ToString(graf.polynomial(0.6));
            }
        }
예제 #3
0
        private void Spline_but_Click(object sender, EventArgs e)
        {
            Graphic.Series[0].Points.Clear();
            Graphic.Series[4].Points.Clear();
            Function_graphics graf        = new Function_graphics();
            CubicSpline       cubicSpline = new CubicSpline();

            try
            {
                graf.n = Convert.ToInt32(Stepen_box.Text);
                graf.a = Convert.ToDouble(A_box.Text);
                graf.b = Convert.ToDouble(B_box.Text);
                if (graf.a >= graf.b)
                {
                    MessageBox.Show("Неверный ввод");
                    A_box.Text      = string.Empty;
                    B_box.Text      = string.Empty;
                    Stepen_box.Text = string.Empty;
                    graf.flag       = false;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Неверный ввод");
                A_box.Text      = string.Empty;
                B_box.Text      = string.Empty;
                Stepen_box.Text = string.Empty;
                graf.flag       = false;
            }
            if (graf.flag)
            {
                graf.H();
                Graphic.Series[0].Points.Clear();
                Graphic.Series[4].Points.Clear();
                //int n = 0;
                for (double i = graf.a; i <= graf.b; i += graf.h)
                {
                    for (double j = i; (j <= i + graf.h) && j < graf.b; j += (double)(graf.h / graf.m))
                    {
                        Graphic.Series[0].Points.AddXY(j, graf.func(j));
                        //	n++;
                    }
                }
                double[] x = new double[graf.n + 1];
                double[] y = new double[graf.n + 1];
                int      k = 0;
                for (double i = graf.a; i <= graf.b; i += (graf.b - graf.a) / graf.n)
                {
                    x[k] = i;
                    y[k] = graf.func(i);
                    k++;
                }
                cubicSpline.BuildSpline(x, y, graf.n);
                for (double i = graf.a; i <= graf.b; i += graf.h)
                {
                    Graphic.Series[4].Points.AddXY(i, cubicSpline.Func(i));
                }

                //insert your code
                //Vivod_text.Text = Convert.ToString(graf.graf_table(0.8));
            }
        }