Построить график определенного интеграла в 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д