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