Помогите разобраться с кодом метода парабол (Симпсона) - C#
Формулировка задачи:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Simpson_cs { class Program { static double Y(double p) // { return p * Math.Sin(p / 2);//Вывод значение формулы } static void Main(string[] args)//Главная функция { double x, a, b, h, s;// Определение переменных int n; a = 0; b = 2 * Math.PI;// число п Console.Write("Введите количество шагов разбиения n="); n = int.Parse(Console.ReadLine()); h = (b - a) / n;//Метод симпсона s = 0; x = a + h; while (x < b)// Цикл { s = s + 4 * Y(x); x = x + h; s = s + 2 * Y(x); x = x + h; } s = h / 3 * (s + Y(a) - Y(b));//конец вычисления Console.WriteLine("Интеграл = {0}", s);//вывод Console.ReadKey(); } } }
Решение задачи: «Помогите разобраться с кодом метода парабол (Симпсона)»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Simpson_cs { class Program { static double Y(double p) // { return p * Math.Sin(p / 2);//Вывод значение формулы } static void Main(string[] args)//Главная функция { double x, a, b, h, s;// Определение переменных int n; a = 0; b = 2*Math.PI;// считать будет от 0 до 2пи ??? Console.Write("Введите количество шагов разбиения n="); n = int.Parse(Console.ReadLine()); h = (b - a) / (2*n);//Метод симпсона здесь просто надо что бы n было четно поэтому домножим на 2 s = 0; x = a + h; while (x < b)// Цикл { s = s + 4 * Y(x); x = x + h; s = s + 2 * Y(x); x = x + h; } s = h/3 *(s + Y(a) + Y(b));//конец вычисления ошибка была здесь надо вроде всеже +f(b) Console.WriteLine("Интеграл = {0}", s);//вывод Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д