Министерство образования и науки РФ Высшего профессионального учреждения Тверской государственный технический университет Кафедра : «Программное обеспечение» Лабораторная работа № 2 по курсу «Методы вычислений» Выполнил: Студент первого курса Группа ПИН-1106 Коробейников С. Проверил: Виноградов С.Ю. Тверь 2012 Функция: y=x-sin(x)-0.25 Точное Решение y1=0,0838534, y2=0,083854, y3=0,083854 Метод Правая Левая Шаг Результат граница граница Левый 0 2 0.1 0,0304983538918338 0 2 0.01 0,0784114518302939 0 2 0.001 0,0841486327516235 Трапеции 0 2 0.1 0,130498353891834 0 2 0.01 0,0884114518302937 0 2 0.001 0,085149132751623 Симпсона 0 2 0.1 0,0838531142664544 0 2 0 2 Абсолютная погрешность -0,0533556461081662 -0,0054425481697061 0,000294632751623503 0,046644353891834 0,0045574518302937 0,001295132751623 -8,85733545591405E07 0.01 0,0838531634479415 -8,36552058500195E07 0.001 0,0846945742509222 0,000840574250922196 Теория Метод трапеций — метод численного интегрирования функции одной переменной, заключающийся в замене на каждом элементарном отрезке подынтегральной функции на многочлен первой степени, то есть линейную функцию. Формула Симпсона (также Ньютона-Симпсона[1]) относится к приёмам численного интегрирования. Получила название в честь британского математика Томаса Симпсона (1710—1761).Суть приёма заключается в приближении подынтегральной функции на отрезке интерполяционным многочленом второй степени , то есть приближение графика функции на отрезке параболой. Метод Симпсона имеет порядок погрешности 4 и алгебраический порядок точности 3. Метод прямоугольников — метод численного интегрирования функции одной переменной, заключающийся в замене подынтегральной функции на многочлен нулевой степени, то есть константу, на каждом элементарном отрезке. Если рассмотреть график подынтегральной функции, то метод будет заключаться в приближённом вычислении площади под графиком суммированием площадей конечного числа прямоугольников, ширина которых будет определяться расстоянием между соответствующими соседними узлами интегрирования, а высота — значением подынтегральной функции в этих узлах. Алгебраический порядок точности равен 0. Если отрезок найти по является элементарным и не подвергается дальнейшему разбиению, значение интеграла можно Формуле левых прямоугольников: Реализация public static class Metody { /// <summary> /// Функция /// </summary> /// <param name="arg">Функция y</param> /// <returns></returns> public static double getValue(double arg) { return arg - Math.Sin(arg) - 0.25; } /// <summary> /// Левый прямоугольник /// </summary> /// <param name="h">Шаг</param> /// <param name="a">Левый Граница</param> /// <param name="b">Правая Граница</param> /// <returns></returns> public static double LRat(double h, double a, double b) { double res = 0; for (double i = a; i < b; i += h) res += getValue(i) * h; return res; } /// <summary> /// Метод Трапеции /// </summary> /// <param name="h">Шаг</param> /// <param name="a">Левая Граница</param> /// <param name="b">Правая Граница</param> /// <returns></returns> public static double TRap(double h, double a, double b) { double res = 0; for(double i = a; i < b; i += h) res += h * ((getValue(i) + (getValue(i) + h)) / 2); return res; } /// <summary> /// Метод Симпсона /// </summary> /// <param name="h">Шаг</param> /// <param name="a">Левая Граница</param> /// <param name="b">Правая Граница</param> /// <returns></returns> public static double Simpson(double h, double a, double b) { double res = 0; for (double i = a; i < b; i += h) res += (h / 6) * (getValue(i) + 4 * getValue((i + i + h) / 2) + getValue(i + h)); return res; }