Как написать метод считающий интеграл методом входящих прямоугольников? - C#
Формулировка задачи:
Здравствуйте.
Не могу написать код считающий интеграл методом входящих прямоугольников.
Общий код программы у меня вот такой:
А вот метод считающий интеграл входящими прямоугольниками вот такой у меня получился,но там прогрешность 100%))))
Листинг программы
- 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
- }
- }
- }
- }
Листинг программы
- 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д