Построить график определенного интеграла в chart - C#

Узнай цену своей работы

Формулировка задачи:

Прошу прощения, но какие-либо наработки отсутствуют т.к уже неделю сижу и получается всяческий бред который сюда стыдно загрузить(( поскольку время сдачи курсовой работы подходит к концу то прошу Вашей помощи! Есть программа по нахождению определенных интегралов, в нее необходимо добавить функцию построения графика, у меня даже не получается нарисовать оси графика и подписать их(( Вот код который делает интегрирование функции: P.s как я понимаю sum2 надо использовать как набор точек по оси X, как вот настроить чтобы этот набор точек был на отрезке от a до b по оси Y
        private void tr_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(niz.Text);
            double b = Convert.ToDouble(verh.Text);
            double eps = Convert.ToDouble(epsil.Text);
            int n = 10;
            double sum, sum2 = 0;
            do
            {
                sum = sum2;
                sum2 = 0;
                double h = (b - a) / n;
                double x = a + h;
                if (radioButton1.Checked)
                {
                    radioButton1.CheckedChanged += new System.EventHandler(ClearResult);
                    while (x <= b)
                    {
                        sum2 += (f1(x) + f1(x + h)) * h / 2;
                        x += h;
                    }
 
                }
n *= 2;
            } while (Math.Abs(sum - sum2) > eps);
            result.Text = "Ответ: " + sum2.ToString();

Решение задачи: «Построить график определенного интеграла в chart»

textual
Листинг программы
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            DrawGraph();
        }
        public double  a, b, h,n, res;
        double[] x1 = new double[99999];
        double[] x2 = new double[99999];
        
        private void verh_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(Char.IsDigit(e.KeyChar)))
            {
                if (e.KeyChar != (char)Keys.Back != (e.KeyChar == ','))
                {
                    e.Handled = true;
                }
            }
        }
        private void tr_Click(object sender, EventArgs e)
        {
 
            int a = Convert.ToInt32(niz.Text);
            double b = Convert.ToDouble(verh.Text);
            double eps = Convert.ToDouble(epsil.Text);
            int n = 10;
            int i = 0;
            double sum, sum2 = 0;
            do
            {
                sum = sum2;
                sum2 = 0;
                double h = (b - a) / n;
                double x = a + h;              
                if (radioButton1.Checked)
                {
                    radioButton1.CheckedChanged += new System.EventHandler(ClearResult);
                    while (x <= b)
                    {
                        sum2 += (f1(x) + f1(x + h)) * h / 2;
                        x += h;                     
                    }
 
                }
                if (radioButton2.Checked)
                {
                    radioButton2.CheckedChanged += new System.EventHandler(ClearResult);
                    while (x <= b)
                    {
                        sum2 += (f2(x) + f2(x + h)) * h / 2;
                        x += h;
                    }
                }
                if (radioButton3.Checked)
                {
                    radioButton3.CheckedChanged += new System.EventHandler(ClearResult);
                    while (x <= b)
                    {
                        sum2 += (f3(x) + f3(x + h)) * h / 2;
                        x += h;
                    }
                }
                if (radioButton4.Checked)
                {
                    radioButton4.CheckedChanged += new System.EventHandler(ClearResult);
                    while (x <= b)
                    {
                        sum2 += (f4(x) + f4(x + h)) * h / 2;
                        x += h;
 
                    }
                }
                n *= 2;
                i += 1;
 
                x1[i] = x;
                x2[i] = sum2;
                
 
            } while (Math.Abs(sum - sum2) > eps);
            result.Text = "Ответ: " + sum2.ToString();
            
           
 
            
 
        }
        private void pr_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(niz.Text);
            double b = Convert.ToDouble(verh.Text);
            double eps = Convert.ToDouble(epsil.Text);
            int n = 10;
            double sum, sum2 = 0;
            do
            {
                sum = sum2;
                sum2 = 0;
                double h = (b - a) / n;
                double x = a + h;
                if (radioButton1.Checked)
                {
                    while (x <= b)
                    {
                        sum2 += f1(x) * h;
                        x += h;
                    }
                }
                if (radioButton2.Checked)
                {
                    while (x <= b)
                    {
                        sum2 += f2(x) * h;
                        x += h;
                    }
                }
                if (radioButton3.Checked)
                {
                    while (x <= b)
                    {
                        sum2 += f3(x) * h;
                        x += h;
                    }
                }
                if (radioButton4.Checked)
                {
                    while (x <= b)
                    {
                         sum2+= f4(x) * h;
                        x += h;
                    }
                }
                n *= 2;
            } while (Math.Abs(sum - sum2) > eps);
            result.Text = "Ответ: " + sum2.ToString();
        }
            #region(FUNC)
            double f1(double x)
        {
            double c = Convert.ToDouble(a1.Text);
            double d = Convert.ToDouble(b1.Text);
            return c + Math.Sin(x) / d;
        }
        double f2(double x)
        {
            double c = Convert.ToDouble(a1.Text);
            double d = Convert.ToDouble(b1.Text);
            return c + Math.Cos(x) / d;
        }
        double f3 (double x)
        {
            double c = Convert.ToDouble(a1.Text);
            double d = Convert.ToDouble(b1.Text);
            return Math.Sqrt(d * x + c);
        }
        double f4(double x)
        {
            double c = Convert.ToDouble(a1.Text);
            double d = Convert.ToDouble(b1.Text);
            return d * (1 / x) + c;
        }
        #endregion(FUNC)
 
        private void ClearResult(object sender, EventArgs e)
        {
            result.Text = null;
        }
        
        private void graf_Click(object sender, EventArgs e)
        {
            DrawGraph();
        }
        private void DrawGraph()
        {
            GraphPane pane = zedGraph.GraphPane;
            pane.CurveList.Clear();
            PointPairList list = new PointPairList();
            LineItem myCurve = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None);
            pane.XAxis.Cross = 0.0;
            pane.YAxis.Cross = 0.0;
            pane.XAxis.Scale.IsSkipFirstLabel = true;
            pane.XAxis.Scale.IsSkipLastLabel = true;
            pane.XAxis.Scale.IsSkipCrossLabel = true;
            pane.YAxis.Scale.IsSkipFirstLabel = true;
            pane.YAxis.Scale.IsSkipLastLabel = true;
            pane.YAxis.Scale.IsSkipCrossLabel = true;
            for (int i = 0; i <99999 ; i++)
            {
              list.Add(x1[i], x2[i]);
            }
 
            zedGraph.AxisChange();
            zedGraph.Invalidate();
 
        }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы