Как написать метод считающий интеграл методом входящих прямоугольников? - C#

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

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

Здравствуйте. Не могу написать код считающий интеграл методом входящих прямоугольников. Общий код программы у меня вот такой:
using System;
 
namespace Курсовая_работа
{
    class Интеграл1
    {
        struct Integral
        {
            Double a, b;
            int m;
            public Integral(double ina, double inb, int inm)//конструктор типа Integral
            {
                a = ina < inb ? ina : inb;
                b = ina < inb ? inb : ina; ;// регулирует значения пределов интегрирования таким образом,что верхний предел интегрирования всегда больше нижнего
                m = inm;
            }
            public override string ToString()//определение метода ToString
            {
                string s;
                s = String.Format("Точное знаение= {0:f3}\nПриближенное значение={1:f3}", IntLeibniz, IntRectangle);// запись в строковую переменную точного и приближенного значений интеграла
                double Delta = (IntRectangle - IntLeibniz) / IntLeibniz * 100;//вычисление погрешности метода
                Delta = Math.Abs(Delta);
                s += String.Format("\nПогрешность = {0:f3} %", Delta);// запись в строковую переменную погрешности 
                return s;
            }
            public double fx(double x)//возвращает значение функции
            { return 2 * x + 3 * x * x + (1) * Math.Pow(x, 3); }
            public double Fx(double x)//возвращает значение первообразной
            { return ((2 * (x * x)) / 2) + ((3 / (double)3) * Math.Pow(x, 3)) + (-(x * x * x * x) / 4); }
            public double h//возвращает шаг
            {
                get
                { return (b - a) / (m); }
            }
            public double IntLeibniz//возвращает точное значение интеграла
            {
                get
                { return Fx(b) - Fx(a); }
            }
 
            public double IntRectangle//возвращает приближенное значение интеграла методом входящих прямоугольников
            {
                get
                {
                    double sum = (fx(a) + fx(b));
                    for (double i = 0; i < m; i ++) 
                    sum += fx(i);
                    sum = ((b-a)/m);
                    return sum;
                }
            }

            static void Main()
            {
                Integral obj = new Integral(-3, 11, 400);//задаем пределы интегрирования и число разбиений
                Console.WriteLine(obj.ToString());//вывод значения возвращаемого методом ToString
            }
        }
    }
}
А вот метод считающий интеграл входящими прямоугольниками вот такой у меня получился,но там прогрешность 100%))))
public double IntRectangle//возвращает приближенное значение интеграла методом входящих прямоугольников
            {
                get
                {
                    double sum = (fx(a) + fx(b));
                    for (double i = 0; i < m; i ++) 
                    sum += fx(i);
                    sum = ((b-a)/m);
                    return sum;
                }
            }

Решение задачи: «Как написать метод считающий интеграл методом входящих прямоугольников?»

textual
Листинг программы
for (x = a; x < b; x = x + h)
{
    Sum += x / Math.Sqrt(1 + 3 * x);
}
fun = Sum * h;

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


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

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

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