Расчет определенного интеграла методом трапеции с заданной точностью - C#
Формулировка задачи:
С математикой не очень дружу. Не могу формулу никак сделать . Форум просматривал но там с заданным количеством отрезком. Интеграл Ln2x. Не могу никак с точностью определиться,сегодня сдавать а я попутно еще бд делаю мозг разрываеться
Листинг программы
- private void button1_Click(object sender, EventArgs e)
- {
- double a, b, n = 1, h, res;
- double sum = 0, xi = 0, xi1;
- double eps;
- double an = 0;
- if ((textBox1.Text == "") || (textBox2.Text == "") || (Convert.ToDouble(textBox1.Text) < 0)||
- (textBox3.Text == ""))
- {
- MessageBox.Show("Некоректные данные");
- }
- else
- {
- a = Convert.ToDouble(textBox1.Text);
- b = Convert.ToDouble(textBox2.Text);
- eps = Convert.ToDouble(textBox3.Text);
- h = (b - a) / n;
- do
- {
- h = (b - a) / n;
- for (int i = 0; i < n; i++)
- {
- xi = a + i * h;
- xi1 = a + (i + 1) * h;
- sum += (Math.Log(xi) * Math.Log(xi) + Math.Log(xi1) * Math.Log(xi1));
- }
- n++;
- an -= sum;
- } while (Math.Abs(an) > eps);
- res = sum * h /2;
- label2.Text = Convert.ToString(res);
- /* chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
- for (int i = 0; i < n; i++)
- chart1.Series[0].Points.AddXY(xi, n);*/
- }
- }
Решение задачи: «Расчет определенного интеграла методом трапеции с заданной точностью»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void button1_Click(object sender, EventArgs e)
- {
- double a, b, n = 10, h, res,res1 = 0,res2;
- double x;
- double eps;
- double an = 0;
- if ((textBox1.Text == "") || (textBox2.Text == "") || (Convert.ToDouble(textBox1.Text) < 0)||
- (textBox3.Text == ""))
- {
- MessageBox.Show("Некоректные данные");
- }
- else
- {
- a = Convert.ToDouble(textBox1.Text);
- b = Convert.ToDouble(textBox2.Text);
- eps = Convert.ToDouble(textBox3.Text);
- do
- {
- h = (b - a) / n;
- x = a;
- res = 0;
- while (x+h <= b)
- {
- res += h*(Math.Log(x) * Math.Log(x) + Math.Log(x + h) * Math.Log(x + h))/2.0;
- x += h;
- }
- res2 = res;
- n++;
- an = Math.Abs(res2 - res1);
- res1 = res;
- } while (an > eps);
- label2.Text = Convert.ToString(res) + " h = " + h;
- chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
- for (x= a; x <= b; x += h)
- {
- res += h * (Math.Log(x) * Math.Log(x) + Math.Log(x + h) * Math.Log(x + h)) / 2.0;
- chart1.Series[0].Points.AddXY(x, res);
- }
- }
- }
- private void chart1_Click(object sender, EventArgs e)
- {
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д