Расчет определенного интеграла методом трапеции с заданной точностью - 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)
        {
 
        }
 
    }
         
}

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


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

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

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