Написать программу вычисления определенного интеграла по методу прямоугольников - C#
Формулировка задачи:
Люди добрые, может кто подсказать?
Задание: Написать программу вычисления определенного интеграла по методу прямоугольников (не важно правого или левого).
Ответ должен равняться Пи (3.14159).
Есть a, b и шаг n.
N вычисляется по следующей формуле:
Получился такой код, но ответ не совпадает все равно как ни крути
П.с. все темы про этот метод на этом форуме пересмотрены - все равно ничего не выходит...
static void Main(string[] args) { Console.WriteLine("Введите N"); double n = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите границы в формате a-b"); string s = Console.ReadLine(); double a = Convert.ToDouble(s.Split('-')[0]); double b = Convert.ToDouble(s.Split('-')[1]); double step = (b - a) / n; double result = 0; for (double x = a; x < b; x += step) { result += func(x + step) * step; } Console.WriteLine(result); Console.ReadKey(); } static double func(double x) { return x * Math.Sin(x); }
Решение задачи: «Написать программу вычисления определенного интеграла по методу прямоугольников»
textual
Листинг программы
static void Main(string[] args) { Console.WriteLine("Введите N"); //double n = Convert.ToDouble(Console.ReadLine()); int n = 10; // тут шаг можно оптимально определить по формулам Console.WriteLine("Введите границы в формате a-b"); //string s = Console.ReadLine(); double a = 0.0; double b = Math.PI; double result = 0.0, resultOnHalfDx = double.NegativeInfinity; double eps = 1e-5; while (Math.Abs(resultOnHalfDx - result) > eps) // тут формула оценки погрешности, через производные { n++; result = resultOnHalfDx; resultOnHalfDx = Rects(func, a, b, (b - a) / n); } Console.WriteLine("{0:F5}", result); Console.WriteLine("{0:F5} - Pi", Math.PI); Console.ReadKey(); } delegate double F (double x); static double Rects(F f, double a, double b, double dx) { double r = 0.0; while (a + dx < b) { r += f(a) * dx; a += dx; } return r + f(a) * (b - a); } static double func(double x) { return x * Math.Sin(x); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д