Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- public class RectangleMethod
- {
- public static double Integrate(Func<double, double> f, double a, double b, double n)
- {
- double h = (b - a) / n; // шаг разбиения
- double area = 0.0;
- for (int i = 0; i < n; i++)
- {
- area += f(a + i * h) * h;
- }
- return area;
- }
- }
- public class TrapezoidMethod
- {
- public static double Integrate(Func<double, double> f, double a, double b, double n)
- {
- double h = (b - a) / n; // шаг разбиения
- double area = f(a) + f(b);
- for (int i = 0; i < n; i++)
- {
- area += 2 * f(a + i * h);
- }
- area *= h/2 ;// <=> (b - a) / (2 * n)
- return area;
- }
- }
- class Program
- {
- static void Main()
- {
- Func<double, double> function = x => Math.Sin(x * 26) + Math.Sqrt(x * x + 26 * x); // Пример функции для интегрирования
- double tempn = 26;
- for(int i = 0; i < 8; i++)
- {
- var a = 26;
- var b = 52;
- var temph = (b - a)/tempn;
- // double rectangleMethod = RectangleMethod.Integrate(function, a, b, tempn); // Интегрирование от 0 до 26 с 26 разбиениями
- double trapezoidMethod = TrapezoidMethod.Integrate(function, a, b, tempn);
- tempn *= 10;
- // Console.WriteLine("Приближенное значение интеграла методом прямоугольников:{0} С шагом: {1} ", rectangleMethod, temph);
- Console.WriteLine("Приближенное значение интеграла методом трапеций:{0} С шагом: {1} ", trapezoidMethod, temph);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement