Advertisement
VssA

integration

Jun 6th, 2024
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. using System;
  2.  
  3. public class RectangleMethod
  4. {
  5. public static double Integrate(Func<double, double> f, double a, double b, double n)
  6. {
  7. double h = (b - a) / n; // шаг разбиения
  8. double area = 0.0;
  9.  
  10. for (int i = 0; i < n; i++)
  11. {
  12. area += f(a + i * h) * h;
  13. }
  14.  
  15. return area;
  16. }
  17. }
  18.  
  19.  
  20. public class TrapezoidMethod
  21. {
  22. public static double Integrate(Func<double, double> f, double a, double b, double n)
  23. {
  24. double h = (b - a) / n; // шаг разбиения
  25. double area = f(a) + f(b);
  26.  
  27. for (int i = 0; i < n; i++)
  28. {
  29. area += 2 * f(a + i * h);
  30. }
  31. area *= h/2 ;// <=> (b - a) / (2 * n)
  32. return area;
  33. }
  34. }
  35.  
  36. class Program
  37. {
  38. static void Main()
  39. {
  40. Func<double, double> function = x => Math.Sin(x * 26) + Math.Sqrt(x * x + 26 * x); // Пример функции для интегрирования
  41.  
  42. double tempn = 26;
  43. for(int i = 0; i < 8; i++)
  44. {
  45. var a = 26;
  46. var b = 52;
  47. var temph = (b - a)/tempn;
  48. // double rectangleMethod = RectangleMethod.Integrate(function, a, b, tempn); // Интегрирование от 0 до 26 с 26 разбиениями
  49. double trapezoidMethod = TrapezoidMethod.Integrate(function, a, b, tempn);
  50. tempn *= 10;
  51. // Console.WriteLine("Приближенное значение интеграла методом прямоугольников:{0} С шагом: {1} ", rectangleMethod, temph);
  52. Console.WriteLine("Приближенное значение интеграла методом трапеций:{0} С шагом: {1} ", trapezoidMethod, temph);
  53. }
  54.  
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement