Ejemplo n.º 1
0
        private void ReDraw()
        {
            ClearSeries();

            var list = new List <double>(uRval.Length);

            if (checkBox1.Checked)
            {
                chart1.Series[0].Points.DataBindXY(xval, uRval); chart1.Series[0].IsVisibleInLegend = true; list.AddRange(uRval);
            }
            if (checkBox2.Checked)
            {
                chart1.Series[2].Points.DataBindXY(xval, umodval); chart1.Series[2].IsVisibleInLegend = true; list.AddRange(umodval);
            }
            if (checkBox3.Checked)
            {
                chart1.Series[1].Points.DataBindXY(xval, uIval); chart1.Series[1].IsVisibleInLegend = true; list.AddRange(uIval);
            }
            if (checkBox4.Checked)
            {
                chart1.Series[4].Points.DataBindXY(xval, uIz); chart1.Series[4].IsVisibleInLegend = true; list.AddRange(uIz);
            }
            if (checkBox5.Checked)
            {
                chart1.Series[5].Points.DataBindXY(xval, uAz); chart1.Series[5].IsVisibleInLegend = true; list.AddRange(uAz);
            }
            if (checkBox6.Checked)
            {
                chart1.Series[3].Points.DataBindXY(xval, uRz); chart1.Series[3].IsVisibleInLegend = true; list.AddRange(uRz);
            }

            if (checkBox7.Checked)
            {
                chart1.Series[6].Points.DataBindXY(xval, uRvalRes); chart1.Series[6].IsVisibleInLegend = true; list.AddRange(uRvalRes);
            }
            if (checkBox8.Checked)
            {
                chart1.Series[7].Points.DataBindXY(xval, uIvalRes); chart1.Series[7].IsVisibleInLegend = true; list.AddRange(uIvalRes);
            }
            if (checkBox9.Checked)
            {
                chart1.Series[8].Points.DataBindXY(xval, umodvalRes); chart1.Series[8].IsVisibleInLegend = true; list.AddRange(umodvalRes);
            }
            if (checkBox10.Checked)
            {
                chart1.Series[9].Points.DataBindXY(xval, uRzRes); chart1.Series[9].IsVisibleInLegend = true; list.AddRange(uRzRes);
            }
            if (checkBox11.Checked)
            {
                chart1.Series[10].Points.DataBindXY(xval, uIzRes); chart1.Series[10].IsVisibleInLegend = true; list.AddRange(uIzRes);
            }
            if (checkBox12.Checked)
            {
                chart1.Series[11].Points.DataBindXY(xval, uAzRes); chart1.Series[11].IsVisibleInLegend = true; list.AddRange(uAzRes);
            }

            ForChart.SetAxisesY(ref chart1);
            ForChart.SetToolTips(ref chart1);
        }
        private void button4_Click(object sender, EventArgs e)
        {
            Init();
            chart1.Series[0].Name = "μ1 |K1'(α,-h1)Q(α)|";
            chart1.Series[1].Name = "μ2 |K2'(α,-h1)Q(α)|";
            for (int i = 0; i < k; i++)
            {
                arg[i] = beg + i * h;
                f1[i]  = абКонсоль.m1 * (абКонсоль.K1_(arg[i], -абКонсоль.h1) * абКонсоль.Q(arg[i])).Abs;
                f2[i]  = абКонсоль.m2 * (абКонсоль.K2_(arg[i], -абКонсоль.h1) * абКонсоль.Q(arg[i])).Abs;;
            }
            chart1.Series[0].Points.DataBindXY(arg, f1);
            chart1.Series[1].Points.DataBindXY(arg, f2);

            ForChart.SetAxisesY(ref chart1);
        }
        private void button9_Click(object sender, EventArgs e)
        {
            Init();
            chart1.Series[0].Name = "μ1 ∫K1'(α,-h1)Q(α)";
            chart1.Series[1].Name = "μ2 ∫K2'(α,-h1)Q(α)";
            for (int i = 0; i < k; i++)
            {
                arg[i] = beg + i * h;
                f1[i]  = абКонсоль.m1 * (абКонсоль.uk1_(arg[i], -абКонсоль.h1)).Re; f1[i].Show();
                f2[i]  = абКонсоль.m2 * (абКонсоль.uk2_(arg[i], -абКонсоль.h1)).Re;
            }
            chart1.Series[0].Points.DataBindXY(arg, f1);
            chart1.Series[1].Points.DataBindXY(arg, f2);

            ForChart.SetAxisesY(ref chart1);
        }
        private void button7_Click(object sender, EventArgs e)
        {
            Init();
            chart1.Series[0].Name = "μ2 u'(x,-h)";
            chart1.Series[1].Name = "0";
            for (int i = 0; i < k; i++)
            {
                arg[i] = beg + i * h;
                f1[i]  = (абКонсоль.uk2_(arg[i], -абКонсоль.h) * абКонсоль.m2).Re; f1[i].Show();
                f2[i]  = 0;
            }
            chart1.Series[0].Points.DataBindXY(arg, f1);
            chart1.Series[1].Points.DataBindXY(arg, f2);

            ForChart.SetAxisesY(ref chart1);
        }
        private void button6_Click(object sender, EventArgs e)
        {
            Init();
            chart1.Series[0].Name = "μ1 u'(x,0)";
            chart1.Series[1].Name = "q(x)";
            for (int i = 0; i < k; i++)
            {
                arg[i] = beg + i * h;
                f1[i]  = (абКонсоль.uk1_(arg[i], 0) * абКонсоль.m1).Re; f1[i].Show();
                f2[i]  = абКонсоль.q(arg[i]);
            }
            chart1.Series[0].Points.DataBindXY(arg, f1);
            chart1.Series[1].Points.DataBindXY(arg, f2);

            ForChart.SetAxisesY(ref chart1);
        }
        private void button8_Click(object sender, EventArgs e)
        {
            Init();
            chart1.Series[0].Name = "∫K1(α,-h1)Q(α)";
            chart1.Series[1].Name = "∫K2(α,-h1)Q(α)";
            for (int i = 0; i < k; i++)
            {
                arg[i] = beg + i * h;
                f1[i]  = (абКонсоль.uk1(arg[i], -абКонсоль.h1)).Re;
                f2[i]  = (абКонсоль.uk2(arg[i], -абКонсоль.h1)).Re;
                if (i != 0)
                {
                    if ((f2[i] - f2[i - 1]).Abs() > абКонсоль.epsjump)
                    {
                        $"Для пары аргументов {arg[i-1]} и {arg[i]}".Show();
                        for (int s = 0; s < 2; s++)
                        {
                            for (int y = 0; y < FuncMethods.DefInteg.GaussKronrod.MasListDinnInfo[2 * s + 1].Count; y++)
                            {
                                FuncMethods.DefInteg.GaussKronrod.MasListDinnInfo[2 * s + 1][y].Show();
                            }
                        }
                    }
                }
            }
            //for (int i = 1; i < k; i++)
            //    if ((f2[i] - f2[i - 1]).Abs() > РабКонсоль.epsjump)
            //        for (int s = 0; s < 2; s++)
            //        for(int y=0;y< FuncMethods.DefInteg.GaussKronrod.MasListDinnInfo[s].Count;y++)
            //            FuncMethods.DefInteg.GaussKronrod.MasListDinnInfo[s][y].Show();

            chart1.Series[0].Points.DataBindXY(arg, f1);
            chart1.Series[1].Points.DataBindXY(arg, f2);

            ForChart.SetAxisesY(ref chart1);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            абКонсоль.GRFORM.Init();
            //РабКонсоль.GRFORM.chart1.Series[0].Points.Clear(); РабКонсоль.GRFORM.chart1.Series[1].Points.Clear();

            count = Convert.ToInt32(numericUpDown1.Value);
            x     = Convert.ToDouble(textBox1.Text);
            z     = Convert.ToDouble(textBox2.Text);
            string s1 = "", s2 = "";

            if (radioButton1.Checked)
            {
                a = new Number.Complex(0); b = new Number.Complex(абКонсоль.t1); s1 = $" на отрезке [0,t1={b}]";
            }
            if (radioButton2.Checked)
            {
                a = new Number.Complex(абКонсоль.t1, 0); b = new Number.Complex(абКонсоль.t1, -абКонсоль.tm); s1 = $" на отрезке [t1={a},t1-itm={b}]";
            }
            if (radioButton3.Checked)
            {
                a = new Number.Complex(абКонсоль.t1, -абКонсоль.tm); b = new Number.Complex(абКонсоль.t4, -абКонсоль.tm); s1 = $" на отрезке [t1-itm={a},t4-itm={b}]";
            }
            if (radioButton4.Checked)
            {
                a = new Number.Complex(абКонсоль.t4, -абКонсоль.tm); b = new Number.Complex(абКонсоль.t4); s1 = $" на отрезке [t4-itm={a},t4={b}]";
            }
            if (radioButton5.Checked)
            {
                a = new Number.Complex(абКонсоль.t4); b = new Number.Complex(абКонсоль.gr); s1 = $" на отрезке [t4={a},gr={b}]";
            }

            h  = (b - a) / (count - 1);
            h1 = (b - a).Abs / (count - 1);

            if (radioButton6.Checked)
            {
                f = (Number.Complex ee) => абКонсоль.K1(ee, z) * абКонсоль.Q(ee) * Number.Complex.Ch(Number.Complex.I * x * ee); s2 = $"K1(α,{z})Q(α)Ch(iα*{x})";
            }
            if (radioButton7.Checked)
            {
                f = (Number.Complex ee) => абКонсоль.K2(ee, z) * абКонсоль.Q(ee) * Number.Complex.Ch(Number.Complex.I * x * ee); s2 = $"K2(α,{z})Q(α)Ch(iα*{x})";
            }
            if (radioButton8.Checked)
            {
                f = (Number.Complex ee) => абКонсоль.K1_(ee, z) * абКонсоль.Q(ee) * Number.Complex.Ch(Number.Complex.I * x * ee); s2 = $"K1'(α,{z})Q(α)Ch(iα*{x})";
            }
            if (radioButton9.Checked)
            {
                f = (Number.Complex ee) => абКонсоль.K2_(ee, z) * абКонсоль.Q(ee) * Number.Complex.Ch(Number.Complex.I * x * ee); s2 = $"K2'(α,{z})Q(α)Ch(iα*{x})";
            }
            if (radioButton10.Checked)
            {
                f = (Number.Complex ee) => абКонсоль.sigma1(ee); s2 = $"σ1(α)";
            }
            if (radioButton11.Checked)
            {
                f = (Number.Complex ee) => абКонсоль.sigma1(ee).Sqr(); s2 = $"σ1(α)^2";
            }

            абКонсоль.GRFORM.chart1.Series[0].Name = "Re " + s2 + s1;
            абКонсоль.GRFORM.chart1.Series[1].Name = "Im " + s2 + s1;

            for (int i = 0; i < count; i++)
            {
                double         arg  = i * h1;
                Number.Complex arg1 = a + i * h;
                Number.Complex fx   = f(arg1); $"f(при {arg}) = {fx}".Show();
                абКонсоль.GRFORM.chart1.Series[0].Points.AddXY(arg, fx.Re);
                абКонсоль.GRFORM.chart1.Series[1].Points.AddXY(arg, fx.Im);
            }


            ForChart.SetAxisesY(ref абКонсоль.GRFORM.chart1);
            абКонсоль.GRFORM.Refresh();
        }
 private void button1_Click(object sender, EventArgs e)
 {
     ForChart.SaveImageFromChart(chart1);
     chart1.SaveImage("rect.emf", System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Emf);
 }